diff --git a/repl/commands.go b/repl/commands.go index 82cfa3bf0..4f9e1a395 100644 --- a/repl/commands.go +++ b/repl/commands.go @@ -102,7 +102,8 @@ type parseCmd struct { } type evalCmd struct { - expr string + parseOnly bool + expr string } // Cmder interface provides normalized command name from a repl command. @@ -308,7 +309,18 @@ func (c *commandParseListener) EnterParse(ctx *parser.ParseContext) { } func (c *commandParseListener) EnterExprCmd(ctx *parser.ExprCmdContext) { - c.cmd = &evalCmd{} + cmd := &evalCmd{} + for _, f := range ctx.GetFlags() { + ft := strings.TrimPrefix(strings.TrimPrefix(f.GetText(), "--"), "-") + switch ft { + case "parse-only": + cmd.parseOnly = true + default: + c.reportIssue(fmt.Errorf("unknown or unsupported flag: %q", ft)) + return + } + } + c.cmd = cmd } func (c *commandParseListener) ExitFnDecl(ctx *parser.FnDeclContext) { diff --git a/repl/commands_test.go b/repl/commands_test.go index 65d874b7a..78feb91b6 100644 --- a/repl/commands_test.go +++ b/repl/commands_test.go @@ -203,10 +203,10 @@ func TestParse(t *testing.T) { %exit`), }, { - commandLine: `%arbitrary --flag -FLAG 'string literal\n'`, + commandLine: `%arbitrary --flag --another-flag 'string literal\n'`, wantCmd: &simpleCmd{cmd: "arbitrary", args: []string{ - "--flag", "--flag", "string literal\\n", + "--flag", "--another-flag", "string literal\\n", }, }, }, @@ -284,6 +284,13 @@ func TestParse(t *testing.T) { src: "", }, }, + { + commandLine: `%eval --parse-only -- foo`, + wantCmd: &evalCmd{ + parseOnly: true, + expr: `foo`, + }, + }, } for _, tc := range testCases { @@ -344,6 +351,24 @@ func TestParseErrors(t *testing.T) { // not an identifier commandLine: "%delete 123", }, + { + commandLine: "%eval --badflag foo", + }, + { + commandLine: "%eval --bad-flag foo", + }, + { + commandLine: "%eval -badflag foo", + }, + { + commandLine: "%eval -bad-flag foo", + }, + { + commandLine: "%eval --parse-only foo", + }, + { + commandLine: "%eval -parse-only foo", + }, } for _, tc := range testCases { _, err := Parse(tc.commandLine) diff --git a/repl/evaluator.go b/repl/evaluator.go index c29ccdfc2..c02a35977 100644 --- a/repl/evaluator.go +++ b/repl/evaluator.go @@ -1302,16 +1302,28 @@ func (e *Evaluator) Process(cmd Cmder) (string, bool, error) { } return prototext.Format(pAST), false, nil case *evalCmd: - val, resultT, err := e.Evaluate(cmd.expr) + var ( + val ref.Val + resultT *exprpb.Type + err error + ) + if cmd.parseOnly { + val, resultT, err = e.EvaluateParseOnly(cmd.expr) + } else { + val, resultT, err = e.Evaluate(cmd.expr) + } if err != nil { return "", false, fmt.Errorf("expr failed:\n%v", err) } if val != nil { - t := UnparseType(resultT) unknown, ok := val.Value().(*types.Unknown) if ok { return fmt.Sprintf("Unknown %v", unknown), false, nil } + if cmd.parseOnly { + return fmt.Sprintf("%s", types.Format(val)), false, nil + } + t := UnparseType(resultT) return fmt.Sprintf("%s : %s", types.Format(val), t), false, nil } case *letVarCmd: @@ -1394,6 +1406,29 @@ func (e *Evaluator) Evaluate(expr string) (ref.Val, *exprpb.Type, error) { return val, ast.ResultType(), err } +// EvaluateParseOnly evalutes the CEL expression using the current REPL context without type checking. +func (e *Evaluator) EvaluateParseOnly(expr string) (ref.Val, *exprpb.Type, error) { + env, act, err := e.applyContext() + if err != nil { + return nil, nil, err + } + + ast, iss := env.Parse(expr) + if iss.Err() != nil { + return nil, nil, iss.Err() + } + + p, err := env.Program(ast, e.ctx.programOptions()...) + if err != nil { + return nil, nil, err + } + + act, _ = env.PartialVars(act) + val, _, err := p.Eval(act) + // expression can be well-formed and result in an error + return val, ast.ResultType(), err +} + // Compile compiles the input expression using the current REPL context. func (e *Evaluator) Compile(expr string) (*cel.Ast, error) { env, _, err := e.applyContext() diff --git a/repl/parser/Commands.g4 b/repl/parser/Commands.g4 index 60cc4998b..31ee2b1d8 100644 --- a/repl/parser/Commands.g4 +++ b/repl/parser/Commands.g4 @@ -51,7 +51,7 @@ compile: '%compile' e=expr; parse: '%parse' e=expr; -exprCmd: '%eval'? e=expr; +exprCmd: ('%eval' (flags+=FLAG (flags+=FLAG)* '--')?)? e=expr; qualId: leadingDot='.'? rid=IDENTIFIER ('.' qualifiers+=IDENTIFIER)*; @@ -69,6 +69,6 @@ typeParamList: // lexer rules: COMMAND: '%' IDENTIFIER; -FLAG: '-'? '-' IDENTIFIER; +FLAG: '-' ('-' IDENTIFIER)+; ARROW: '->'; EQUAL_ASSIGN: '='; diff --git a/repl/parser/Commands.interp b/repl/parser/Commands.interp index 61eed01c6..fb51855d8 100644 --- a/repl/parser/Commands.interp +++ b/repl/parser/Commands.interp @@ -8,6 +8,7 @@ null '%compile' '%parse' '%eval' +'--' null null '->' @@ -60,6 +61,7 @@ null null null null +null COMMAND FLAG ARROW @@ -142,4 +144,4 @@ literal atn: -[4, 1, 49, 422, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 85, 8, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 96, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3, 4, 103, 8, 4, 1, 5, 1, 5, 1, 5, 3, 5, 108, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 115, 8, 6, 10, 6, 12, 6, 118, 9, 6, 3, 6, 120, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 133, 8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 138, 8, 9, 10, 9, 12, 9, 141, 9, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 3, 13, 152, 8, 13, 1, 13, 1, 13, 1, 14, 3, 14, 157, 8, 14, 1, 14, 1, 14, 1, 14, 5, 14, 162, 8, 14, 10, 14, 12, 14, 165, 9, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 172, 8, 16, 1, 17, 3, 17, 175, 8, 17, 1, 17, 1, 17, 1, 17, 5, 17, 180, 8, 17, 10, 17, 12, 17, 183, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 189, 8, 18, 10, 18, 12, 18, 192, 9, 18, 3, 18, 194, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 207, 8, 20, 1, 21, 1, 21, 1, 21, 5, 21, 212, 8, 21, 10, 21, 12, 21, 215, 9, 21, 1, 22, 1, 22, 1, 22, 5, 22, 220, 8, 22, 10, 22, 12, 22, 223, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 231, 8, 23, 10, 23, 12, 23, 234, 9, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 245, 8, 24, 10, 24, 12, 24, 248, 9, 24, 1, 25, 1, 25, 4, 25, 252, 8, 25, 11, 25, 12, 25, 253, 1, 25, 1, 25, 4, 25, 258, 8, 25, 11, 25, 12, 25, 259, 1, 25, 3, 25, 263, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 271, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 279, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 285, 8, 26, 1, 26, 1, 26, 1, 26, 5, 26, 290, 8, 26, 10, 26, 12, 26, 293, 9, 26, 1, 27, 3, 27, 296, 8, 27, 1, 27, 1, 27, 3, 27, 300, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 305, 8, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 314, 8, 27, 1, 27, 3, 27, 317, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 322, 8, 27, 1, 27, 3, 27, 325, 8, 27, 1, 27, 1, 27, 3, 27, 329, 8, 27, 1, 27, 1, 27, 1, 27, 5, 27, 334, 8, 27, 10, 27, 12, 27, 337, 9, 27, 1, 27, 1, 27, 3, 27, 341, 8, 27, 1, 27, 3, 27, 344, 8, 27, 1, 27, 1, 27, 3, 27, 348, 8, 27, 1, 28, 1, 28, 1, 28, 5, 28, 353, 8, 28, 10, 28, 12, 28, 356, 9, 28, 1, 29, 1, 29, 1, 29, 5, 29, 361, 8, 29, 10, 29, 12, 29, 364, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 374, 8, 30, 10, 30, 12, 30, 377, 9, 30, 1, 31, 3, 31, 380, 8, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 392, 8, 32, 10, 32, 12, 32, 395, 9, 32, 1, 33, 1, 33, 3, 33, 399, 8, 33, 1, 34, 3, 34, 402, 8, 34, 1, 34, 1, 34, 1, 35, 3, 35, 407, 8, 35, 1, 35, 1, 35, 1, 35, 3, 35, 412, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 420, 8, 35, 1, 35, 0, 3, 46, 48, 52, 36, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 0, 5, 1, 0, 1, 2, 2, 0, 40, 40, 48, 48, 1, 0, 13, 19, 1, 0, 35, 37, 2, 0, 30, 30, 34, 34, 458, 0, 72, 1, 0, 0, 0, 2, 84, 1, 0, 0, 0, 4, 86, 1, 0, 0, 0, 6, 88, 1, 0, 0, 0, 8, 99, 1, 0, 0, 0, 10, 104, 1, 0, 0, 0, 12, 109, 1, 0, 0, 0, 14, 125, 1, 0, 0, 0, 16, 129, 1, 0, 0, 0, 18, 134, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 144, 1, 0, 0, 0, 24, 147, 1, 0, 0, 0, 26, 151, 1, 0, 0, 0, 28, 156, 1, 0, 0, 0, 30, 166, 1, 0, 0, 0, 32, 169, 1, 0, 0, 0, 34, 174, 1, 0, 0, 0, 36, 184, 1, 0, 0, 0, 38, 197, 1, 0, 0, 0, 40, 200, 1, 0, 0, 0, 42, 208, 1, 0, 0, 0, 44, 216, 1, 0, 0, 0, 46, 224, 1, 0, 0, 0, 48, 235, 1, 0, 0, 0, 50, 262, 1, 0, 0, 0, 52, 264, 1, 0, 0, 0, 54, 347, 1, 0, 0, 0, 56, 349, 1, 0, 0, 0, 58, 357, 1, 0, 0, 0, 60, 365, 1, 0, 0, 0, 62, 379, 1, 0, 0, 0, 64, 383, 1, 0, 0, 0, 66, 398, 1, 0, 0, 0, 68, 401, 1, 0, 0, 0, 70, 419, 1, 0, 0, 0, 72, 73, 3, 2, 1, 0, 73, 74, 5, 0, 0, 1, 74, 1, 1, 0, 0, 0, 75, 85, 3, 4, 2, 0, 76, 85, 3, 6, 3, 0, 77, 85, 3, 8, 4, 0, 78, 85, 3, 16, 8, 0, 79, 85, 3, 18, 9, 0, 80, 85, 3, 22, 11, 0, 81, 85, 3, 24, 12, 0, 82, 85, 3, 26, 13, 0, 83, 85, 3, 20, 10, 0, 84, 75, 1, 0, 0, 0, 84, 76, 1, 0, 0, 0, 84, 77, 1, 0, 0, 0, 84, 78, 1, 0, 0, 0, 84, 79, 1, 0, 0, 0, 84, 80, 1, 0, 0, 0, 84, 81, 1, 0, 0, 0, 84, 82, 1, 0, 0, 0, 84, 83, 1, 0, 0, 0, 85, 3, 1, 0, 0, 0, 86, 87, 7, 0, 0, 0, 87, 5, 1, 0, 0, 0, 88, 95, 5, 3, 0, 0, 89, 90, 3, 10, 5, 0, 90, 91, 5, 12, 0, 0, 91, 96, 1, 0, 0, 0, 92, 93, 3, 12, 6, 0, 93, 94, 5, 11, 0, 0, 94, 96, 1, 0, 0, 0, 95, 89, 1, 0, 0, 0, 95, 92, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 3, 40, 20, 0, 98, 7, 1, 0, 0, 0, 99, 102, 5, 4, 0, 0, 100, 103, 3, 10, 5, 0, 101, 103, 3, 12, 6, 0, 102, 100, 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 9, 1, 0, 0, 0, 104, 107, 3, 28, 14, 0, 105, 106, 5, 33, 0, 0, 106, 108, 3, 32, 16, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 11, 1, 0, 0, 0, 109, 110, 3, 28, 14, 0, 110, 119, 5, 26, 0, 0, 111, 116, 3, 14, 7, 0, 112, 113, 5, 29, 0, 0, 113, 115, 3, 14, 7, 0, 114, 112, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 120, 1, 0, 0, 0, 118, 116, 1, 0, 0, 0, 119, 111, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 5, 27, 0, 0, 122, 123, 5, 33, 0, 0, 123, 124, 3, 32, 16, 0, 124, 13, 1, 0, 0, 0, 125, 126, 5, 48, 0, 0, 126, 127, 5, 33, 0, 0, 127, 128, 3, 32, 16, 0, 128, 15, 1, 0, 0, 0, 129, 132, 5, 5, 0, 0, 130, 133, 3, 10, 5, 0, 131, 133, 3, 12, 6, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 17, 1, 0, 0, 0, 134, 139, 5, 9, 0, 0, 135, 138, 5, 10, 0, 0, 136, 138, 5, 46, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 19, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 21, 1, 0, 0, 0, 144, 145, 5, 6, 0, 0, 145, 146, 3, 40, 20, 0, 146, 23, 1, 0, 0, 0, 147, 148, 5, 7, 0, 0, 148, 149, 3, 40, 20, 0, 149, 25, 1, 0, 0, 0, 150, 152, 5, 8, 0, 0, 151, 150, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 154, 3, 40, 20, 0, 154, 27, 1, 0, 0, 0, 155, 157, 5, 28, 0, 0, 156, 155, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 163, 5, 48, 0, 0, 159, 160, 5, 28, 0, 0, 160, 162, 5, 48, 0, 0, 161, 159, 1, 0, 0, 0, 162, 165, 1, 0, 0, 0, 163, 161, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 29, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0, 166, 167, 3, 32, 16, 0, 167, 168, 5, 0, 0, 1, 168, 31, 1, 0, 0, 0, 169, 171, 3, 34, 17, 0, 170, 172, 3, 36, 18, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 33, 1, 0, 0, 0, 173, 175, 5, 28, 0, 0, 174, 173, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 176, 1, 0, 0, 0, 176, 181, 7, 1, 0, 0, 177, 178, 5, 28, 0, 0, 178, 180, 5, 48, 0, 0, 179, 177, 1, 0, 0, 0, 180, 183, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 35, 1, 0, 0, 0, 183, 181, 1, 0, 0, 0, 184, 193, 5, 26, 0, 0, 185, 190, 3, 32, 16, 0, 186, 187, 5, 29, 0, 0, 187, 189, 3, 32, 16, 0, 188, 186, 1, 0, 0, 0, 189, 192, 1, 0, 0, 0, 190, 188, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 194, 1, 0, 0, 0, 192, 190, 1, 0, 0, 0, 193, 185, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 5, 27, 0, 0, 196, 37, 1, 0, 0, 0, 197, 198, 3, 40, 20, 0, 198, 199, 5, 0, 0, 1, 199, 39, 1, 0, 0, 0, 200, 206, 3, 42, 21, 0, 201, 202, 5, 32, 0, 0, 202, 203, 3, 42, 21, 0, 203, 204, 5, 33, 0, 0, 204, 205, 3, 40, 20, 0, 205, 207, 1, 0, 0, 0, 206, 201, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 41, 1, 0, 0, 0, 208, 213, 3, 44, 22, 0, 209, 210, 5, 21, 0, 0, 210, 212, 3, 44, 22, 0, 211, 209, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 43, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 221, 3, 46, 23, 0, 217, 218, 5, 20, 0, 0, 218, 220, 3, 46, 23, 0, 219, 217, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 45, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 225, 6, 23, -1, 0, 225, 226, 3, 48, 24, 0, 226, 232, 1, 0, 0, 0, 227, 228, 10, 1, 0, 0, 228, 229, 7, 2, 0, 0, 229, 231, 3, 46, 23, 2, 230, 227, 1, 0, 0, 0, 231, 234, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 47, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 235, 236, 6, 24, -1, 0, 236, 237, 3, 50, 25, 0, 237, 246, 1, 0, 0, 0, 238, 239, 10, 2, 0, 0, 239, 240, 7, 3, 0, 0, 240, 245, 3, 48, 24, 3, 241, 242, 10, 1, 0, 0, 242, 243, 7, 4, 0, 0, 243, 245, 3, 48, 24, 2, 244, 238, 1, 0, 0, 0, 244, 241, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 49, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249, 263, 3, 52, 26, 0, 250, 252, 5, 31, 0, 0, 251, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 263, 3, 52, 26, 0, 256, 258, 5, 30, 0, 0, 257, 256, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 257, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 263, 3, 52, 26, 0, 262, 249, 1, 0, 0, 0, 262, 251, 1, 0, 0, 0, 262, 257, 1, 0, 0, 0, 263, 51, 1, 0, 0, 0, 264, 265, 6, 26, -1, 0, 265, 266, 3, 54, 27, 0, 266, 291, 1, 0, 0, 0, 267, 268, 10, 3, 0, 0, 268, 270, 5, 28, 0, 0, 269, 271, 5, 32, 0, 0, 270, 269, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 290, 3, 66, 33, 0, 273, 274, 10, 2, 0, 0, 274, 275, 5, 28, 0, 0, 275, 276, 5, 48, 0, 0, 276, 278, 5, 26, 0, 0, 277, 279, 3, 56, 28, 0, 278, 277, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 290, 5, 27, 0, 0, 281, 282, 10, 1, 0, 0, 282, 284, 5, 22, 0, 0, 283, 285, 5, 32, 0, 0, 284, 283, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 287, 3, 40, 20, 0, 287, 288, 5, 23, 0, 0, 288, 290, 1, 0, 0, 0, 289, 267, 1, 0, 0, 0, 289, 273, 1, 0, 0, 0, 289, 281, 1, 0, 0, 0, 290, 293, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 53, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294, 296, 5, 28, 0, 0, 295, 294, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 348, 5, 48, 0, 0, 298, 300, 5, 28, 0, 0, 299, 298, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 301, 1, 0, 0, 0, 301, 302, 5, 48, 0, 0, 302, 304, 5, 26, 0, 0, 303, 305, 3, 56, 28, 0, 304, 303, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 348, 5, 27, 0, 0, 307, 308, 5, 26, 0, 0, 308, 309, 3, 40, 20, 0, 309, 310, 5, 27, 0, 0, 310, 348, 1, 0, 0, 0, 311, 313, 5, 22, 0, 0, 312, 314, 3, 58, 29, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 316, 1, 0, 0, 0, 315, 317, 5, 29, 0, 0, 316, 315, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 348, 5, 23, 0, 0, 319, 321, 5, 24, 0, 0, 320, 322, 3, 64, 32, 0, 321, 320, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 325, 5, 29, 0, 0, 324, 323, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 348, 5, 25, 0, 0, 327, 329, 5, 28, 0, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 335, 5, 48, 0, 0, 331, 332, 5, 28, 0, 0, 332, 334, 5, 48, 0, 0, 333, 331, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 338, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 338, 340, 5, 24, 0, 0, 339, 341, 3, 60, 30, 0, 340, 339, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 343, 1, 0, 0, 0, 342, 344, 5, 29, 0, 0, 343, 342, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 348, 5, 25, 0, 0, 346, 348, 3, 70, 35, 0, 347, 295, 1, 0, 0, 0, 347, 299, 1, 0, 0, 0, 347, 307, 1, 0, 0, 0, 347, 311, 1, 0, 0, 0, 347, 319, 1, 0, 0, 0, 347, 328, 1, 0, 0, 0, 347, 346, 1, 0, 0, 0, 348, 55, 1, 0, 0, 0, 349, 354, 3, 40, 20, 0, 350, 351, 5, 29, 0, 0, 351, 353, 3, 40, 20, 0, 352, 350, 1, 0, 0, 0, 353, 356, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 57, 1, 0, 0, 0, 356, 354, 1, 0, 0, 0, 357, 362, 3, 68, 34, 0, 358, 359, 5, 29, 0, 0, 359, 361, 3, 68, 34, 0, 360, 358, 1, 0, 0, 0, 361, 364, 1, 0, 0, 0, 362, 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 59, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 365, 366, 3, 62, 31, 0, 366, 367, 5, 33, 0, 0, 367, 375, 3, 40, 20, 0, 368, 369, 5, 29, 0, 0, 369, 370, 3, 62, 31, 0, 370, 371, 5, 33, 0, 0, 371, 372, 3, 40, 20, 0, 372, 374, 1, 0, 0, 0, 373, 368, 1, 0, 0, 0, 374, 377, 1, 0, 0, 0, 375, 373, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 61, 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 378, 380, 5, 32, 0, 0, 379, 378, 1, 0, 0, 0, 379, 380, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 382, 3, 66, 33, 0, 382, 63, 1, 0, 0, 0, 383, 384, 3, 68, 34, 0, 384, 385, 5, 33, 0, 0, 385, 393, 3, 40, 20, 0, 386, 387, 5, 29, 0, 0, 387, 388, 3, 68, 34, 0, 388, 389, 5, 33, 0, 0, 389, 390, 3, 40, 20, 0, 390, 392, 1, 0, 0, 0, 391, 386, 1, 0, 0, 0, 392, 395, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 65, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 396, 399, 5, 48, 0, 0, 397, 399, 5, 49, 0, 0, 398, 396, 1, 0, 0, 0, 398, 397, 1, 0, 0, 0, 399, 67, 1, 0, 0, 0, 400, 402, 5, 32, 0, 0, 401, 400, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 404, 3, 40, 20, 0, 404, 69, 1, 0, 0, 0, 405, 407, 5, 30, 0, 0, 406, 405, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 408, 1, 0, 0, 0, 408, 420, 5, 44, 0, 0, 409, 420, 5, 45, 0, 0, 410, 412, 5, 30, 0, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 420, 5, 43, 0, 0, 414, 420, 5, 46, 0, 0, 415, 420, 5, 47, 0, 0, 416, 420, 5, 38, 0, 0, 417, 420, 5, 39, 0, 0, 418, 420, 5, 40, 0, 0, 419, 406, 1, 0, 0, 0, 419, 409, 1, 0, 0, 0, 419, 411, 1, 0, 0, 0, 419, 414, 1, 0, 0, 0, 419, 415, 1, 0, 0, 0, 419, 416, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 419, 418, 1, 0, 0, 0, 420, 71, 1, 0, 0, 0, 53, 84, 95, 102, 107, 116, 119, 132, 137, 139, 151, 156, 163, 171, 174, 181, 190, 193, 206, 213, 221, 232, 244, 246, 253, 259, 262, 270, 278, 284, 289, 291, 295, 299, 304, 313, 316, 321, 324, 328, 335, 340, 343, 347, 354, 362, 375, 379, 393, 398, 401, 406, 411, 419] \ No newline at end of file +[4, 1, 50, 432, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 85, 8, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 96, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3, 4, 103, 8, 4, 1, 5, 1, 5, 1, 5, 3, 5, 108, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 115, 8, 6, 10, 6, 12, 6, 118, 9, 6, 3, 6, 120, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 133, 8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 138, 8, 9, 10, 9, 12, 9, 141, 9, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 154, 8, 13, 10, 13, 12, 13, 157, 9, 13, 1, 13, 3, 13, 160, 8, 13, 3, 13, 162, 8, 13, 1, 13, 1, 13, 1, 14, 3, 14, 167, 8, 14, 1, 14, 1, 14, 1, 14, 5, 14, 172, 8, 14, 10, 14, 12, 14, 175, 9, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 182, 8, 16, 1, 17, 3, 17, 185, 8, 17, 1, 17, 1, 17, 1, 17, 5, 17, 190, 8, 17, 10, 17, 12, 17, 193, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 199, 8, 18, 10, 18, 12, 18, 202, 9, 18, 3, 18, 204, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 217, 8, 20, 1, 21, 1, 21, 1, 21, 5, 21, 222, 8, 21, 10, 21, 12, 21, 225, 9, 21, 1, 22, 1, 22, 1, 22, 5, 22, 230, 8, 22, 10, 22, 12, 22, 233, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 241, 8, 23, 10, 23, 12, 23, 244, 9, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 255, 8, 24, 10, 24, 12, 24, 258, 9, 24, 1, 25, 1, 25, 4, 25, 262, 8, 25, 11, 25, 12, 25, 263, 1, 25, 1, 25, 4, 25, 268, 8, 25, 11, 25, 12, 25, 269, 1, 25, 3, 25, 273, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 281, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 289, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 295, 8, 26, 1, 26, 1, 26, 1, 26, 5, 26, 300, 8, 26, 10, 26, 12, 26, 303, 9, 26, 1, 27, 3, 27, 306, 8, 27, 1, 27, 1, 27, 3, 27, 310, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 315, 8, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 324, 8, 27, 1, 27, 3, 27, 327, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 332, 8, 27, 1, 27, 3, 27, 335, 8, 27, 1, 27, 1, 27, 3, 27, 339, 8, 27, 1, 27, 1, 27, 1, 27, 5, 27, 344, 8, 27, 10, 27, 12, 27, 347, 9, 27, 1, 27, 1, 27, 3, 27, 351, 8, 27, 1, 27, 3, 27, 354, 8, 27, 1, 27, 1, 27, 3, 27, 358, 8, 27, 1, 28, 1, 28, 1, 28, 5, 28, 363, 8, 28, 10, 28, 12, 28, 366, 9, 28, 1, 29, 1, 29, 1, 29, 5, 29, 371, 8, 29, 10, 29, 12, 29, 374, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 384, 8, 30, 10, 30, 12, 30, 387, 9, 30, 1, 31, 3, 31, 390, 8, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 402, 8, 32, 10, 32, 12, 32, 405, 9, 32, 1, 33, 1, 33, 3, 33, 409, 8, 33, 1, 34, 3, 34, 412, 8, 34, 1, 34, 1, 34, 1, 35, 3, 35, 417, 8, 35, 1, 35, 1, 35, 1, 35, 3, 35, 422, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 430, 8, 35, 1, 35, 0, 3, 46, 48, 52, 36, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 0, 5, 1, 0, 1, 2, 2, 0, 41, 41, 49, 49, 1, 0, 14, 20, 1, 0, 36, 38, 2, 0, 31, 31, 35, 35, 470, 0, 72, 1, 0, 0, 0, 2, 84, 1, 0, 0, 0, 4, 86, 1, 0, 0, 0, 6, 88, 1, 0, 0, 0, 8, 99, 1, 0, 0, 0, 10, 104, 1, 0, 0, 0, 12, 109, 1, 0, 0, 0, 14, 125, 1, 0, 0, 0, 16, 129, 1, 0, 0, 0, 18, 134, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 144, 1, 0, 0, 0, 24, 147, 1, 0, 0, 0, 26, 161, 1, 0, 0, 0, 28, 166, 1, 0, 0, 0, 30, 176, 1, 0, 0, 0, 32, 179, 1, 0, 0, 0, 34, 184, 1, 0, 0, 0, 36, 194, 1, 0, 0, 0, 38, 207, 1, 0, 0, 0, 40, 210, 1, 0, 0, 0, 42, 218, 1, 0, 0, 0, 44, 226, 1, 0, 0, 0, 46, 234, 1, 0, 0, 0, 48, 245, 1, 0, 0, 0, 50, 272, 1, 0, 0, 0, 52, 274, 1, 0, 0, 0, 54, 357, 1, 0, 0, 0, 56, 359, 1, 0, 0, 0, 58, 367, 1, 0, 0, 0, 60, 375, 1, 0, 0, 0, 62, 389, 1, 0, 0, 0, 64, 393, 1, 0, 0, 0, 66, 408, 1, 0, 0, 0, 68, 411, 1, 0, 0, 0, 70, 429, 1, 0, 0, 0, 72, 73, 3, 2, 1, 0, 73, 74, 5, 0, 0, 1, 74, 1, 1, 0, 0, 0, 75, 85, 3, 4, 2, 0, 76, 85, 3, 6, 3, 0, 77, 85, 3, 8, 4, 0, 78, 85, 3, 16, 8, 0, 79, 85, 3, 18, 9, 0, 80, 85, 3, 22, 11, 0, 81, 85, 3, 24, 12, 0, 82, 85, 3, 26, 13, 0, 83, 85, 3, 20, 10, 0, 84, 75, 1, 0, 0, 0, 84, 76, 1, 0, 0, 0, 84, 77, 1, 0, 0, 0, 84, 78, 1, 0, 0, 0, 84, 79, 1, 0, 0, 0, 84, 80, 1, 0, 0, 0, 84, 81, 1, 0, 0, 0, 84, 82, 1, 0, 0, 0, 84, 83, 1, 0, 0, 0, 85, 3, 1, 0, 0, 0, 86, 87, 7, 0, 0, 0, 87, 5, 1, 0, 0, 0, 88, 95, 5, 3, 0, 0, 89, 90, 3, 10, 5, 0, 90, 91, 5, 13, 0, 0, 91, 96, 1, 0, 0, 0, 92, 93, 3, 12, 6, 0, 93, 94, 5, 12, 0, 0, 94, 96, 1, 0, 0, 0, 95, 89, 1, 0, 0, 0, 95, 92, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 3, 40, 20, 0, 98, 7, 1, 0, 0, 0, 99, 102, 5, 4, 0, 0, 100, 103, 3, 10, 5, 0, 101, 103, 3, 12, 6, 0, 102, 100, 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 9, 1, 0, 0, 0, 104, 107, 3, 28, 14, 0, 105, 106, 5, 34, 0, 0, 106, 108, 3, 32, 16, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 11, 1, 0, 0, 0, 109, 110, 3, 28, 14, 0, 110, 119, 5, 27, 0, 0, 111, 116, 3, 14, 7, 0, 112, 113, 5, 30, 0, 0, 113, 115, 3, 14, 7, 0, 114, 112, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 120, 1, 0, 0, 0, 118, 116, 1, 0, 0, 0, 119, 111, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 5, 28, 0, 0, 122, 123, 5, 34, 0, 0, 123, 124, 3, 32, 16, 0, 124, 13, 1, 0, 0, 0, 125, 126, 5, 49, 0, 0, 126, 127, 5, 34, 0, 0, 127, 128, 3, 32, 16, 0, 128, 15, 1, 0, 0, 0, 129, 132, 5, 5, 0, 0, 130, 133, 3, 10, 5, 0, 131, 133, 3, 12, 6, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 17, 1, 0, 0, 0, 134, 139, 5, 10, 0, 0, 135, 138, 5, 11, 0, 0, 136, 138, 5, 47, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 19, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 21, 1, 0, 0, 0, 144, 145, 5, 6, 0, 0, 145, 146, 3, 40, 20, 0, 146, 23, 1, 0, 0, 0, 147, 148, 5, 7, 0, 0, 148, 149, 3, 40, 20, 0, 149, 25, 1, 0, 0, 0, 150, 159, 5, 8, 0, 0, 151, 155, 5, 11, 0, 0, 152, 154, 5, 11, 0, 0, 153, 152, 1, 0, 0, 0, 154, 157, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 158, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 158, 160, 5, 9, 0, 0, 159, 151, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 162, 1, 0, 0, 0, 161, 150, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 164, 3, 40, 20, 0, 164, 27, 1, 0, 0, 0, 165, 167, 5, 29, 0, 0, 166, 165, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 173, 5, 49, 0, 0, 169, 170, 5, 29, 0, 0, 170, 172, 5, 49, 0, 0, 171, 169, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 29, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 177, 3, 32, 16, 0, 177, 178, 5, 0, 0, 1, 178, 31, 1, 0, 0, 0, 179, 181, 3, 34, 17, 0, 180, 182, 3, 36, 18, 0, 181, 180, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 33, 1, 0, 0, 0, 183, 185, 5, 29, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 186, 1, 0, 0, 0, 186, 191, 7, 1, 0, 0, 187, 188, 5, 29, 0, 0, 188, 190, 5, 49, 0, 0, 189, 187, 1, 0, 0, 0, 190, 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 35, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 194, 203, 5, 27, 0, 0, 195, 200, 3, 32, 16, 0, 196, 197, 5, 30, 0, 0, 197, 199, 3, 32, 16, 0, 198, 196, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 203, 195, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 206, 5, 28, 0, 0, 206, 37, 1, 0, 0, 0, 207, 208, 3, 40, 20, 0, 208, 209, 5, 0, 0, 1, 209, 39, 1, 0, 0, 0, 210, 216, 3, 42, 21, 0, 211, 212, 5, 33, 0, 0, 212, 213, 3, 42, 21, 0, 213, 214, 5, 34, 0, 0, 214, 215, 3, 40, 20, 0, 215, 217, 1, 0, 0, 0, 216, 211, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 41, 1, 0, 0, 0, 218, 223, 3, 44, 22, 0, 219, 220, 5, 22, 0, 0, 220, 222, 3, 44, 22, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 43, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 231, 3, 46, 23, 0, 227, 228, 5, 21, 0, 0, 228, 230, 3, 46, 23, 0, 229, 227, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231, 229, 1, 0, 0, 0, 231, 232, 1, 0, 0, 0, 232, 45, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 234, 235, 6, 23, -1, 0, 235, 236, 3, 48, 24, 0, 236, 242, 1, 0, 0, 0, 237, 238, 10, 1, 0, 0, 238, 239, 7, 2, 0, 0, 239, 241, 3, 46, 23, 2, 240, 237, 1, 0, 0, 0, 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 47, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 246, 6, 24, -1, 0, 246, 247, 3, 50, 25, 0, 247, 256, 1, 0, 0, 0, 248, 249, 10, 2, 0, 0, 249, 250, 7, 3, 0, 0, 250, 255, 3, 48, 24, 3, 251, 252, 10, 1, 0, 0, 252, 253, 7, 4, 0, 0, 253, 255, 3, 48, 24, 2, 254, 248, 1, 0, 0, 0, 254, 251, 1, 0, 0, 0, 255, 258, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 49, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 259, 273, 3, 52, 26, 0, 260, 262, 5, 32, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 273, 3, 52, 26, 0, 266, 268, 5, 31, 0, 0, 267, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 273, 3, 52, 26, 0, 272, 259, 1, 0, 0, 0, 272, 261, 1, 0, 0, 0, 272, 267, 1, 0, 0, 0, 273, 51, 1, 0, 0, 0, 274, 275, 6, 26, -1, 0, 275, 276, 3, 54, 27, 0, 276, 301, 1, 0, 0, 0, 277, 278, 10, 3, 0, 0, 278, 280, 5, 29, 0, 0, 279, 281, 5, 33, 0, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 300, 3, 66, 33, 0, 283, 284, 10, 2, 0, 0, 284, 285, 5, 29, 0, 0, 285, 286, 5, 49, 0, 0, 286, 288, 5, 27, 0, 0, 287, 289, 3, 56, 28, 0, 288, 287, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 300, 5, 28, 0, 0, 291, 292, 10, 1, 0, 0, 292, 294, 5, 23, 0, 0, 293, 295, 5, 33, 0, 0, 294, 293, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 297, 3, 40, 20, 0, 297, 298, 5, 24, 0, 0, 298, 300, 1, 0, 0, 0, 299, 277, 1, 0, 0, 0, 299, 283, 1, 0, 0, 0, 299, 291, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 53, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 306, 5, 29, 0, 0, 305, 304, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 358, 5, 49, 0, 0, 308, 310, 5, 29, 0, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 312, 5, 49, 0, 0, 312, 314, 5, 27, 0, 0, 313, 315, 3, 56, 28, 0, 314, 313, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 358, 5, 28, 0, 0, 317, 318, 5, 27, 0, 0, 318, 319, 3, 40, 20, 0, 319, 320, 5, 28, 0, 0, 320, 358, 1, 0, 0, 0, 321, 323, 5, 23, 0, 0, 322, 324, 3, 58, 29, 0, 323, 322, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 326, 1, 0, 0, 0, 325, 327, 5, 30, 0, 0, 326, 325, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 358, 5, 24, 0, 0, 329, 331, 5, 25, 0, 0, 330, 332, 3, 64, 32, 0, 331, 330, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 334, 1, 0, 0, 0, 333, 335, 5, 30, 0, 0, 334, 333, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 358, 5, 26, 0, 0, 337, 339, 5, 29, 0, 0, 338, 337, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 345, 5, 49, 0, 0, 341, 342, 5, 29, 0, 0, 342, 344, 5, 49, 0, 0, 343, 341, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 348, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 348, 350, 5, 25, 0, 0, 349, 351, 3, 60, 30, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 353, 1, 0, 0, 0, 352, 354, 5, 30, 0, 0, 353, 352, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 358, 5, 26, 0, 0, 356, 358, 3, 70, 35, 0, 357, 305, 1, 0, 0, 0, 357, 309, 1, 0, 0, 0, 357, 317, 1, 0, 0, 0, 357, 321, 1, 0, 0, 0, 357, 329, 1, 0, 0, 0, 357, 338, 1, 0, 0, 0, 357, 356, 1, 0, 0, 0, 358, 55, 1, 0, 0, 0, 359, 364, 3, 40, 20, 0, 360, 361, 5, 30, 0, 0, 361, 363, 3, 40, 20, 0, 362, 360, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 57, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 367, 372, 3, 68, 34, 0, 368, 369, 5, 30, 0, 0, 369, 371, 3, 68, 34, 0, 370, 368, 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 59, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 376, 3, 62, 31, 0, 376, 377, 5, 34, 0, 0, 377, 385, 3, 40, 20, 0, 378, 379, 5, 30, 0, 0, 379, 380, 3, 62, 31, 0, 380, 381, 5, 34, 0, 0, 381, 382, 3, 40, 20, 0, 382, 384, 1, 0, 0, 0, 383, 378, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 61, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 390, 5, 33, 0, 0, 389, 388, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 392, 3, 66, 33, 0, 392, 63, 1, 0, 0, 0, 393, 394, 3, 68, 34, 0, 394, 395, 5, 34, 0, 0, 395, 403, 3, 40, 20, 0, 396, 397, 5, 30, 0, 0, 397, 398, 3, 68, 34, 0, 398, 399, 5, 34, 0, 0, 399, 400, 3, 40, 20, 0, 400, 402, 1, 0, 0, 0, 401, 396, 1, 0, 0, 0, 402, 405, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 65, 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 406, 409, 5, 49, 0, 0, 407, 409, 5, 50, 0, 0, 408, 406, 1, 0, 0, 0, 408, 407, 1, 0, 0, 0, 409, 67, 1, 0, 0, 0, 410, 412, 5, 33, 0, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 414, 3, 40, 20, 0, 414, 69, 1, 0, 0, 0, 415, 417, 5, 31, 0, 0, 416, 415, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 430, 5, 45, 0, 0, 419, 430, 5, 46, 0, 0, 420, 422, 5, 31, 0, 0, 421, 420, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 430, 5, 44, 0, 0, 424, 430, 5, 47, 0, 0, 425, 430, 5, 48, 0, 0, 426, 430, 5, 39, 0, 0, 427, 430, 5, 40, 0, 0, 428, 430, 5, 41, 0, 0, 429, 416, 1, 0, 0, 0, 429, 419, 1, 0, 0, 0, 429, 421, 1, 0, 0, 0, 429, 424, 1, 0, 0, 0, 429, 425, 1, 0, 0, 0, 429, 426, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 428, 1, 0, 0, 0, 430, 71, 1, 0, 0, 0, 55, 84, 95, 102, 107, 116, 119, 132, 137, 139, 155, 159, 161, 166, 173, 181, 184, 191, 200, 203, 216, 223, 231, 242, 254, 256, 263, 269, 272, 280, 288, 294, 299, 301, 305, 309, 314, 323, 326, 331, 334, 338, 345, 350, 353, 357, 364, 372, 385, 389, 403, 408, 411, 416, 421, 429] \ No newline at end of file diff --git a/repl/parser/Commands.tokens b/repl/parser/Commands.tokens index 7b3277f81..1537f40b9 100644 --- a/repl/parser/Commands.tokens +++ b/repl/parser/Commands.tokens @@ -6,47 +6,48 @@ T__4=5 T__5=6 T__6=7 T__7=8 -COMMAND=9 -FLAG=10 -ARROW=11 -EQUAL_ASSIGN=12 -EQUALS=13 -NOT_EQUALS=14 -IN=15 -LESS=16 -LESS_EQUALS=17 -GREATER_EQUALS=18 -GREATER=19 -LOGICAL_AND=20 -LOGICAL_OR=21 -LBRACKET=22 -RPRACKET=23 -LBRACE=24 -RBRACE=25 -LPAREN=26 -RPAREN=27 -DOT=28 -COMMA=29 -MINUS=30 -EXCLAM=31 -QUESTIONMARK=32 -COLON=33 -PLUS=34 -STAR=35 -SLASH=36 -PERCENT=37 -CEL_TRUE=38 -CEL_FALSE=39 -NUL=40 -WHITESPACE=41 -COMMENT=42 -NUM_FLOAT=43 -NUM_INT=44 -NUM_UINT=45 -STRING=46 -BYTES=47 -IDENTIFIER=48 -ESC_IDENTIFIER=49 +T__8=9 +COMMAND=10 +FLAG=11 +ARROW=12 +EQUAL_ASSIGN=13 +EQUALS=14 +NOT_EQUALS=15 +IN=16 +LESS=17 +LESS_EQUALS=18 +GREATER_EQUALS=19 +GREATER=20 +LOGICAL_AND=21 +LOGICAL_OR=22 +LBRACKET=23 +RPRACKET=24 +LBRACE=25 +RBRACE=26 +LPAREN=27 +RPAREN=28 +DOT=29 +COMMA=30 +MINUS=31 +EXCLAM=32 +QUESTIONMARK=33 +COLON=34 +PLUS=35 +STAR=36 +SLASH=37 +PERCENT=38 +CEL_TRUE=39 +CEL_FALSE=40 +NUL=41 +WHITESPACE=42 +COMMENT=43 +NUM_FLOAT=44 +NUM_INT=45 +NUM_UINT=46 +STRING=47 +BYTES=48 +IDENTIFIER=49 +ESC_IDENTIFIER=50 '%help'=1 '%?'=2 '%let'=3 @@ -55,33 +56,34 @@ ESC_IDENTIFIER=49 '%compile'=6 '%parse'=7 '%eval'=8 -'->'=11 -'='=12 -'=='=13 -'!='=14 -'in'=15 -'<'=16 -'<='=17 -'>='=18 -'>'=19 -'&&'=20 -'||'=21 -'['=22 -']'=23 -'{'=24 -'}'=25 -'('=26 -')'=27 -'.'=28 -','=29 -'-'=30 -'!'=31 -'?'=32 -':'=33 -'+'=34 -'*'=35 -'/'=36 -'%'=37 -'true'=38 -'false'=39 -'null'=40 +'--'=9 +'->'=12 +'='=13 +'=='=14 +'!='=15 +'in'=16 +'<'=17 +'<='=18 +'>='=19 +'>'=20 +'&&'=21 +'||'=22 +'['=23 +']'=24 +'{'=25 +'}'=26 +'('=27 +')'=28 +'.'=29 +','=30 +'-'=31 +'!'=32 +'?'=33 +':'=34 +'+'=35 +'*'=36 +'/'=37 +'%'=38 +'true'=39 +'false'=40 +'null'=41 diff --git a/repl/parser/CommandsLexer.interp b/repl/parser/CommandsLexer.interp index fd091515e..ac41afde1 100644 --- a/repl/parser/CommandsLexer.interp +++ b/repl/parser/CommandsLexer.interp @@ -8,6 +8,7 @@ null '%compile' '%parse' '%eval' +'--' null null '->' @@ -60,6 +61,7 @@ null null null null +null COMMAND FLAG ARROW @@ -111,6 +113,7 @@ T__4 T__5 T__6 T__7 +T__8 COMMAND FLAG ARROW @@ -172,4 +175,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 49, 526, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 3, 9, 179, 8, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 270, 8, 43, 1, 43, 4, 43, 273, 8, 43, 11, 43, 12, 43, 274, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 285, 8, 46, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 318, 8, 50, 1, 51, 4, 51, 321, 8, 51, 11, 51, 12, 51, 322, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 331, 8, 52, 10, 52, 12, 52, 334, 9, 52, 1, 52, 1, 52, 1, 53, 4, 53, 339, 8, 53, 11, 53, 12, 53, 340, 1, 53, 1, 53, 4, 53, 345, 8, 53, 11, 53, 12, 53, 346, 1, 53, 3, 53, 350, 8, 53, 1, 53, 4, 53, 353, 8, 53, 11, 53, 12, 53, 354, 1, 53, 1, 53, 1, 53, 1, 53, 4, 53, 361, 8, 53, 11, 53, 12, 53, 362, 1, 53, 3, 53, 366, 8, 53, 3, 53, 368, 8, 53, 1, 54, 4, 54, 371, 8, 54, 11, 54, 12, 54, 372, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 379, 8, 54, 11, 54, 12, 54, 380, 3, 54, 383, 8, 54, 1, 55, 4, 55, 386, 8, 55, 11, 55, 12, 55, 387, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 4, 55, 396, 8, 55, 11, 55, 12, 55, 397, 1, 55, 1, 55, 3, 55, 402, 8, 55, 1, 56, 1, 56, 1, 56, 5, 56, 407, 8, 56, 10, 56, 12, 56, 410, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 416, 8, 56, 10, 56, 12, 56, 419, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 428, 8, 56, 10, 56, 12, 56, 431, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 442, 8, 56, 10, 56, 12, 56, 445, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 453, 8, 56, 10, 56, 12, 56, 456, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 463, 8, 56, 10, 56, 12, 56, 466, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 476, 8, 56, 10, 56, 12, 56, 479, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 491, 8, 56, 10, 56, 12, 56, 494, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 500, 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 3, 58, 507, 8, 58, 1, 58, 1, 58, 1, 58, 5, 58, 512, 8, 58, 10, 58, 12, 58, 515, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 4, 59, 521, 8, 59, 11, 59, 12, 59, 522, 1, 59, 1, 59, 4, 429, 443, 477, 492, 0, 60, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 41, 105, 42, 107, 43, 109, 44, 111, 45, 113, 46, 115, 47, 117, 48, 119, 49, 1, 0, 17, 2, 0, 65, 90, 97, 122, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120, 120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 2, 0, 66, 66, 98, 98, 3, 0, 32, 32, 45, 47, 95, 95, 563, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 1, 121, 1, 0, 0, 0, 3, 127, 1, 0, 0, 0, 5, 130, 1, 0, 0, 0, 7, 135, 1, 0, 0, 0, 9, 144, 1, 0, 0, 0, 11, 152, 1, 0, 0, 0, 13, 161, 1, 0, 0, 0, 15, 168, 1, 0, 0, 0, 17, 174, 1, 0, 0, 0, 19, 178, 1, 0, 0, 0, 21, 183, 1, 0, 0, 0, 23, 186, 1, 0, 0, 0, 25, 188, 1, 0, 0, 0, 27, 191, 1, 0, 0, 0, 29, 194, 1, 0, 0, 0, 31, 197, 1, 0, 0, 0, 33, 199, 1, 0, 0, 0, 35, 202, 1, 0, 0, 0, 37, 205, 1, 0, 0, 0, 39, 207, 1, 0, 0, 0, 41, 210, 1, 0, 0, 0, 43, 213, 1, 0, 0, 0, 45, 215, 1, 0, 0, 0, 47, 217, 1, 0, 0, 0, 49, 219, 1, 0, 0, 0, 51, 221, 1, 0, 0, 0, 53, 223, 1, 0, 0, 0, 55, 225, 1, 0, 0, 0, 57, 227, 1, 0, 0, 0, 59, 229, 1, 0, 0, 0, 61, 231, 1, 0, 0, 0, 63, 233, 1, 0, 0, 0, 65, 235, 1, 0, 0, 0, 67, 237, 1, 0, 0, 0, 69, 239, 1, 0, 0, 0, 71, 241, 1, 0, 0, 0, 73, 243, 1, 0, 0, 0, 75, 245, 1, 0, 0, 0, 77, 250, 1, 0, 0, 0, 79, 256, 1, 0, 0, 0, 81, 261, 1, 0, 0, 0, 83, 263, 1, 0, 0, 0, 85, 265, 1, 0, 0, 0, 87, 267, 1, 0, 0, 0, 89, 276, 1, 0, 0, 0, 91, 278, 1, 0, 0, 0, 93, 284, 1, 0, 0, 0, 95, 286, 1, 0, 0, 0, 97, 289, 1, 0, 0, 0, 99, 294, 1, 0, 0, 0, 101, 317, 1, 0, 0, 0, 103, 320, 1, 0, 0, 0, 105, 326, 1, 0, 0, 0, 107, 367, 1, 0, 0, 0, 109, 382, 1, 0, 0, 0, 111, 401, 1, 0, 0, 0, 113, 499, 1, 0, 0, 0, 115, 501, 1, 0, 0, 0, 117, 506, 1, 0, 0, 0, 119, 516, 1, 0, 0, 0, 121, 122, 5, 37, 0, 0, 122, 123, 5, 104, 0, 0, 123, 124, 5, 101, 0, 0, 124, 125, 5, 108, 0, 0, 125, 126, 5, 112, 0, 0, 126, 2, 1, 0, 0, 0, 127, 128, 5, 37, 0, 0, 128, 129, 5, 63, 0, 0, 129, 4, 1, 0, 0, 0, 130, 131, 5, 37, 0, 0, 131, 132, 5, 108, 0, 0, 132, 133, 5, 101, 0, 0, 133, 134, 5, 116, 0, 0, 134, 6, 1, 0, 0, 0, 135, 136, 5, 37, 0, 0, 136, 137, 5, 100, 0, 0, 137, 138, 5, 101, 0, 0, 138, 139, 5, 99, 0, 0, 139, 140, 5, 108, 0, 0, 140, 141, 5, 97, 0, 0, 141, 142, 5, 114, 0, 0, 142, 143, 5, 101, 0, 0, 143, 8, 1, 0, 0, 0, 144, 145, 5, 37, 0, 0, 145, 146, 5, 100, 0, 0, 146, 147, 5, 101, 0, 0, 147, 148, 5, 108, 0, 0, 148, 149, 5, 101, 0, 0, 149, 150, 5, 116, 0, 0, 150, 151, 5, 101, 0, 0, 151, 10, 1, 0, 0, 0, 152, 153, 5, 37, 0, 0, 153, 154, 5, 99, 0, 0, 154, 155, 5, 111, 0, 0, 155, 156, 5, 109, 0, 0, 156, 157, 5, 112, 0, 0, 157, 158, 5, 105, 0, 0, 158, 159, 5, 108, 0, 0, 159, 160, 5, 101, 0, 0, 160, 12, 1, 0, 0, 0, 161, 162, 5, 37, 0, 0, 162, 163, 5, 112, 0, 0, 163, 164, 5, 97, 0, 0, 164, 165, 5, 114, 0, 0, 165, 166, 5, 115, 0, 0, 166, 167, 5, 101, 0, 0, 167, 14, 1, 0, 0, 0, 168, 169, 5, 37, 0, 0, 169, 170, 5, 101, 0, 0, 170, 171, 5, 118, 0, 0, 171, 172, 5, 97, 0, 0, 172, 173, 5, 108, 0, 0, 173, 16, 1, 0, 0, 0, 174, 175, 5, 37, 0, 0, 175, 176, 3, 117, 58, 0, 176, 18, 1, 0, 0, 0, 177, 179, 5, 45, 0, 0, 178, 177, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 181, 5, 45, 0, 0, 181, 182, 3, 117, 58, 0, 182, 20, 1, 0, 0, 0, 183, 184, 5, 45, 0, 0, 184, 185, 5, 62, 0, 0, 185, 22, 1, 0, 0, 0, 186, 187, 5, 61, 0, 0, 187, 24, 1, 0, 0, 0, 188, 189, 5, 61, 0, 0, 189, 190, 5, 61, 0, 0, 190, 26, 1, 0, 0, 0, 191, 192, 5, 33, 0, 0, 192, 193, 5, 61, 0, 0, 193, 28, 1, 0, 0, 0, 194, 195, 5, 105, 0, 0, 195, 196, 5, 110, 0, 0, 196, 30, 1, 0, 0, 0, 197, 198, 5, 60, 0, 0, 198, 32, 1, 0, 0, 0, 199, 200, 5, 60, 0, 0, 200, 201, 5, 61, 0, 0, 201, 34, 1, 0, 0, 0, 202, 203, 5, 62, 0, 0, 203, 204, 5, 61, 0, 0, 204, 36, 1, 0, 0, 0, 205, 206, 5, 62, 0, 0, 206, 38, 1, 0, 0, 0, 207, 208, 5, 38, 0, 0, 208, 209, 5, 38, 0, 0, 209, 40, 1, 0, 0, 0, 210, 211, 5, 124, 0, 0, 211, 212, 5, 124, 0, 0, 212, 42, 1, 0, 0, 0, 213, 214, 5, 91, 0, 0, 214, 44, 1, 0, 0, 0, 215, 216, 5, 93, 0, 0, 216, 46, 1, 0, 0, 0, 217, 218, 5, 123, 0, 0, 218, 48, 1, 0, 0, 0, 219, 220, 5, 125, 0, 0, 220, 50, 1, 0, 0, 0, 221, 222, 5, 40, 0, 0, 222, 52, 1, 0, 0, 0, 223, 224, 5, 41, 0, 0, 224, 54, 1, 0, 0, 0, 225, 226, 5, 46, 0, 0, 226, 56, 1, 0, 0, 0, 227, 228, 5, 44, 0, 0, 228, 58, 1, 0, 0, 0, 229, 230, 5, 45, 0, 0, 230, 60, 1, 0, 0, 0, 231, 232, 5, 33, 0, 0, 232, 62, 1, 0, 0, 0, 233, 234, 5, 63, 0, 0, 234, 64, 1, 0, 0, 0, 235, 236, 5, 58, 0, 0, 236, 66, 1, 0, 0, 0, 237, 238, 5, 43, 0, 0, 238, 68, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, 70, 1, 0, 0, 0, 241, 242, 5, 47, 0, 0, 242, 72, 1, 0, 0, 0, 243, 244, 5, 37, 0, 0, 244, 74, 1, 0, 0, 0, 245, 246, 5, 116, 0, 0, 246, 247, 5, 114, 0, 0, 247, 248, 5, 117, 0, 0, 248, 249, 5, 101, 0, 0, 249, 76, 1, 0, 0, 0, 250, 251, 5, 102, 0, 0, 251, 252, 5, 97, 0, 0, 252, 253, 5, 108, 0, 0, 253, 254, 5, 115, 0, 0, 254, 255, 5, 101, 0, 0, 255, 78, 1, 0, 0, 0, 256, 257, 5, 110, 0, 0, 257, 258, 5, 117, 0, 0, 258, 259, 5, 108, 0, 0, 259, 260, 5, 108, 0, 0, 260, 80, 1, 0, 0, 0, 261, 262, 5, 92, 0, 0, 262, 82, 1, 0, 0, 0, 263, 264, 7, 0, 0, 0, 264, 84, 1, 0, 0, 0, 265, 266, 2, 48, 57, 0, 266, 86, 1, 0, 0, 0, 267, 269, 7, 1, 0, 0, 268, 270, 7, 2, 0, 0, 269, 268, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 272, 1, 0, 0, 0, 271, 273, 3, 85, 42, 0, 272, 271, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 88, 1, 0, 0, 0, 276, 277, 7, 3, 0, 0, 277, 90, 1, 0, 0, 0, 278, 279, 7, 4, 0, 0, 279, 92, 1, 0, 0, 0, 280, 285, 3, 95, 47, 0, 281, 285, 3, 99, 49, 0, 282, 285, 3, 101, 50, 0, 283, 285, 3, 97, 48, 0, 284, 280, 1, 0, 0, 0, 284, 281, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 283, 1, 0, 0, 0, 285, 94, 1, 0, 0, 0, 286, 287, 3, 81, 40, 0, 287, 288, 7, 5, 0, 0, 288, 96, 1, 0, 0, 0, 289, 290, 3, 81, 40, 0, 290, 291, 2, 48, 51, 0, 291, 292, 2, 48, 55, 0, 292, 293, 2, 48, 55, 0, 293, 98, 1, 0, 0, 0, 294, 295, 3, 81, 40, 0, 295, 296, 7, 6, 0, 0, 296, 297, 3, 89, 44, 0, 297, 298, 3, 89, 44, 0, 298, 100, 1, 0, 0, 0, 299, 300, 3, 81, 40, 0, 300, 301, 5, 117, 0, 0, 301, 302, 3, 89, 44, 0, 302, 303, 3, 89, 44, 0, 303, 304, 3, 89, 44, 0, 304, 305, 3, 89, 44, 0, 305, 318, 1, 0, 0, 0, 306, 307, 3, 81, 40, 0, 307, 308, 5, 85, 0, 0, 308, 309, 3, 89, 44, 0, 309, 310, 3, 89, 44, 0, 310, 311, 3, 89, 44, 0, 311, 312, 3, 89, 44, 0, 312, 313, 3, 89, 44, 0, 313, 314, 3, 89, 44, 0, 314, 315, 3, 89, 44, 0, 315, 316, 3, 89, 44, 0, 316, 318, 1, 0, 0, 0, 317, 299, 1, 0, 0, 0, 317, 306, 1, 0, 0, 0, 318, 102, 1, 0, 0, 0, 319, 321, 7, 7, 0, 0, 320, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 325, 6, 51, 0, 0, 325, 104, 1, 0, 0, 0, 326, 327, 5, 47, 0, 0, 327, 328, 5, 47, 0, 0, 328, 332, 1, 0, 0, 0, 329, 331, 8, 8, 0, 0, 330, 329, 1, 0, 0, 0, 331, 334, 1, 0, 0, 0, 332, 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 335, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 335, 336, 6, 52, 0, 0, 336, 106, 1, 0, 0, 0, 337, 339, 3, 85, 42, 0, 338, 337, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 344, 5, 46, 0, 0, 343, 345, 3, 85, 42, 0, 344, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 349, 1, 0, 0, 0, 348, 350, 3, 87, 43, 0, 349, 348, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 368, 1, 0, 0, 0, 351, 353, 3, 85, 42, 0, 352, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356, 357, 3, 87, 43, 0, 357, 368, 1, 0, 0, 0, 358, 360, 5, 46, 0, 0, 359, 361, 3, 85, 42, 0, 360, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 365, 1, 0, 0, 0, 364, 366, 3, 87, 43, 0, 365, 364, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 368, 1, 0, 0, 0, 367, 338, 1, 0, 0, 0, 367, 352, 1, 0, 0, 0, 367, 358, 1, 0, 0, 0, 368, 108, 1, 0, 0, 0, 369, 371, 3, 85, 42, 0, 370, 369, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 383, 1, 0, 0, 0, 374, 375, 5, 48, 0, 0, 375, 376, 5, 120, 0, 0, 376, 378, 1, 0, 0, 0, 377, 379, 3, 89, 44, 0, 378, 377, 1, 0, 0, 0, 379, 380, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 383, 1, 0, 0, 0, 382, 370, 1, 0, 0, 0, 382, 374, 1, 0, 0, 0, 383, 110, 1, 0, 0, 0, 384, 386, 3, 85, 42, 0, 385, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 390, 7, 9, 0, 0, 390, 402, 1, 0, 0, 0, 391, 392, 5, 48, 0, 0, 392, 393, 5, 120, 0, 0, 393, 395, 1, 0, 0, 0, 394, 396, 3, 89, 44, 0, 395, 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 400, 7, 9, 0, 0, 400, 402, 1, 0, 0, 0, 401, 385, 1, 0, 0, 0, 401, 391, 1, 0, 0, 0, 402, 112, 1, 0, 0, 0, 403, 408, 5, 34, 0, 0, 404, 407, 3, 93, 46, 0, 405, 407, 8, 10, 0, 0, 406, 404, 1, 0, 0, 0, 406, 405, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 411, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 411, 500, 5, 34, 0, 0, 412, 417, 5, 39, 0, 0, 413, 416, 3, 93, 46, 0, 414, 416, 8, 11, 0, 0, 415, 413, 1, 0, 0, 0, 415, 414, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 420, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 500, 5, 39, 0, 0, 421, 422, 5, 34, 0, 0, 422, 423, 5, 34, 0, 0, 423, 424, 5, 34, 0, 0, 424, 429, 1, 0, 0, 0, 425, 428, 3, 93, 46, 0, 426, 428, 8, 12, 0, 0, 427, 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 430, 432, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 433, 5, 34, 0, 0, 433, 434, 5, 34, 0, 0, 434, 500, 5, 34, 0, 0, 435, 436, 5, 39, 0, 0, 436, 437, 5, 39, 0, 0, 437, 438, 5, 39, 0, 0, 438, 443, 1, 0, 0, 0, 439, 442, 3, 93, 46, 0, 440, 442, 8, 12, 0, 0, 441, 439, 1, 0, 0, 0, 441, 440, 1, 0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 444, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 444, 446, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 39, 0, 0, 447, 448, 5, 39, 0, 0, 448, 500, 5, 39, 0, 0, 449, 450, 3, 91, 45, 0, 450, 454, 5, 34, 0, 0, 451, 453, 8, 13, 0, 0, 452, 451, 1, 0, 0, 0, 453, 456, 1, 0, 0, 0, 454, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 457, 1, 0, 0, 0, 456, 454, 1, 0, 0, 0, 457, 458, 5, 34, 0, 0, 458, 500, 1, 0, 0, 0, 459, 460, 3, 91, 45, 0, 460, 464, 5, 39, 0, 0, 461, 463, 8, 14, 0, 0, 462, 461, 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 464, 465, 1, 0, 0, 0, 465, 467, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 467, 468, 5, 39, 0, 0, 468, 500, 1, 0, 0, 0, 469, 470, 3, 91, 45, 0, 470, 471, 5, 34, 0, 0, 471, 472, 5, 34, 0, 0, 472, 473, 5, 34, 0, 0, 473, 477, 1, 0, 0, 0, 474, 476, 9, 0, 0, 0, 475, 474, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 478, 480, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480, 481, 5, 34, 0, 0, 481, 482, 5, 34, 0, 0, 482, 483, 5, 34, 0, 0, 483, 500, 1, 0, 0, 0, 484, 485, 3, 91, 45, 0, 485, 486, 5, 39, 0, 0, 486, 487, 5, 39, 0, 0, 487, 488, 5, 39, 0, 0, 488, 492, 1, 0, 0, 0, 489, 491, 9, 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 494, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 493, 495, 1, 0, 0, 0, 494, 492, 1, 0, 0, 0, 495, 496, 5, 39, 0, 0, 496, 497, 5, 39, 0, 0, 497, 498, 5, 39, 0, 0, 498, 500, 1, 0, 0, 0, 499, 403, 1, 0, 0, 0, 499, 412, 1, 0, 0, 0, 499, 421, 1, 0, 0, 0, 499, 435, 1, 0, 0, 0, 499, 449, 1, 0, 0, 0, 499, 459, 1, 0, 0, 0, 499, 469, 1, 0, 0, 0, 499, 484, 1, 0, 0, 0, 500, 114, 1, 0, 0, 0, 501, 502, 7, 15, 0, 0, 502, 503, 3, 113, 56, 0, 503, 116, 1, 0, 0, 0, 504, 507, 3, 83, 41, 0, 505, 507, 5, 95, 0, 0, 506, 504, 1, 0, 0, 0, 506, 505, 1, 0, 0, 0, 507, 513, 1, 0, 0, 0, 508, 512, 3, 83, 41, 0, 509, 512, 3, 85, 42, 0, 510, 512, 5, 95, 0, 0, 511, 508, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 511, 510, 1, 0, 0, 0, 512, 515, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 118, 1, 0, 0, 0, 515, 513, 1, 0, 0, 0, 516, 520, 5, 96, 0, 0, 517, 521, 3, 83, 41, 0, 518, 521, 3, 85, 42, 0, 519, 521, 7, 16, 0, 0, 520, 517, 1, 0, 0, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 96, 0, 0, 525, 120, 1, 0, 0, 0, 39, 0, 178, 269, 274, 284, 317, 322, 332, 340, 346, 349, 354, 362, 365, 367, 372, 380, 382, 387, 397, 401, 406, 408, 415, 417, 427, 429, 441, 443, 454, 464, 477, 492, 499, 506, 511, 513, 520, 522, 1, 0, 1, 0] \ No newline at end of file +[4, 0, 50, 532, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 4, 10, 186, 8, 10, 11, 10, 12, 10, 187, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 1, 44, 1, 44, 3, 44, 276, 8, 44, 1, 44, 4, 44, 279, 8, 44, 11, 44, 12, 44, 280, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 291, 8, 47, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 324, 8, 51, 1, 52, 4, 52, 327, 8, 52, 11, 52, 12, 52, 328, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 5, 53, 337, 8, 53, 10, 53, 12, 53, 340, 9, 53, 1, 53, 1, 53, 1, 54, 4, 54, 345, 8, 54, 11, 54, 12, 54, 346, 1, 54, 1, 54, 4, 54, 351, 8, 54, 11, 54, 12, 54, 352, 1, 54, 3, 54, 356, 8, 54, 1, 54, 4, 54, 359, 8, 54, 11, 54, 12, 54, 360, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 367, 8, 54, 11, 54, 12, 54, 368, 1, 54, 3, 54, 372, 8, 54, 3, 54, 374, 8, 54, 1, 55, 4, 55, 377, 8, 55, 11, 55, 12, 55, 378, 1, 55, 1, 55, 1, 55, 1, 55, 4, 55, 385, 8, 55, 11, 55, 12, 55, 386, 3, 55, 389, 8, 55, 1, 56, 4, 56, 392, 8, 56, 11, 56, 12, 56, 393, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 4, 56, 402, 8, 56, 11, 56, 12, 56, 403, 1, 56, 1, 56, 3, 56, 408, 8, 56, 1, 57, 1, 57, 1, 57, 5, 57, 413, 8, 57, 10, 57, 12, 57, 416, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 422, 8, 57, 10, 57, 12, 57, 425, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 434, 8, 57, 10, 57, 12, 57, 437, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 448, 8, 57, 10, 57, 12, 57, 451, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 459, 8, 57, 10, 57, 12, 57, 462, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 469, 8, 57, 10, 57, 12, 57, 472, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 482, 8, 57, 10, 57, 12, 57, 485, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 497, 8, 57, 10, 57, 12, 57, 500, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 506, 8, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 3, 59, 513, 8, 59, 1, 59, 1, 59, 1, 59, 5, 59, 518, 8, 59, 10, 59, 12, 59, 521, 9, 59, 1, 60, 1, 60, 1, 60, 1, 60, 4, 60, 527, 8, 60, 11, 60, 12, 60, 528, 1, 60, 1, 60, 4, 435, 449, 483, 498, 0, 61, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 42, 107, 43, 109, 44, 111, 45, 113, 46, 115, 47, 117, 48, 119, 49, 121, 50, 1, 0, 17, 2, 0, 65, 90, 97, 122, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120, 120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 2, 0, 66, 66, 98, 98, 3, 0, 32, 32, 45, 47, 95, 95, 569, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 1, 123, 1, 0, 0, 0, 3, 129, 1, 0, 0, 0, 5, 132, 1, 0, 0, 0, 7, 137, 1, 0, 0, 0, 9, 146, 1, 0, 0, 0, 11, 154, 1, 0, 0, 0, 13, 163, 1, 0, 0, 0, 15, 170, 1, 0, 0, 0, 17, 176, 1, 0, 0, 0, 19, 179, 1, 0, 0, 0, 21, 182, 1, 0, 0, 0, 23, 189, 1, 0, 0, 0, 25, 192, 1, 0, 0, 0, 27, 194, 1, 0, 0, 0, 29, 197, 1, 0, 0, 0, 31, 200, 1, 0, 0, 0, 33, 203, 1, 0, 0, 0, 35, 205, 1, 0, 0, 0, 37, 208, 1, 0, 0, 0, 39, 211, 1, 0, 0, 0, 41, 213, 1, 0, 0, 0, 43, 216, 1, 0, 0, 0, 45, 219, 1, 0, 0, 0, 47, 221, 1, 0, 0, 0, 49, 223, 1, 0, 0, 0, 51, 225, 1, 0, 0, 0, 53, 227, 1, 0, 0, 0, 55, 229, 1, 0, 0, 0, 57, 231, 1, 0, 0, 0, 59, 233, 1, 0, 0, 0, 61, 235, 1, 0, 0, 0, 63, 237, 1, 0, 0, 0, 65, 239, 1, 0, 0, 0, 67, 241, 1, 0, 0, 0, 69, 243, 1, 0, 0, 0, 71, 245, 1, 0, 0, 0, 73, 247, 1, 0, 0, 0, 75, 249, 1, 0, 0, 0, 77, 251, 1, 0, 0, 0, 79, 256, 1, 0, 0, 0, 81, 262, 1, 0, 0, 0, 83, 267, 1, 0, 0, 0, 85, 269, 1, 0, 0, 0, 87, 271, 1, 0, 0, 0, 89, 273, 1, 0, 0, 0, 91, 282, 1, 0, 0, 0, 93, 284, 1, 0, 0, 0, 95, 290, 1, 0, 0, 0, 97, 292, 1, 0, 0, 0, 99, 295, 1, 0, 0, 0, 101, 300, 1, 0, 0, 0, 103, 323, 1, 0, 0, 0, 105, 326, 1, 0, 0, 0, 107, 332, 1, 0, 0, 0, 109, 373, 1, 0, 0, 0, 111, 388, 1, 0, 0, 0, 113, 407, 1, 0, 0, 0, 115, 505, 1, 0, 0, 0, 117, 507, 1, 0, 0, 0, 119, 512, 1, 0, 0, 0, 121, 522, 1, 0, 0, 0, 123, 124, 5, 37, 0, 0, 124, 125, 5, 104, 0, 0, 125, 126, 5, 101, 0, 0, 126, 127, 5, 108, 0, 0, 127, 128, 5, 112, 0, 0, 128, 2, 1, 0, 0, 0, 129, 130, 5, 37, 0, 0, 130, 131, 5, 63, 0, 0, 131, 4, 1, 0, 0, 0, 132, 133, 5, 37, 0, 0, 133, 134, 5, 108, 0, 0, 134, 135, 5, 101, 0, 0, 135, 136, 5, 116, 0, 0, 136, 6, 1, 0, 0, 0, 137, 138, 5, 37, 0, 0, 138, 139, 5, 100, 0, 0, 139, 140, 5, 101, 0, 0, 140, 141, 5, 99, 0, 0, 141, 142, 5, 108, 0, 0, 142, 143, 5, 97, 0, 0, 143, 144, 5, 114, 0, 0, 144, 145, 5, 101, 0, 0, 145, 8, 1, 0, 0, 0, 146, 147, 5, 37, 0, 0, 147, 148, 5, 100, 0, 0, 148, 149, 5, 101, 0, 0, 149, 150, 5, 108, 0, 0, 150, 151, 5, 101, 0, 0, 151, 152, 5, 116, 0, 0, 152, 153, 5, 101, 0, 0, 153, 10, 1, 0, 0, 0, 154, 155, 5, 37, 0, 0, 155, 156, 5, 99, 0, 0, 156, 157, 5, 111, 0, 0, 157, 158, 5, 109, 0, 0, 158, 159, 5, 112, 0, 0, 159, 160, 5, 105, 0, 0, 160, 161, 5, 108, 0, 0, 161, 162, 5, 101, 0, 0, 162, 12, 1, 0, 0, 0, 163, 164, 5, 37, 0, 0, 164, 165, 5, 112, 0, 0, 165, 166, 5, 97, 0, 0, 166, 167, 5, 114, 0, 0, 167, 168, 5, 115, 0, 0, 168, 169, 5, 101, 0, 0, 169, 14, 1, 0, 0, 0, 170, 171, 5, 37, 0, 0, 171, 172, 5, 101, 0, 0, 172, 173, 5, 118, 0, 0, 173, 174, 5, 97, 0, 0, 174, 175, 5, 108, 0, 0, 175, 16, 1, 0, 0, 0, 176, 177, 5, 45, 0, 0, 177, 178, 5, 45, 0, 0, 178, 18, 1, 0, 0, 0, 179, 180, 5, 37, 0, 0, 180, 181, 3, 119, 59, 0, 181, 20, 1, 0, 0, 0, 182, 185, 5, 45, 0, 0, 183, 184, 5, 45, 0, 0, 184, 186, 3, 119, 59, 0, 185, 183, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 22, 1, 0, 0, 0, 189, 190, 5, 45, 0, 0, 190, 191, 5, 62, 0, 0, 191, 24, 1, 0, 0, 0, 192, 193, 5, 61, 0, 0, 193, 26, 1, 0, 0, 0, 194, 195, 5, 61, 0, 0, 195, 196, 5, 61, 0, 0, 196, 28, 1, 0, 0, 0, 197, 198, 5, 33, 0, 0, 198, 199, 5, 61, 0, 0, 199, 30, 1, 0, 0, 0, 200, 201, 5, 105, 0, 0, 201, 202, 5, 110, 0, 0, 202, 32, 1, 0, 0, 0, 203, 204, 5, 60, 0, 0, 204, 34, 1, 0, 0, 0, 205, 206, 5, 60, 0, 0, 206, 207, 5, 61, 0, 0, 207, 36, 1, 0, 0, 0, 208, 209, 5, 62, 0, 0, 209, 210, 5, 61, 0, 0, 210, 38, 1, 0, 0, 0, 211, 212, 5, 62, 0, 0, 212, 40, 1, 0, 0, 0, 213, 214, 5, 38, 0, 0, 214, 215, 5, 38, 0, 0, 215, 42, 1, 0, 0, 0, 216, 217, 5, 124, 0, 0, 217, 218, 5, 124, 0, 0, 218, 44, 1, 0, 0, 0, 219, 220, 5, 91, 0, 0, 220, 46, 1, 0, 0, 0, 221, 222, 5, 93, 0, 0, 222, 48, 1, 0, 0, 0, 223, 224, 5, 123, 0, 0, 224, 50, 1, 0, 0, 0, 225, 226, 5, 125, 0, 0, 226, 52, 1, 0, 0, 0, 227, 228, 5, 40, 0, 0, 228, 54, 1, 0, 0, 0, 229, 230, 5, 41, 0, 0, 230, 56, 1, 0, 0, 0, 231, 232, 5, 46, 0, 0, 232, 58, 1, 0, 0, 0, 233, 234, 5, 44, 0, 0, 234, 60, 1, 0, 0, 0, 235, 236, 5, 45, 0, 0, 236, 62, 1, 0, 0, 0, 237, 238, 5, 33, 0, 0, 238, 64, 1, 0, 0, 0, 239, 240, 5, 63, 0, 0, 240, 66, 1, 0, 0, 0, 241, 242, 5, 58, 0, 0, 242, 68, 1, 0, 0, 0, 243, 244, 5, 43, 0, 0, 244, 70, 1, 0, 0, 0, 245, 246, 5, 42, 0, 0, 246, 72, 1, 0, 0, 0, 247, 248, 5, 47, 0, 0, 248, 74, 1, 0, 0, 0, 249, 250, 5, 37, 0, 0, 250, 76, 1, 0, 0, 0, 251, 252, 5, 116, 0, 0, 252, 253, 5, 114, 0, 0, 253, 254, 5, 117, 0, 0, 254, 255, 5, 101, 0, 0, 255, 78, 1, 0, 0, 0, 256, 257, 5, 102, 0, 0, 257, 258, 5, 97, 0, 0, 258, 259, 5, 108, 0, 0, 259, 260, 5, 115, 0, 0, 260, 261, 5, 101, 0, 0, 261, 80, 1, 0, 0, 0, 262, 263, 5, 110, 0, 0, 263, 264, 5, 117, 0, 0, 264, 265, 5, 108, 0, 0, 265, 266, 5, 108, 0, 0, 266, 82, 1, 0, 0, 0, 267, 268, 5, 92, 0, 0, 268, 84, 1, 0, 0, 0, 269, 270, 7, 0, 0, 0, 270, 86, 1, 0, 0, 0, 271, 272, 2, 48, 57, 0, 272, 88, 1, 0, 0, 0, 273, 275, 7, 1, 0, 0, 274, 276, 7, 2, 0, 0, 275, 274, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 278, 1, 0, 0, 0, 277, 279, 3, 87, 43, 0, 278, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 90, 1, 0, 0, 0, 282, 283, 7, 3, 0, 0, 283, 92, 1, 0, 0, 0, 284, 285, 7, 4, 0, 0, 285, 94, 1, 0, 0, 0, 286, 291, 3, 97, 48, 0, 287, 291, 3, 101, 50, 0, 288, 291, 3, 103, 51, 0, 289, 291, 3, 99, 49, 0, 290, 286, 1, 0, 0, 0, 290, 287, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 291, 96, 1, 0, 0, 0, 292, 293, 3, 83, 41, 0, 293, 294, 7, 5, 0, 0, 294, 98, 1, 0, 0, 0, 295, 296, 3, 83, 41, 0, 296, 297, 2, 48, 51, 0, 297, 298, 2, 48, 55, 0, 298, 299, 2, 48, 55, 0, 299, 100, 1, 0, 0, 0, 300, 301, 3, 83, 41, 0, 301, 302, 7, 6, 0, 0, 302, 303, 3, 91, 45, 0, 303, 304, 3, 91, 45, 0, 304, 102, 1, 0, 0, 0, 305, 306, 3, 83, 41, 0, 306, 307, 5, 117, 0, 0, 307, 308, 3, 91, 45, 0, 308, 309, 3, 91, 45, 0, 309, 310, 3, 91, 45, 0, 310, 311, 3, 91, 45, 0, 311, 324, 1, 0, 0, 0, 312, 313, 3, 83, 41, 0, 313, 314, 5, 85, 0, 0, 314, 315, 3, 91, 45, 0, 315, 316, 3, 91, 45, 0, 316, 317, 3, 91, 45, 0, 317, 318, 3, 91, 45, 0, 318, 319, 3, 91, 45, 0, 319, 320, 3, 91, 45, 0, 320, 321, 3, 91, 45, 0, 321, 322, 3, 91, 45, 0, 322, 324, 1, 0, 0, 0, 323, 305, 1, 0, 0, 0, 323, 312, 1, 0, 0, 0, 324, 104, 1, 0, 0, 0, 325, 327, 7, 7, 0, 0, 326, 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 6, 52, 0, 0, 331, 106, 1, 0, 0, 0, 332, 333, 5, 47, 0, 0, 333, 334, 5, 47, 0, 0, 334, 338, 1, 0, 0, 0, 335, 337, 8, 8, 0, 0, 336, 335, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 341, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 341, 342, 6, 53, 0, 0, 342, 108, 1, 0, 0, 0, 343, 345, 3, 87, 43, 0, 344, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 350, 5, 46, 0, 0, 349, 351, 3, 87, 43, 0, 350, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 355, 1, 0, 0, 0, 354, 356, 3, 89, 44, 0, 355, 354, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356, 374, 1, 0, 0, 0, 357, 359, 3, 87, 43, 0, 358, 357, 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 363, 3, 89, 44, 0, 363, 374, 1, 0, 0, 0, 364, 366, 5, 46, 0, 0, 365, 367, 3, 87, 43, 0, 366, 365, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 371, 1, 0, 0, 0, 370, 372, 3, 89, 44, 0, 371, 370, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 374, 1, 0, 0, 0, 373, 344, 1, 0, 0, 0, 373, 358, 1, 0, 0, 0, 373, 364, 1, 0, 0, 0, 374, 110, 1, 0, 0, 0, 375, 377, 3, 87, 43, 0, 376, 375, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 389, 1, 0, 0, 0, 380, 381, 5, 48, 0, 0, 381, 382, 5, 120, 0, 0, 382, 384, 1, 0, 0, 0, 383, 385, 3, 91, 45, 0, 384, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 389, 1, 0, 0, 0, 388, 376, 1, 0, 0, 0, 388, 380, 1, 0, 0, 0, 389, 112, 1, 0, 0, 0, 390, 392, 3, 87, 43, 0, 391, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 396, 7, 9, 0, 0, 396, 408, 1, 0, 0, 0, 397, 398, 5, 48, 0, 0, 398, 399, 5, 120, 0, 0, 399, 401, 1, 0, 0, 0, 400, 402, 3, 91, 45, 0, 401, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 406, 7, 9, 0, 0, 406, 408, 1, 0, 0, 0, 407, 391, 1, 0, 0, 0, 407, 397, 1, 0, 0, 0, 408, 114, 1, 0, 0, 0, 409, 414, 5, 34, 0, 0, 410, 413, 3, 95, 47, 0, 411, 413, 8, 10, 0, 0, 412, 410, 1, 0, 0, 0, 412, 411, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 417, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 506, 5, 34, 0, 0, 418, 423, 5, 39, 0, 0, 419, 422, 3, 95, 47, 0, 420, 422, 8, 11, 0, 0, 421, 419, 1, 0, 0, 0, 421, 420, 1, 0, 0, 0, 422, 425, 1, 0, 0, 0, 423, 421, 1, 0, 0, 0, 423, 424, 1, 0, 0, 0, 424, 426, 1, 0, 0, 0, 425, 423, 1, 0, 0, 0, 426, 506, 5, 39, 0, 0, 427, 428, 5, 34, 0, 0, 428, 429, 5, 34, 0, 0, 429, 430, 5, 34, 0, 0, 430, 435, 1, 0, 0, 0, 431, 434, 3, 95, 47, 0, 432, 434, 8, 12, 0, 0, 433, 431, 1, 0, 0, 0, 433, 432, 1, 0, 0, 0, 434, 437, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 436, 438, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 439, 5, 34, 0, 0, 439, 440, 5, 34, 0, 0, 440, 506, 5, 34, 0, 0, 441, 442, 5, 39, 0, 0, 442, 443, 5, 39, 0, 0, 443, 444, 5, 39, 0, 0, 444, 449, 1, 0, 0, 0, 445, 448, 3, 95, 47, 0, 446, 448, 8, 12, 0, 0, 447, 445, 1, 0, 0, 0, 447, 446, 1, 0, 0, 0, 448, 451, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 452, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 452, 453, 5, 39, 0, 0, 453, 454, 5, 39, 0, 0, 454, 506, 5, 39, 0, 0, 455, 456, 3, 93, 46, 0, 456, 460, 5, 34, 0, 0, 457, 459, 8, 13, 0, 0, 458, 457, 1, 0, 0, 0, 459, 462, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 463, 464, 5, 34, 0, 0, 464, 506, 1, 0, 0, 0, 465, 466, 3, 93, 46, 0, 466, 470, 5, 39, 0, 0, 467, 469, 8, 14, 0, 0, 468, 467, 1, 0, 0, 0, 469, 472, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 473, 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 473, 474, 5, 39, 0, 0, 474, 506, 1, 0, 0, 0, 475, 476, 3, 93, 46, 0, 476, 477, 5, 34, 0, 0, 477, 478, 5, 34, 0, 0, 478, 479, 5, 34, 0, 0, 479, 483, 1, 0, 0, 0, 480, 482, 9, 0, 0, 0, 481, 480, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 484, 486, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 487, 5, 34, 0, 0, 487, 488, 5, 34, 0, 0, 488, 489, 5, 34, 0, 0, 489, 506, 1, 0, 0, 0, 490, 491, 3, 93, 46, 0, 491, 492, 5, 39, 0, 0, 492, 493, 5, 39, 0, 0, 493, 494, 5, 39, 0, 0, 494, 498, 1, 0, 0, 0, 495, 497, 9, 0, 0, 0, 496, 495, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, 502, 5, 39, 0, 0, 502, 503, 5, 39, 0, 0, 503, 504, 5, 39, 0, 0, 504, 506, 1, 0, 0, 0, 505, 409, 1, 0, 0, 0, 505, 418, 1, 0, 0, 0, 505, 427, 1, 0, 0, 0, 505, 441, 1, 0, 0, 0, 505, 455, 1, 0, 0, 0, 505, 465, 1, 0, 0, 0, 505, 475, 1, 0, 0, 0, 505, 490, 1, 0, 0, 0, 506, 116, 1, 0, 0, 0, 507, 508, 7, 15, 0, 0, 508, 509, 3, 115, 57, 0, 509, 118, 1, 0, 0, 0, 510, 513, 3, 85, 42, 0, 511, 513, 5, 95, 0, 0, 512, 510, 1, 0, 0, 0, 512, 511, 1, 0, 0, 0, 513, 519, 1, 0, 0, 0, 514, 518, 3, 85, 42, 0, 515, 518, 3, 87, 43, 0, 516, 518, 5, 95, 0, 0, 517, 514, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 516, 1, 0, 0, 0, 518, 521, 1, 0, 0, 0, 519, 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 120, 1, 0, 0, 0, 521, 519, 1, 0, 0, 0, 522, 526, 5, 96, 0, 0, 523, 527, 3, 85, 42, 0, 524, 527, 3, 87, 43, 0, 525, 527, 7, 16, 0, 0, 526, 523, 1, 0, 0, 0, 526, 524, 1, 0, 0, 0, 526, 525, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 526, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 531, 5, 96, 0, 0, 531, 122, 1, 0, 0, 0, 39, 0, 187, 275, 280, 290, 323, 328, 338, 346, 352, 355, 360, 368, 371, 373, 378, 386, 388, 393, 403, 407, 412, 414, 421, 423, 433, 435, 447, 449, 460, 470, 483, 498, 505, 512, 517, 519, 526, 528, 1, 0, 1, 0] \ No newline at end of file diff --git a/repl/parser/CommandsLexer.tokens b/repl/parser/CommandsLexer.tokens index 7b3277f81..1537f40b9 100644 --- a/repl/parser/CommandsLexer.tokens +++ b/repl/parser/CommandsLexer.tokens @@ -6,47 +6,48 @@ T__4=5 T__5=6 T__6=7 T__7=8 -COMMAND=9 -FLAG=10 -ARROW=11 -EQUAL_ASSIGN=12 -EQUALS=13 -NOT_EQUALS=14 -IN=15 -LESS=16 -LESS_EQUALS=17 -GREATER_EQUALS=18 -GREATER=19 -LOGICAL_AND=20 -LOGICAL_OR=21 -LBRACKET=22 -RPRACKET=23 -LBRACE=24 -RBRACE=25 -LPAREN=26 -RPAREN=27 -DOT=28 -COMMA=29 -MINUS=30 -EXCLAM=31 -QUESTIONMARK=32 -COLON=33 -PLUS=34 -STAR=35 -SLASH=36 -PERCENT=37 -CEL_TRUE=38 -CEL_FALSE=39 -NUL=40 -WHITESPACE=41 -COMMENT=42 -NUM_FLOAT=43 -NUM_INT=44 -NUM_UINT=45 -STRING=46 -BYTES=47 -IDENTIFIER=48 -ESC_IDENTIFIER=49 +T__8=9 +COMMAND=10 +FLAG=11 +ARROW=12 +EQUAL_ASSIGN=13 +EQUALS=14 +NOT_EQUALS=15 +IN=16 +LESS=17 +LESS_EQUALS=18 +GREATER_EQUALS=19 +GREATER=20 +LOGICAL_AND=21 +LOGICAL_OR=22 +LBRACKET=23 +RPRACKET=24 +LBRACE=25 +RBRACE=26 +LPAREN=27 +RPAREN=28 +DOT=29 +COMMA=30 +MINUS=31 +EXCLAM=32 +QUESTIONMARK=33 +COLON=34 +PLUS=35 +STAR=36 +SLASH=37 +PERCENT=38 +CEL_TRUE=39 +CEL_FALSE=40 +NUL=41 +WHITESPACE=42 +COMMENT=43 +NUM_FLOAT=44 +NUM_INT=45 +NUM_UINT=46 +STRING=47 +BYTES=48 +IDENTIFIER=49 +ESC_IDENTIFIER=50 '%help'=1 '%?'=2 '%let'=3 @@ -55,33 +56,34 @@ ESC_IDENTIFIER=49 '%compile'=6 '%parse'=7 '%eval'=8 -'->'=11 -'='=12 -'=='=13 -'!='=14 -'in'=15 -'<'=16 -'<='=17 -'>='=18 -'>'=19 -'&&'=20 -'||'=21 -'['=22 -']'=23 -'{'=24 -'}'=25 -'('=26 -')'=27 -'.'=28 -','=29 -'-'=30 -'!'=31 -'?'=32 -':'=33 -'+'=34 -'*'=35 -'/'=36 -'%'=37 -'true'=38 -'false'=39 -'null'=40 +'--'=9 +'->'=12 +'='=13 +'=='=14 +'!='=15 +'in'=16 +'<'=17 +'<='=18 +'>='=19 +'>'=20 +'&&'=21 +'||'=22 +'['=23 +']'=24 +'{'=25 +'}'=26 +'('=27 +')'=28 +'.'=29 +','=30 +'-'=31 +'!'=32 +'?'=33 +':'=34 +'+'=35 +'*'=36 +'/'=37 +'%'=38 +'true'=39 +'false'=40 +'null'=41 diff --git a/repl/parser/commands_base_listener.go b/repl/parser/commands_base_listener.go index 68289ab15..f03271ab4 100644 --- a/repl/parser/commands_base_listener.go +++ b/repl/parser/commands_base_listener.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser // Commands import "github.com/antlr4-go/antlr/v4" diff --git a/repl/parser/commands_base_visitor.go b/repl/parser/commands_base_visitor.go index 7b29fe19c..551f70a95 100644 --- a/repl/parser/commands_base_visitor.go +++ b/repl/parser/commands_base_visitor.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser // Commands import "github.com/antlr4-go/antlr/v4" diff --git a/repl/parser/commands_lexer.go b/repl/parser/commands_lexer.go index 0214eb3cc..10b459f91 100644 --- a/repl/parser/commands_lexer.go +++ b/repl/parser/commands_lexer.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser @@ -44,34 +44,36 @@ func commandslexerLexerInit() { } staticData.LiteralNames = []string{ "", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'", - "'%parse'", "'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", - "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", - "'('", "')'", "'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", - "'/'", "'%'", "'true'", "'false'", "'null'", + "'%parse'", "'%eval'", "'--'", "", "", "'->'", "'='", "'=='", "'!='", + "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", "'['", "']'", + "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'", "'?'", "':'", + "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'", } staticData.SymbolicNames = []string{ - "", "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN", - "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", - "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", - "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", - "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", - "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", - "STRING", "BYTES", "IDENTIFIER", "ESC_IDENTIFIER", + "", "", "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", + "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", + "GREATER_EQUALS", "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", + "RPRACKET", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", + "MINUS", "EXCLAM", "QUESTIONMARK", "COLON", "PLUS", "STAR", "SLASH", + "PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", "WHITESPACE", "COMMENT", + "NUM_FLOAT", "NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER", + "ESC_IDENTIFIER", } staticData.RuleNames = []string{ - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "COMMAND", - "FLAG", "ARROW", "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", "IN", "LESS", - "LESS_EQUALS", "GREATER_EQUALS", "GREATER", "LOGICAL_AND", "LOGICAL_OR", - "LBRACKET", "RPRACKET", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "DOT", - "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", "COLON", "PLUS", "STAR", - "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", "BACKSLASH", "LETTER", - "DIGIT", "EXPONENT", "HEXDIGIT", "RAW", "ESC_SEQ", "ESC_CHAR_SEQ", "ESC_OCT_SEQ", - "ESC_BYTE_SEQ", "ESC_UNI_SEQ", "WHITESPACE", "COMMENT", "NUM_FLOAT", - "NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER", "ESC_IDENTIFIER", + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", + "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", "GREATER", "LOGICAL_AND", + "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", "RBRACE", "LPAREN", + "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", "COLON", + "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", + "BACKSLASH", "LETTER", "DIGIT", "EXPONENT", "HEXDIGIT", "RAW", "ESC_SEQ", + "ESC_CHAR_SEQ", "ESC_OCT_SEQ", "ESC_BYTE_SEQ", "ESC_UNI_SEQ", "WHITESPACE", + "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER", + "ESC_IDENTIFIER", } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 0, 49, 526, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, + 4, 0, 50, 532, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, @@ -82,238 +84,241 @@ func commandslexerLexerInit() { 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, - 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, - 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, - 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, - 1, 8, 1, 8, 1, 9, 3, 9, 179, 8, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, - 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, - 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, - 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, - 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, - 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, - 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, - 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, - 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, - 270, 8, 43, 1, 43, 4, 43, 273, 8, 43, 11, 43, 12, 43, 274, 1, 44, 1, 44, - 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 285, 8, 46, 1, 47, 1, - 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, - 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, - 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 318, - 8, 50, 1, 51, 4, 51, 321, 8, 51, 11, 51, 12, 51, 322, 1, 51, 1, 51, 1, - 52, 1, 52, 1, 52, 1, 52, 5, 52, 331, 8, 52, 10, 52, 12, 52, 334, 9, 52, - 1, 52, 1, 52, 1, 53, 4, 53, 339, 8, 53, 11, 53, 12, 53, 340, 1, 53, 1, - 53, 4, 53, 345, 8, 53, 11, 53, 12, 53, 346, 1, 53, 3, 53, 350, 8, 53, 1, - 53, 4, 53, 353, 8, 53, 11, 53, 12, 53, 354, 1, 53, 1, 53, 1, 53, 1, 53, - 4, 53, 361, 8, 53, 11, 53, 12, 53, 362, 1, 53, 3, 53, 366, 8, 53, 3, 53, - 368, 8, 53, 1, 54, 4, 54, 371, 8, 54, 11, 54, 12, 54, 372, 1, 54, 1, 54, - 1, 54, 1, 54, 4, 54, 379, 8, 54, 11, 54, 12, 54, 380, 3, 54, 383, 8, 54, - 1, 55, 4, 55, 386, 8, 55, 11, 55, 12, 55, 387, 1, 55, 1, 55, 1, 55, 1, - 55, 1, 55, 1, 55, 4, 55, 396, 8, 55, 11, 55, 12, 55, 397, 1, 55, 1, 55, - 3, 55, 402, 8, 55, 1, 56, 1, 56, 1, 56, 5, 56, 407, 8, 56, 10, 56, 12, - 56, 410, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 416, 8, 56, 10, 56, - 12, 56, 419, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, - 56, 428, 8, 56, 10, 56, 12, 56, 431, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, - 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 442, 8, 56, 10, 56, 12, 56, 445, - 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 453, 8, 56, 10, - 56, 12, 56, 456, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 463, - 8, 56, 10, 56, 12, 56, 466, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, - 56, 1, 56, 1, 56, 5, 56, 476, 8, 56, 10, 56, 12, 56, 479, 9, 56, 1, 56, - 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 491, - 8, 56, 10, 56, 12, 56, 494, 9, 56, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 500, - 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 3, 58, 507, 8, 58, 1, 58, 1, - 58, 1, 58, 5, 58, 512, 8, 58, 10, 58, 12, 58, 515, 9, 58, 1, 59, 1, 59, - 1, 59, 1, 59, 4, 59, 521, 8, 59, 11, 59, 12, 59, 522, 1, 59, 1, 59, 4, - 429, 443, 477, 492, 0, 60, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, - 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, - 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, - 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, - 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 0, 83, 0, 85, 0, 87, 0, - 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 41, 105, 42, 107, - 43, 109, 44, 111, 45, 113, 46, 115, 47, 117, 48, 119, 49, 1, 0, 17, 2, - 0, 65, 90, 97, 122, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, - 48, 57, 65, 70, 97, 102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, - 63, 63, 92, 92, 96, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, - 2, 0, 88, 88, 120, 120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, - 85, 85, 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, - 13, 39, 39, 92, 92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, - 10, 13, 13, 39, 39, 2, 0, 66, 66, 98, 98, 3, 0, 32, 32, 45, 47, 95, 95, - 563, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, - 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, - 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, - 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, - 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, - 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, - 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, - 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, - 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, - 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, - 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, - 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, - 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, - 1, 121, 1, 0, 0, 0, 3, 127, 1, 0, 0, 0, 5, 130, 1, 0, 0, 0, 7, 135, 1, - 0, 0, 0, 9, 144, 1, 0, 0, 0, 11, 152, 1, 0, 0, 0, 13, 161, 1, 0, 0, 0, - 15, 168, 1, 0, 0, 0, 17, 174, 1, 0, 0, 0, 19, 178, 1, 0, 0, 0, 21, 183, - 1, 0, 0, 0, 23, 186, 1, 0, 0, 0, 25, 188, 1, 0, 0, 0, 27, 191, 1, 0, 0, - 0, 29, 194, 1, 0, 0, 0, 31, 197, 1, 0, 0, 0, 33, 199, 1, 0, 0, 0, 35, 202, - 1, 0, 0, 0, 37, 205, 1, 0, 0, 0, 39, 207, 1, 0, 0, 0, 41, 210, 1, 0, 0, - 0, 43, 213, 1, 0, 0, 0, 45, 215, 1, 0, 0, 0, 47, 217, 1, 0, 0, 0, 49, 219, - 1, 0, 0, 0, 51, 221, 1, 0, 0, 0, 53, 223, 1, 0, 0, 0, 55, 225, 1, 0, 0, - 0, 57, 227, 1, 0, 0, 0, 59, 229, 1, 0, 0, 0, 61, 231, 1, 0, 0, 0, 63, 233, - 1, 0, 0, 0, 65, 235, 1, 0, 0, 0, 67, 237, 1, 0, 0, 0, 69, 239, 1, 0, 0, - 0, 71, 241, 1, 0, 0, 0, 73, 243, 1, 0, 0, 0, 75, 245, 1, 0, 0, 0, 77, 250, - 1, 0, 0, 0, 79, 256, 1, 0, 0, 0, 81, 261, 1, 0, 0, 0, 83, 263, 1, 0, 0, - 0, 85, 265, 1, 0, 0, 0, 87, 267, 1, 0, 0, 0, 89, 276, 1, 0, 0, 0, 91, 278, - 1, 0, 0, 0, 93, 284, 1, 0, 0, 0, 95, 286, 1, 0, 0, 0, 97, 289, 1, 0, 0, - 0, 99, 294, 1, 0, 0, 0, 101, 317, 1, 0, 0, 0, 103, 320, 1, 0, 0, 0, 105, - 326, 1, 0, 0, 0, 107, 367, 1, 0, 0, 0, 109, 382, 1, 0, 0, 0, 111, 401, - 1, 0, 0, 0, 113, 499, 1, 0, 0, 0, 115, 501, 1, 0, 0, 0, 117, 506, 1, 0, - 0, 0, 119, 516, 1, 0, 0, 0, 121, 122, 5, 37, 0, 0, 122, 123, 5, 104, 0, - 0, 123, 124, 5, 101, 0, 0, 124, 125, 5, 108, 0, 0, 125, 126, 5, 112, 0, - 0, 126, 2, 1, 0, 0, 0, 127, 128, 5, 37, 0, 0, 128, 129, 5, 63, 0, 0, 129, - 4, 1, 0, 0, 0, 130, 131, 5, 37, 0, 0, 131, 132, 5, 108, 0, 0, 132, 133, - 5, 101, 0, 0, 133, 134, 5, 116, 0, 0, 134, 6, 1, 0, 0, 0, 135, 136, 5, - 37, 0, 0, 136, 137, 5, 100, 0, 0, 137, 138, 5, 101, 0, 0, 138, 139, 5, - 99, 0, 0, 139, 140, 5, 108, 0, 0, 140, 141, 5, 97, 0, 0, 141, 142, 5, 114, - 0, 0, 142, 143, 5, 101, 0, 0, 143, 8, 1, 0, 0, 0, 144, 145, 5, 37, 0, 0, - 145, 146, 5, 100, 0, 0, 146, 147, 5, 101, 0, 0, 147, 148, 5, 108, 0, 0, - 148, 149, 5, 101, 0, 0, 149, 150, 5, 116, 0, 0, 150, 151, 5, 101, 0, 0, - 151, 10, 1, 0, 0, 0, 152, 153, 5, 37, 0, 0, 153, 154, 5, 99, 0, 0, 154, - 155, 5, 111, 0, 0, 155, 156, 5, 109, 0, 0, 156, 157, 5, 112, 0, 0, 157, - 158, 5, 105, 0, 0, 158, 159, 5, 108, 0, 0, 159, 160, 5, 101, 0, 0, 160, - 12, 1, 0, 0, 0, 161, 162, 5, 37, 0, 0, 162, 163, 5, 112, 0, 0, 163, 164, - 5, 97, 0, 0, 164, 165, 5, 114, 0, 0, 165, 166, 5, 115, 0, 0, 166, 167, - 5, 101, 0, 0, 167, 14, 1, 0, 0, 0, 168, 169, 5, 37, 0, 0, 169, 170, 5, - 101, 0, 0, 170, 171, 5, 118, 0, 0, 171, 172, 5, 97, 0, 0, 172, 173, 5, - 108, 0, 0, 173, 16, 1, 0, 0, 0, 174, 175, 5, 37, 0, 0, 175, 176, 3, 117, - 58, 0, 176, 18, 1, 0, 0, 0, 177, 179, 5, 45, 0, 0, 178, 177, 1, 0, 0, 0, - 178, 179, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 181, 5, 45, 0, 0, 181, - 182, 3, 117, 58, 0, 182, 20, 1, 0, 0, 0, 183, 184, 5, 45, 0, 0, 184, 185, - 5, 62, 0, 0, 185, 22, 1, 0, 0, 0, 186, 187, 5, 61, 0, 0, 187, 24, 1, 0, - 0, 0, 188, 189, 5, 61, 0, 0, 189, 190, 5, 61, 0, 0, 190, 26, 1, 0, 0, 0, - 191, 192, 5, 33, 0, 0, 192, 193, 5, 61, 0, 0, 193, 28, 1, 0, 0, 0, 194, - 195, 5, 105, 0, 0, 195, 196, 5, 110, 0, 0, 196, 30, 1, 0, 0, 0, 197, 198, - 5, 60, 0, 0, 198, 32, 1, 0, 0, 0, 199, 200, 5, 60, 0, 0, 200, 201, 5, 61, - 0, 0, 201, 34, 1, 0, 0, 0, 202, 203, 5, 62, 0, 0, 203, 204, 5, 61, 0, 0, - 204, 36, 1, 0, 0, 0, 205, 206, 5, 62, 0, 0, 206, 38, 1, 0, 0, 0, 207, 208, - 5, 38, 0, 0, 208, 209, 5, 38, 0, 0, 209, 40, 1, 0, 0, 0, 210, 211, 5, 124, - 0, 0, 211, 212, 5, 124, 0, 0, 212, 42, 1, 0, 0, 0, 213, 214, 5, 91, 0, - 0, 214, 44, 1, 0, 0, 0, 215, 216, 5, 93, 0, 0, 216, 46, 1, 0, 0, 0, 217, - 218, 5, 123, 0, 0, 218, 48, 1, 0, 0, 0, 219, 220, 5, 125, 0, 0, 220, 50, - 1, 0, 0, 0, 221, 222, 5, 40, 0, 0, 222, 52, 1, 0, 0, 0, 223, 224, 5, 41, - 0, 0, 224, 54, 1, 0, 0, 0, 225, 226, 5, 46, 0, 0, 226, 56, 1, 0, 0, 0, - 227, 228, 5, 44, 0, 0, 228, 58, 1, 0, 0, 0, 229, 230, 5, 45, 0, 0, 230, - 60, 1, 0, 0, 0, 231, 232, 5, 33, 0, 0, 232, 62, 1, 0, 0, 0, 233, 234, 5, - 63, 0, 0, 234, 64, 1, 0, 0, 0, 235, 236, 5, 58, 0, 0, 236, 66, 1, 0, 0, - 0, 237, 238, 5, 43, 0, 0, 238, 68, 1, 0, 0, 0, 239, 240, 5, 42, 0, 0, 240, - 70, 1, 0, 0, 0, 241, 242, 5, 47, 0, 0, 242, 72, 1, 0, 0, 0, 243, 244, 5, - 37, 0, 0, 244, 74, 1, 0, 0, 0, 245, 246, 5, 116, 0, 0, 246, 247, 5, 114, - 0, 0, 247, 248, 5, 117, 0, 0, 248, 249, 5, 101, 0, 0, 249, 76, 1, 0, 0, - 0, 250, 251, 5, 102, 0, 0, 251, 252, 5, 97, 0, 0, 252, 253, 5, 108, 0, - 0, 253, 254, 5, 115, 0, 0, 254, 255, 5, 101, 0, 0, 255, 78, 1, 0, 0, 0, - 256, 257, 5, 110, 0, 0, 257, 258, 5, 117, 0, 0, 258, 259, 5, 108, 0, 0, - 259, 260, 5, 108, 0, 0, 260, 80, 1, 0, 0, 0, 261, 262, 5, 92, 0, 0, 262, - 82, 1, 0, 0, 0, 263, 264, 7, 0, 0, 0, 264, 84, 1, 0, 0, 0, 265, 266, 2, - 48, 57, 0, 266, 86, 1, 0, 0, 0, 267, 269, 7, 1, 0, 0, 268, 270, 7, 2, 0, - 0, 269, 268, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 272, 1, 0, 0, 0, 271, - 273, 3, 85, 42, 0, 272, 271, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 272, - 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 88, 1, 0, 0, 0, 276, 277, 7, 3, - 0, 0, 277, 90, 1, 0, 0, 0, 278, 279, 7, 4, 0, 0, 279, 92, 1, 0, 0, 0, 280, - 285, 3, 95, 47, 0, 281, 285, 3, 99, 49, 0, 282, 285, 3, 101, 50, 0, 283, - 285, 3, 97, 48, 0, 284, 280, 1, 0, 0, 0, 284, 281, 1, 0, 0, 0, 284, 282, - 1, 0, 0, 0, 284, 283, 1, 0, 0, 0, 285, 94, 1, 0, 0, 0, 286, 287, 3, 81, - 40, 0, 287, 288, 7, 5, 0, 0, 288, 96, 1, 0, 0, 0, 289, 290, 3, 81, 40, - 0, 290, 291, 2, 48, 51, 0, 291, 292, 2, 48, 55, 0, 292, 293, 2, 48, 55, - 0, 293, 98, 1, 0, 0, 0, 294, 295, 3, 81, 40, 0, 295, 296, 7, 6, 0, 0, 296, - 297, 3, 89, 44, 0, 297, 298, 3, 89, 44, 0, 298, 100, 1, 0, 0, 0, 299, 300, - 3, 81, 40, 0, 300, 301, 5, 117, 0, 0, 301, 302, 3, 89, 44, 0, 302, 303, - 3, 89, 44, 0, 303, 304, 3, 89, 44, 0, 304, 305, 3, 89, 44, 0, 305, 318, - 1, 0, 0, 0, 306, 307, 3, 81, 40, 0, 307, 308, 5, 85, 0, 0, 308, 309, 3, - 89, 44, 0, 309, 310, 3, 89, 44, 0, 310, 311, 3, 89, 44, 0, 311, 312, 3, - 89, 44, 0, 312, 313, 3, 89, 44, 0, 313, 314, 3, 89, 44, 0, 314, 315, 3, - 89, 44, 0, 315, 316, 3, 89, 44, 0, 316, 318, 1, 0, 0, 0, 317, 299, 1, 0, - 0, 0, 317, 306, 1, 0, 0, 0, 318, 102, 1, 0, 0, 0, 319, 321, 7, 7, 0, 0, - 320, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, - 323, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 325, 6, 51, 0, 0, 325, 104, - 1, 0, 0, 0, 326, 327, 5, 47, 0, 0, 327, 328, 5, 47, 0, 0, 328, 332, 1, - 0, 0, 0, 329, 331, 8, 8, 0, 0, 330, 329, 1, 0, 0, 0, 331, 334, 1, 0, 0, - 0, 332, 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 335, 1, 0, 0, 0, 334, - 332, 1, 0, 0, 0, 335, 336, 6, 52, 0, 0, 336, 106, 1, 0, 0, 0, 337, 339, - 3, 85, 42, 0, 338, 337, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 338, 1, - 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 344, 5, 46, 0, - 0, 343, 345, 3, 85, 42, 0, 344, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, - 346, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 349, 1, 0, 0, 0, 348, - 350, 3, 87, 43, 0, 349, 348, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 368, - 1, 0, 0, 0, 351, 353, 3, 85, 42, 0, 352, 351, 1, 0, 0, 0, 353, 354, 1, - 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 356, 1, 0, 0, - 0, 356, 357, 3, 87, 43, 0, 357, 368, 1, 0, 0, 0, 358, 360, 5, 46, 0, 0, - 359, 361, 3, 85, 42, 0, 360, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, - 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 365, 1, 0, 0, 0, 364, 366, - 3, 87, 43, 0, 365, 364, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 368, 1, - 0, 0, 0, 367, 338, 1, 0, 0, 0, 367, 352, 1, 0, 0, 0, 367, 358, 1, 0, 0, - 0, 368, 108, 1, 0, 0, 0, 369, 371, 3, 85, 42, 0, 370, 369, 1, 0, 0, 0, - 371, 372, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, - 383, 1, 0, 0, 0, 374, 375, 5, 48, 0, 0, 375, 376, 5, 120, 0, 0, 376, 378, - 1, 0, 0, 0, 377, 379, 3, 89, 44, 0, 378, 377, 1, 0, 0, 0, 379, 380, 1, - 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 383, 1, 0, 0, - 0, 382, 370, 1, 0, 0, 0, 382, 374, 1, 0, 0, 0, 383, 110, 1, 0, 0, 0, 384, - 386, 3, 85, 42, 0, 385, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 385, - 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 390, 7, 9, - 0, 0, 390, 402, 1, 0, 0, 0, 391, 392, 5, 48, 0, 0, 392, 393, 5, 120, 0, - 0, 393, 395, 1, 0, 0, 0, 394, 396, 3, 89, 44, 0, 395, 394, 1, 0, 0, 0, - 396, 397, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, - 399, 1, 0, 0, 0, 399, 400, 7, 9, 0, 0, 400, 402, 1, 0, 0, 0, 401, 385, - 1, 0, 0, 0, 401, 391, 1, 0, 0, 0, 402, 112, 1, 0, 0, 0, 403, 408, 5, 34, - 0, 0, 404, 407, 3, 93, 46, 0, 405, 407, 8, 10, 0, 0, 406, 404, 1, 0, 0, - 0, 406, 405, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, - 409, 1, 0, 0, 0, 409, 411, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 411, 500, - 5, 34, 0, 0, 412, 417, 5, 39, 0, 0, 413, 416, 3, 93, 46, 0, 414, 416, 8, - 11, 0, 0, 415, 413, 1, 0, 0, 0, 415, 414, 1, 0, 0, 0, 416, 419, 1, 0, 0, - 0, 417, 415, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 420, 1, 0, 0, 0, 419, - 417, 1, 0, 0, 0, 420, 500, 5, 39, 0, 0, 421, 422, 5, 34, 0, 0, 422, 423, - 5, 34, 0, 0, 423, 424, 5, 34, 0, 0, 424, 429, 1, 0, 0, 0, 425, 428, 3, - 93, 46, 0, 426, 428, 8, 12, 0, 0, 427, 425, 1, 0, 0, 0, 427, 426, 1, 0, - 0, 0, 428, 431, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, - 430, 432, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 433, 5, 34, 0, 0, 433, - 434, 5, 34, 0, 0, 434, 500, 5, 34, 0, 0, 435, 436, 5, 39, 0, 0, 436, 437, - 5, 39, 0, 0, 437, 438, 5, 39, 0, 0, 438, 443, 1, 0, 0, 0, 439, 442, 3, - 93, 46, 0, 440, 442, 8, 12, 0, 0, 441, 439, 1, 0, 0, 0, 441, 440, 1, 0, - 0, 0, 442, 445, 1, 0, 0, 0, 443, 444, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, - 444, 446, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 39, 0, 0, 447, - 448, 5, 39, 0, 0, 448, 500, 5, 39, 0, 0, 449, 450, 3, 91, 45, 0, 450, 454, - 5, 34, 0, 0, 451, 453, 8, 13, 0, 0, 452, 451, 1, 0, 0, 0, 453, 456, 1, - 0, 0, 0, 454, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 457, 1, 0, 0, - 0, 456, 454, 1, 0, 0, 0, 457, 458, 5, 34, 0, 0, 458, 500, 1, 0, 0, 0, 459, - 460, 3, 91, 45, 0, 460, 464, 5, 39, 0, 0, 461, 463, 8, 14, 0, 0, 462, 461, - 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 464, 465, 1, 0, - 0, 0, 465, 467, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 467, 468, 5, 39, 0, 0, - 468, 500, 1, 0, 0, 0, 469, 470, 3, 91, 45, 0, 470, 471, 5, 34, 0, 0, 471, - 472, 5, 34, 0, 0, 472, 473, 5, 34, 0, 0, 473, 477, 1, 0, 0, 0, 474, 476, - 9, 0, 0, 0, 475, 474, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 478, 1, 0, - 0, 0, 477, 475, 1, 0, 0, 0, 478, 480, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, - 480, 481, 5, 34, 0, 0, 481, 482, 5, 34, 0, 0, 482, 483, 5, 34, 0, 0, 483, - 500, 1, 0, 0, 0, 484, 485, 3, 91, 45, 0, 485, 486, 5, 39, 0, 0, 486, 487, - 5, 39, 0, 0, 487, 488, 5, 39, 0, 0, 488, 492, 1, 0, 0, 0, 489, 491, 9, - 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 494, 1, 0, 0, 0, 492, 493, 1, 0, 0, - 0, 492, 490, 1, 0, 0, 0, 493, 495, 1, 0, 0, 0, 494, 492, 1, 0, 0, 0, 495, - 496, 5, 39, 0, 0, 496, 497, 5, 39, 0, 0, 497, 498, 5, 39, 0, 0, 498, 500, - 1, 0, 0, 0, 499, 403, 1, 0, 0, 0, 499, 412, 1, 0, 0, 0, 499, 421, 1, 0, - 0, 0, 499, 435, 1, 0, 0, 0, 499, 449, 1, 0, 0, 0, 499, 459, 1, 0, 0, 0, - 499, 469, 1, 0, 0, 0, 499, 484, 1, 0, 0, 0, 500, 114, 1, 0, 0, 0, 501, - 502, 7, 15, 0, 0, 502, 503, 3, 113, 56, 0, 503, 116, 1, 0, 0, 0, 504, 507, - 3, 83, 41, 0, 505, 507, 5, 95, 0, 0, 506, 504, 1, 0, 0, 0, 506, 505, 1, - 0, 0, 0, 507, 513, 1, 0, 0, 0, 508, 512, 3, 83, 41, 0, 509, 512, 3, 85, - 42, 0, 510, 512, 5, 95, 0, 0, 511, 508, 1, 0, 0, 0, 511, 509, 1, 0, 0, - 0, 511, 510, 1, 0, 0, 0, 512, 515, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 513, - 514, 1, 0, 0, 0, 514, 118, 1, 0, 0, 0, 515, 513, 1, 0, 0, 0, 516, 520, - 5, 96, 0, 0, 517, 521, 3, 83, 41, 0, 518, 521, 3, 85, 42, 0, 519, 521, - 7, 16, 0, 0, 520, 517, 1, 0, 0, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, - 0, 0, 521, 522, 1, 0, 0, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, - 523, 524, 1, 0, 0, 0, 524, 525, 5, 96, 0, 0, 525, 120, 1, 0, 0, 0, 39, - 0, 178, 269, 274, 284, 317, 322, 332, 340, 346, 349, 354, 362, 365, 367, - 372, 380, 382, 387, 397, 401, 406, 408, 415, 417, 427, 429, 441, 443, 454, - 464, 477, 492, 499, 506, 511, 513, 520, 522, 1, 0, 1, 0, + 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, + 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, + 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, + 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 4, 10, 186, + 8, 10, 11, 10, 12, 10, 187, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, + 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, + 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, + 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, + 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, + 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, + 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, + 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, + 1, 42, 1, 42, 1, 43, 1, 43, 1, 44, 1, 44, 3, 44, 276, 8, 44, 1, 44, 4, + 44, 279, 8, 44, 11, 44, 12, 44, 280, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, + 1, 47, 1, 47, 1, 47, 3, 47, 291, 8, 47, 1, 48, 1, 48, 1, 48, 1, 49, 1, + 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, + 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, + 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 324, 8, 51, 1, 52, 4, 52, + 327, 8, 52, 11, 52, 12, 52, 328, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, + 53, 5, 53, 337, 8, 53, 10, 53, 12, 53, 340, 9, 53, 1, 53, 1, 53, 1, 54, + 4, 54, 345, 8, 54, 11, 54, 12, 54, 346, 1, 54, 1, 54, 4, 54, 351, 8, 54, + 11, 54, 12, 54, 352, 1, 54, 3, 54, 356, 8, 54, 1, 54, 4, 54, 359, 8, 54, + 11, 54, 12, 54, 360, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 367, 8, 54, 11, + 54, 12, 54, 368, 1, 54, 3, 54, 372, 8, 54, 3, 54, 374, 8, 54, 1, 55, 4, + 55, 377, 8, 55, 11, 55, 12, 55, 378, 1, 55, 1, 55, 1, 55, 1, 55, 4, 55, + 385, 8, 55, 11, 55, 12, 55, 386, 3, 55, 389, 8, 55, 1, 56, 4, 56, 392, + 8, 56, 11, 56, 12, 56, 393, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 4, + 56, 402, 8, 56, 11, 56, 12, 56, 403, 1, 56, 1, 56, 3, 56, 408, 8, 56, 1, + 57, 1, 57, 1, 57, 5, 57, 413, 8, 57, 10, 57, 12, 57, 416, 9, 57, 1, 57, + 1, 57, 1, 57, 1, 57, 5, 57, 422, 8, 57, 10, 57, 12, 57, 425, 9, 57, 1, + 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 434, 8, 57, 10, 57, + 12, 57, 437, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, + 57, 1, 57, 5, 57, 448, 8, 57, 10, 57, 12, 57, 451, 9, 57, 1, 57, 1, 57, + 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 459, 8, 57, 10, 57, 12, 57, 462, 9, + 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 469, 8, 57, 10, 57, 12, 57, + 472, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, + 57, 482, 8, 57, 10, 57, 12, 57, 485, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, + 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 497, 8, 57, 10, 57, 12, + 57, 500, 9, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 506, 8, 57, 1, 58, 1, + 58, 1, 58, 1, 59, 1, 59, 3, 59, 513, 8, 59, 1, 59, 1, 59, 1, 59, 5, 59, + 518, 8, 59, 10, 59, 12, 59, 521, 9, 59, 1, 60, 1, 60, 1, 60, 1, 60, 4, + 60, 527, 8, 60, 11, 60, 12, 60, 528, 1, 60, 1, 60, 4, 435, 449, 483, 498, + 0, 61, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, + 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, + 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, + 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, + 75, 38, 77, 39, 79, 40, 81, 41, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, + 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 42, 107, 43, 109, 44, 111, + 45, 113, 46, 115, 47, 117, 48, 119, 49, 121, 50, 1, 0, 17, 2, 0, 65, 90, + 97, 122, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, + 70, 97, 102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, + 92, 96, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, + 88, 120, 120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, + 117, 117, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, + 39, 92, 92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, + 13, 39, 39, 2, 0, 66, 66, 98, 98, 3, 0, 32, 32, 45, 47, 95, 95, 569, 0, + 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, + 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, + 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, + 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, + 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, + 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, + 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, + 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, + 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, + 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, + 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, + 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, + 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, + 0, 0, 0, 1, 123, 1, 0, 0, 0, 3, 129, 1, 0, 0, 0, 5, 132, 1, 0, 0, 0, 7, + 137, 1, 0, 0, 0, 9, 146, 1, 0, 0, 0, 11, 154, 1, 0, 0, 0, 13, 163, 1, 0, + 0, 0, 15, 170, 1, 0, 0, 0, 17, 176, 1, 0, 0, 0, 19, 179, 1, 0, 0, 0, 21, + 182, 1, 0, 0, 0, 23, 189, 1, 0, 0, 0, 25, 192, 1, 0, 0, 0, 27, 194, 1, + 0, 0, 0, 29, 197, 1, 0, 0, 0, 31, 200, 1, 0, 0, 0, 33, 203, 1, 0, 0, 0, + 35, 205, 1, 0, 0, 0, 37, 208, 1, 0, 0, 0, 39, 211, 1, 0, 0, 0, 41, 213, + 1, 0, 0, 0, 43, 216, 1, 0, 0, 0, 45, 219, 1, 0, 0, 0, 47, 221, 1, 0, 0, + 0, 49, 223, 1, 0, 0, 0, 51, 225, 1, 0, 0, 0, 53, 227, 1, 0, 0, 0, 55, 229, + 1, 0, 0, 0, 57, 231, 1, 0, 0, 0, 59, 233, 1, 0, 0, 0, 61, 235, 1, 0, 0, + 0, 63, 237, 1, 0, 0, 0, 65, 239, 1, 0, 0, 0, 67, 241, 1, 0, 0, 0, 69, 243, + 1, 0, 0, 0, 71, 245, 1, 0, 0, 0, 73, 247, 1, 0, 0, 0, 75, 249, 1, 0, 0, + 0, 77, 251, 1, 0, 0, 0, 79, 256, 1, 0, 0, 0, 81, 262, 1, 0, 0, 0, 83, 267, + 1, 0, 0, 0, 85, 269, 1, 0, 0, 0, 87, 271, 1, 0, 0, 0, 89, 273, 1, 0, 0, + 0, 91, 282, 1, 0, 0, 0, 93, 284, 1, 0, 0, 0, 95, 290, 1, 0, 0, 0, 97, 292, + 1, 0, 0, 0, 99, 295, 1, 0, 0, 0, 101, 300, 1, 0, 0, 0, 103, 323, 1, 0, + 0, 0, 105, 326, 1, 0, 0, 0, 107, 332, 1, 0, 0, 0, 109, 373, 1, 0, 0, 0, + 111, 388, 1, 0, 0, 0, 113, 407, 1, 0, 0, 0, 115, 505, 1, 0, 0, 0, 117, + 507, 1, 0, 0, 0, 119, 512, 1, 0, 0, 0, 121, 522, 1, 0, 0, 0, 123, 124, + 5, 37, 0, 0, 124, 125, 5, 104, 0, 0, 125, 126, 5, 101, 0, 0, 126, 127, + 5, 108, 0, 0, 127, 128, 5, 112, 0, 0, 128, 2, 1, 0, 0, 0, 129, 130, 5, + 37, 0, 0, 130, 131, 5, 63, 0, 0, 131, 4, 1, 0, 0, 0, 132, 133, 5, 37, 0, + 0, 133, 134, 5, 108, 0, 0, 134, 135, 5, 101, 0, 0, 135, 136, 5, 116, 0, + 0, 136, 6, 1, 0, 0, 0, 137, 138, 5, 37, 0, 0, 138, 139, 5, 100, 0, 0, 139, + 140, 5, 101, 0, 0, 140, 141, 5, 99, 0, 0, 141, 142, 5, 108, 0, 0, 142, + 143, 5, 97, 0, 0, 143, 144, 5, 114, 0, 0, 144, 145, 5, 101, 0, 0, 145, + 8, 1, 0, 0, 0, 146, 147, 5, 37, 0, 0, 147, 148, 5, 100, 0, 0, 148, 149, + 5, 101, 0, 0, 149, 150, 5, 108, 0, 0, 150, 151, 5, 101, 0, 0, 151, 152, + 5, 116, 0, 0, 152, 153, 5, 101, 0, 0, 153, 10, 1, 0, 0, 0, 154, 155, 5, + 37, 0, 0, 155, 156, 5, 99, 0, 0, 156, 157, 5, 111, 0, 0, 157, 158, 5, 109, + 0, 0, 158, 159, 5, 112, 0, 0, 159, 160, 5, 105, 0, 0, 160, 161, 5, 108, + 0, 0, 161, 162, 5, 101, 0, 0, 162, 12, 1, 0, 0, 0, 163, 164, 5, 37, 0, + 0, 164, 165, 5, 112, 0, 0, 165, 166, 5, 97, 0, 0, 166, 167, 5, 114, 0, + 0, 167, 168, 5, 115, 0, 0, 168, 169, 5, 101, 0, 0, 169, 14, 1, 0, 0, 0, + 170, 171, 5, 37, 0, 0, 171, 172, 5, 101, 0, 0, 172, 173, 5, 118, 0, 0, + 173, 174, 5, 97, 0, 0, 174, 175, 5, 108, 0, 0, 175, 16, 1, 0, 0, 0, 176, + 177, 5, 45, 0, 0, 177, 178, 5, 45, 0, 0, 178, 18, 1, 0, 0, 0, 179, 180, + 5, 37, 0, 0, 180, 181, 3, 119, 59, 0, 181, 20, 1, 0, 0, 0, 182, 185, 5, + 45, 0, 0, 183, 184, 5, 45, 0, 0, 184, 186, 3, 119, 59, 0, 185, 183, 1, + 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, + 0, 188, 22, 1, 0, 0, 0, 189, 190, 5, 45, 0, 0, 190, 191, 5, 62, 0, 0, 191, + 24, 1, 0, 0, 0, 192, 193, 5, 61, 0, 0, 193, 26, 1, 0, 0, 0, 194, 195, 5, + 61, 0, 0, 195, 196, 5, 61, 0, 0, 196, 28, 1, 0, 0, 0, 197, 198, 5, 33, + 0, 0, 198, 199, 5, 61, 0, 0, 199, 30, 1, 0, 0, 0, 200, 201, 5, 105, 0, + 0, 201, 202, 5, 110, 0, 0, 202, 32, 1, 0, 0, 0, 203, 204, 5, 60, 0, 0, + 204, 34, 1, 0, 0, 0, 205, 206, 5, 60, 0, 0, 206, 207, 5, 61, 0, 0, 207, + 36, 1, 0, 0, 0, 208, 209, 5, 62, 0, 0, 209, 210, 5, 61, 0, 0, 210, 38, + 1, 0, 0, 0, 211, 212, 5, 62, 0, 0, 212, 40, 1, 0, 0, 0, 213, 214, 5, 38, + 0, 0, 214, 215, 5, 38, 0, 0, 215, 42, 1, 0, 0, 0, 216, 217, 5, 124, 0, + 0, 217, 218, 5, 124, 0, 0, 218, 44, 1, 0, 0, 0, 219, 220, 5, 91, 0, 0, + 220, 46, 1, 0, 0, 0, 221, 222, 5, 93, 0, 0, 222, 48, 1, 0, 0, 0, 223, 224, + 5, 123, 0, 0, 224, 50, 1, 0, 0, 0, 225, 226, 5, 125, 0, 0, 226, 52, 1, + 0, 0, 0, 227, 228, 5, 40, 0, 0, 228, 54, 1, 0, 0, 0, 229, 230, 5, 41, 0, + 0, 230, 56, 1, 0, 0, 0, 231, 232, 5, 46, 0, 0, 232, 58, 1, 0, 0, 0, 233, + 234, 5, 44, 0, 0, 234, 60, 1, 0, 0, 0, 235, 236, 5, 45, 0, 0, 236, 62, + 1, 0, 0, 0, 237, 238, 5, 33, 0, 0, 238, 64, 1, 0, 0, 0, 239, 240, 5, 63, + 0, 0, 240, 66, 1, 0, 0, 0, 241, 242, 5, 58, 0, 0, 242, 68, 1, 0, 0, 0, + 243, 244, 5, 43, 0, 0, 244, 70, 1, 0, 0, 0, 245, 246, 5, 42, 0, 0, 246, + 72, 1, 0, 0, 0, 247, 248, 5, 47, 0, 0, 248, 74, 1, 0, 0, 0, 249, 250, 5, + 37, 0, 0, 250, 76, 1, 0, 0, 0, 251, 252, 5, 116, 0, 0, 252, 253, 5, 114, + 0, 0, 253, 254, 5, 117, 0, 0, 254, 255, 5, 101, 0, 0, 255, 78, 1, 0, 0, + 0, 256, 257, 5, 102, 0, 0, 257, 258, 5, 97, 0, 0, 258, 259, 5, 108, 0, + 0, 259, 260, 5, 115, 0, 0, 260, 261, 5, 101, 0, 0, 261, 80, 1, 0, 0, 0, + 262, 263, 5, 110, 0, 0, 263, 264, 5, 117, 0, 0, 264, 265, 5, 108, 0, 0, + 265, 266, 5, 108, 0, 0, 266, 82, 1, 0, 0, 0, 267, 268, 5, 92, 0, 0, 268, + 84, 1, 0, 0, 0, 269, 270, 7, 0, 0, 0, 270, 86, 1, 0, 0, 0, 271, 272, 2, + 48, 57, 0, 272, 88, 1, 0, 0, 0, 273, 275, 7, 1, 0, 0, 274, 276, 7, 2, 0, + 0, 275, 274, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 278, 1, 0, 0, 0, 277, + 279, 3, 87, 43, 0, 278, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 278, + 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 90, 1, 0, 0, 0, 282, 283, 7, 3, + 0, 0, 283, 92, 1, 0, 0, 0, 284, 285, 7, 4, 0, 0, 285, 94, 1, 0, 0, 0, 286, + 291, 3, 97, 48, 0, 287, 291, 3, 101, 50, 0, 288, 291, 3, 103, 51, 0, 289, + 291, 3, 99, 49, 0, 290, 286, 1, 0, 0, 0, 290, 287, 1, 0, 0, 0, 290, 288, + 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 291, 96, 1, 0, 0, 0, 292, 293, 3, 83, + 41, 0, 293, 294, 7, 5, 0, 0, 294, 98, 1, 0, 0, 0, 295, 296, 3, 83, 41, + 0, 296, 297, 2, 48, 51, 0, 297, 298, 2, 48, 55, 0, 298, 299, 2, 48, 55, + 0, 299, 100, 1, 0, 0, 0, 300, 301, 3, 83, 41, 0, 301, 302, 7, 6, 0, 0, + 302, 303, 3, 91, 45, 0, 303, 304, 3, 91, 45, 0, 304, 102, 1, 0, 0, 0, 305, + 306, 3, 83, 41, 0, 306, 307, 5, 117, 0, 0, 307, 308, 3, 91, 45, 0, 308, + 309, 3, 91, 45, 0, 309, 310, 3, 91, 45, 0, 310, 311, 3, 91, 45, 0, 311, + 324, 1, 0, 0, 0, 312, 313, 3, 83, 41, 0, 313, 314, 5, 85, 0, 0, 314, 315, + 3, 91, 45, 0, 315, 316, 3, 91, 45, 0, 316, 317, 3, 91, 45, 0, 317, 318, + 3, 91, 45, 0, 318, 319, 3, 91, 45, 0, 319, 320, 3, 91, 45, 0, 320, 321, + 3, 91, 45, 0, 321, 322, 3, 91, 45, 0, 322, 324, 1, 0, 0, 0, 323, 305, 1, + 0, 0, 0, 323, 312, 1, 0, 0, 0, 324, 104, 1, 0, 0, 0, 325, 327, 7, 7, 0, + 0, 326, 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 328, + 329, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 6, 52, 0, 0, 331, 106, + 1, 0, 0, 0, 332, 333, 5, 47, 0, 0, 333, 334, 5, 47, 0, 0, 334, 338, 1, + 0, 0, 0, 335, 337, 8, 8, 0, 0, 336, 335, 1, 0, 0, 0, 337, 340, 1, 0, 0, + 0, 338, 336, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 341, 1, 0, 0, 0, 340, + 338, 1, 0, 0, 0, 341, 342, 6, 53, 0, 0, 342, 108, 1, 0, 0, 0, 343, 345, + 3, 87, 43, 0, 344, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 344, 1, + 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 350, 5, 46, 0, + 0, 349, 351, 3, 87, 43, 0, 350, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, + 352, 350, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 355, 1, 0, 0, 0, 354, + 356, 3, 89, 44, 0, 355, 354, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356, 374, + 1, 0, 0, 0, 357, 359, 3, 87, 43, 0, 358, 357, 1, 0, 0, 0, 359, 360, 1, + 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 1, 0, 0, + 0, 362, 363, 3, 89, 44, 0, 363, 374, 1, 0, 0, 0, 364, 366, 5, 46, 0, 0, + 365, 367, 3, 87, 43, 0, 366, 365, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, + 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 371, 1, 0, 0, 0, 370, 372, + 3, 89, 44, 0, 371, 370, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 374, 1, + 0, 0, 0, 373, 344, 1, 0, 0, 0, 373, 358, 1, 0, 0, 0, 373, 364, 1, 0, 0, + 0, 374, 110, 1, 0, 0, 0, 375, 377, 3, 87, 43, 0, 376, 375, 1, 0, 0, 0, + 377, 378, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, + 389, 1, 0, 0, 0, 380, 381, 5, 48, 0, 0, 381, 382, 5, 120, 0, 0, 382, 384, + 1, 0, 0, 0, 383, 385, 3, 91, 45, 0, 384, 383, 1, 0, 0, 0, 385, 386, 1, + 0, 0, 0, 386, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 389, 1, 0, 0, + 0, 388, 376, 1, 0, 0, 0, 388, 380, 1, 0, 0, 0, 389, 112, 1, 0, 0, 0, 390, + 392, 3, 87, 43, 0, 391, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 391, + 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 396, 7, 9, + 0, 0, 396, 408, 1, 0, 0, 0, 397, 398, 5, 48, 0, 0, 398, 399, 5, 120, 0, + 0, 399, 401, 1, 0, 0, 0, 400, 402, 3, 91, 45, 0, 401, 400, 1, 0, 0, 0, + 402, 403, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, + 405, 1, 0, 0, 0, 405, 406, 7, 9, 0, 0, 406, 408, 1, 0, 0, 0, 407, 391, + 1, 0, 0, 0, 407, 397, 1, 0, 0, 0, 408, 114, 1, 0, 0, 0, 409, 414, 5, 34, + 0, 0, 410, 413, 3, 95, 47, 0, 411, 413, 8, 10, 0, 0, 412, 410, 1, 0, 0, + 0, 412, 411, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, + 415, 1, 0, 0, 0, 415, 417, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 506, + 5, 34, 0, 0, 418, 423, 5, 39, 0, 0, 419, 422, 3, 95, 47, 0, 420, 422, 8, + 11, 0, 0, 421, 419, 1, 0, 0, 0, 421, 420, 1, 0, 0, 0, 422, 425, 1, 0, 0, + 0, 423, 421, 1, 0, 0, 0, 423, 424, 1, 0, 0, 0, 424, 426, 1, 0, 0, 0, 425, + 423, 1, 0, 0, 0, 426, 506, 5, 39, 0, 0, 427, 428, 5, 34, 0, 0, 428, 429, + 5, 34, 0, 0, 429, 430, 5, 34, 0, 0, 430, 435, 1, 0, 0, 0, 431, 434, 3, + 95, 47, 0, 432, 434, 8, 12, 0, 0, 433, 431, 1, 0, 0, 0, 433, 432, 1, 0, + 0, 0, 434, 437, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, + 436, 438, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 439, 5, 34, 0, 0, 439, + 440, 5, 34, 0, 0, 440, 506, 5, 34, 0, 0, 441, 442, 5, 39, 0, 0, 442, 443, + 5, 39, 0, 0, 443, 444, 5, 39, 0, 0, 444, 449, 1, 0, 0, 0, 445, 448, 3, + 95, 47, 0, 446, 448, 8, 12, 0, 0, 447, 445, 1, 0, 0, 0, 447, 446, 1, 0, + 0, 0, 448, 451, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, + 450, 452, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 452, 453, 5, 39, 0, 0, 453, + 454, 5, 39, 0, 0, 454, 506, 5, 39, 0, 0, 455, 456, 3, 93, 46, 0, 456, 460, + 5, 34, 0, 0, 457, 459, 8, 13, 0, 0, 458, 457, 1, 0, 0, 0, 459, 462, 1, + 0, 0, 0, 460, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 1, 0, 0, + 0, 462, 460, 1, 0, 0, 0, 463, 464, 5, 34, 0, 0, 464, 506, 1, 0, 0, 0, 465, + 466, 3, 93, 46, 0, 466, 470, 5, 39, 0, 0, 467, 469, 8, 14, 0, 0, 468, 467, + 1, 0, 0, 0, 469, 472, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, + 0, 0, 471, 473, 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 473, 474, 5, 39, 0, 0, + 474, 506, 1, 0, 0, 0, 475, 476, 3, 93, 46, 0, 476, 477, 5, 34, 0, 0, 477, + 478, 5, 34, 0, 0, 478, 479, 5, 34, 0, 0, 479, 483, 1, 0, 0, 0, 480, 482, + 9, 0, 0, 0, 481, 480, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 484, 1, 0, + 0, 0, 483, 481, 1, 0, 0, 0, 484, 486, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, + 486, 487, 5, 34, 0, 0, 487, 488, 5, 34, 0, 0, 488, 489, 5, 34, 0, 0, 489, + 506, 1, 0, 0, 0, 490, 491, 3, 93, 46, 0, 491, 492, 5, 39, 0, 0, 492, 493, + 5, 39, 0, 0, 493, 494, 5, 39, 0, 0, 494, 498, 1, 0, 0, 0, 495, 497, 9, + 0, 0, 0, 496, 495, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 499, 1, 0, 0, + 0, 498, 496, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, + 502, 5, 39, 0, 0, 502, 503, 5, 39, 0, 0, 503, 504, 5, 39, 0, 0, 504, 506, + 1, 0, 0, 0, 505, 409, 1, 0, 0, 0, 505, 418, 1, 0, 0, 0, 505, 427, 1, 0, + 0, 0, 505, 441, 1, 0, 0, 0, 505, 455, 1, 0, 0, 0, 505, 465, 1, 0, 0, 0, + 505, 475, 1, 0, 0, 0, 505, 490, 1, 0, 0, 0, 506, 116, 1, 0, 0, 0, 507, + 508, 7, 15, 0, 0, 508, 509, 3, 115, 57, 0, 509, 118, 1, 0, 0, 0, 510, 513, + 3, 85, 42, 0, 511, 513, 5, 95, 0, 0, 512, 510, 1, 0, 0, 0, 512, 511, 1, + 0, 0, 0, 513, 519, 1, 0, 0, 0, 514, 518, 3, 85, 42, 0, 515, 518, 3, 87, + 43, 0, 516, 518, 5, 95, 0, 0, 517, 514, 1, 0, 0, 0, 517, 515, 1, 0, 0, + 0, 517, 516, 1, 0, 0, 0, 518, 521, 1, 0, 0, 0, 519, 517, 1, 0, 0, 0, 519, + 520, 1, 0, 0, 0, 520, 120, 1, 0, 0, 0, 521, 519, 1, 0, 0, 0, 522, 526, + 5, 96, 0, 0, 523, 527, 3, 85, 42, 0, 524, 527, 3, 87, 43, 0, 525, 527, + 7, 16, 0, 0, 526, 523, 1, 0, 0, 0, 526, 524, 1, 0, 0, 0, 526, 525, 1, 0, + 0, 0, 527, 528, 1, 0, 0, 0, 528, 526, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, + 529, 530, 1, 0, 0, 0, 530, 531, 5, 96, 0, 0, 531, 122, 1, 0, 0, 0, 39, + 0, 187, 275, 280, 290, 323, 328, 338, 346, 352, 355, 360, 368, 371, 373, + 378, 386, 388, 393, 403, 407, 412, 414, 421, 423, 433, 435, 447, 449, 460, + 470, 483, 498, 505, 512, 517, 519, 526, 528, 1, 0, 1, 0, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -362,45 +367,46 @@ const ( CommandsLexerT__5 = 6 CommandsLexerT__6 = 7 CommandsLexerT__7 = 8 - CommandsLexerCOMMAND = 9 - CommandsLexerFLAG = 10 - CommandsLexerARROW = 11 - CommandsLexerEQUAL_ASSIGN = 12 - CommandsLexerEQUALS = 13 - CommandsLexerNOT_EQUALS = 14 - CommandsLexerIN = 15 - CommandsLexerLESS = 16 - CommandsLexerLESS_EQUALS = 17 - CommandsLexerGREATER_EQUALS = 18 - CommandsLexerGREATER = 19 - CommandsLexerLOGICAL_AND = 20 - CommandsLexerLOGICAL_OR = 21 - CommandsLexerLBRACKET = 22 - CommandsLexerRPRACKET = 23 - CommandsLexerLBRACE = 24 - CommandsLexerRBRACE = 25 - CommandsLexerLPAREN = 26 - CommandsLexerRPAREN = 27 - CommandsLexerDOT = 28 - CommandsLexerCOMMA = 29 - CommandsLexerMINUS = 30 - CommandsLexerEXCLAM = 31 - CommandsLexerQUESTIONMARK = 32 - CommandsLexerCOLON = 33 - CommandsLexerPLUS = 34 - CommandsLexerSTAR = 35 - CommandsLexerSLASH = 36 - CommandsLexerPERCENT = 37 - CommandsLexerCEL_TRUE = 38 - CommandsLexerCEL_FALSE = 39 - CommandsLexerNUL = 40 - CommandsLexerWHITESPACE = 41 - CommandsLexerCOMMENT = 42 - CommandsLexerNUM_FLOAT = 43 - CommandsLexerNUM_INT = 44 - CommandsLexerNUM_UINT = 45 - CommandsLexerSTRING = 46 - CommandsLexerBYTES = 47 - CommandsLexerIDENTIFIER = 48 - CommandsLexerESC_IDENTIFIER = 49 + CommandsLexerT__8 = 9 + CommandsLexerCOMMAND = 10 + CommandsLexerFLAG = 11 + CommandsLexerARROW = 12 + CommandsLexerEQUAL_ASSIGN = 13 + CommandsLexerEQUALS = 14 + CommandsLexerNOT_EQUALS = 15 + CommandsLexerIN = 16 + CommandsLexerLESS = 17 + CommandsLexerLESS_EQUALS = 18 + CommandsLexerGREATER_EQUALS = 19 + CommandsLexerGREATER = 20 + CommandsLexerLOGICAL_AND = 21 + CommandsLexerLOGICAL_OR = 22 + CommandsLexerLBRACKET = 23 + CommandsLexerRPRACKET = 24 + CommandsLexerLBRACE = 25 + CommandsLexerRBRACE = 26 + CommandsLexerLPAREN = 27 + CommandsLexerRPAREN = 28 + CommandsLexerDOT = 29 + CommandsLexerCOMMA = 30 + CommandsLexerMINUS = 31 + CommandsLexerEXCLAM = 32 + CommandsLexerQUESTIONMARK = 33 + CommandsLexerCOLON = 34 + CommandsLexerPLUS = 35 + CommandsLexerSTAR = 36 + CommandsLexerSLASH = 37 + CommandsLexerPERCENT = 38 + CommandsLexerCEL_TRUE = 39 + CommandsLexerCEL_FALSE = 40 + CommandsLexerNUL = 41 + CommandsLexerWHITESPACE = 42 + CommandsLexerCOMMENT = 43 + CommandsLexerNUM_FLOAT = 44 + CommandsLexerNUM_INT = 45 + CommandsLexerNUM_UINT = 46 + CommandsLexerSTRING = 47 + CommandsLexerBYTES = 48 + CommandsLexerIDENTIFIER = 49 + CommandsLexerESC_IDENTIFIER = 50 ) diff --git a/repl/parser/commands_listener.go b/repl/parser/commands_listener.go index dbcd3f0b2..24f45823e 100644 --- a/repl/parser/commands_listener.go +++ b/repl/parser/commands_listener.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser // Commands import "github.com/antlr4-go/antlr/v4" diff --git a/repl/parser/commands_parser.go b/repl/parser/commands_parser.go index 864950a94..22a35722a 100644 --- a/repl/parser/commands_parser.go +++ b/repl/parser/commands_parser.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser // Commands import ( @@ -33,19 +33,20 @@ func commandsParserInit() { staticData := &CommandsParserStaticData staticData.LiteralNames = []string{ "", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'", - "'%parse'", "'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", - "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", - "'('", "')'", "'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", - "'/'", "'%'", "'true'", "'false'", "'null'", + "'%parse'", "'%eval'", "'--'", "", "", "'->'", "'='", "'=='", "'!='", + "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", "'['", "']'", + "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'", "'?'", "':'", + "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'", } staticData.SymbolicNames = []string{ - "", "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN", - "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", - "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", - "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", - "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", - "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", - "STRING", "BYTES", "IDENTIFIER", "ESC_IDENTIFIER", + "", "", "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", + "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", + "GREATER_EQUALS", "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", + "RPRACKET", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", + "MINUS", "EXCLAM", "QUESTIONMARK", "COLON", "PLUS", "STAR", "SLASH", + "PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", "WHITESPACE", "COMMENT", + "NUM_FLOAT", "NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER", + "ESC_IDENTIFIER", } staticData.RuleNames = []string{ "startCommand", "command", "help", "let", "declare", "varDecl", "fnDecl", @@ -57,7 +58,7 @@ func commandsParserInit() { } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 1, 49, 422, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, + 4, 1, 50, 432, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, @@ -71,184 +72,189 @@ func commandsParserInit() { 118, 9, 6, 3, 6, 120, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 133, 8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 138, 8, 9, 10, 9, 12, 9, 141, 9, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, - 1, 12, 1, 13, 3, 13, 152, 8, 13, 1, 13, 1, 13, 1, 14, 3, 14, 157, 8, 14, - 1, 14, 1, 14, 1, 14, 5, 14, 162, 8, 14, 10, 14, 12, 14, 165, 9, 14, 1, - 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 172, 8, 16, 1, 17, 3, 17, 175, 8, - 17, 1, 17, 1, 17, 1, 17, 5, 17, 180, 8, 17, 10, 17, 12, 17, 183, 9, 17, - 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 189, 8, 18, 10, 18, 12, 18, 192, 9, - 18, 3, 18, 194, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, - 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 207, 8, 20, 1, 21, 1, 21, 1, 21, 5, - 21, 212, 8, 21, 10, 21, 12, 21, 215, 9, 21, 1, 22, 1, 22, 1, 22, 5, 22, - 220, 8, 22, 10, 22, 12, 22, 223, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, - 23, 1, 23, 5, 23, 231, 8, 23, 10, 23, 12, 23, 234, 9, 23, 1, 24, 1, 24, - 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 245, 8, 24, 10, - 24, 12, 24, 248, 9, 24, 1, 25, 1, 25, 4, 25, 252, 8, 25, 11, 25, 12, 25, - 253, 1, 25, 1, 25, 4, 25, 258, 8, 25, 11, 25, 12, 25, 259, 1, 25, 3, 25, - 263, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 271, 8, 26, - 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 279, 8, 26, 1, 26, 1, - 26, 1, 26, 1, 26, 3, 26, 285, 8, 26, 1, 26, 1, 26, 1, 26, 5, 26, 290, 8, - 26, 10, 26, 12, 26, 293, 9, 26, 1, 27, 3, 27, 296, 8, 27, 1, 27, 1, 27, - 3, 27, 300, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 305, 8, 27, 1, 27, 1, 27, - 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 314, 8, 27, 1, 27, 3, 27, 317, - 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 322, 8, 27, 1, 27, 3, 27, 325, 8, 27, - 1, 27, 1, 27, 3, 27, 329, 8, 27, 1, 27, 1, 27, 1, 27, 5, 27, 334, 8, 27, - 10, 27, 12, 27, 337, 9, 27, 1, 27, 1, 27, 3, 27, 341, 8, 27, 1, 27, 3, - 27, 344, 8, 27, 1, 27, 1, 27, 3, 27, 348, 8, 27, 1, 28, 1, 28, 1, 28, 5, - 28, 353, 8, 28, 10, 28, 12, 28, 356, 9, 28, 1, 29, 1, 29, 1, 29, 5, 29, - 361, 8, 29, 10, 29, 12, 29, 364, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, - 30, 1, 30, 1, 30, 1, 30, 5, 30, 374, 8, 30, 10, 30, 12, 30, 377, 9, 30, - 1, 31, 3, 31, 380, 8, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, - 32, 1, 32, 1, 32, 1, 32, 5, 32, 392, 8, 32, 10, 32, 12, 32, 395, 9, 32, - 1, 33, 1, 33, 3, 33, 399, 8, 33, 1, 34, 3, 34, 402, 8, 34, 1, 34, 1, 34, - 1, 35, 3, 35, 407, 8, 35, 1, 35, 1, 35, 1, 35, 3, 35, 412, 8, 35, 1, 35, - 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 420, 8, 35, 1, 35, 0, 3, 46, - 48, 52, 36, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 0, 5, 1, 0, 1, 2, 2, 0, 40, 40, 48, 48, 1, 0, 13, 19, 1, 0, 35, - 37, 2, 0, 30, 30, 34, 34, 458, 0, 72, 1, 0, 0, 0, 2, 84, 1, 0, 0, 0, 4, - 86, 1, 0, 0, 0, 6, 88, 1, 0, 0, 0, 8, 99, 1, 0, 0, 0, 10, 104, 1, 0, 0, - 0, 12, 109, 1, 0, 0, 0, 14, 125, 1, 0, 0, 0, 16, 129, 1, 0, 0, 0, 18, 134, - 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 144, 1, 0, 0, 0, 24, 147, 1, 0, 0, - 0, 26, 151, 1, 0, 0, 0, 28, 156, 1, 0, 0, 0, 30, 166, 1, 0, 0, 0, 32, 169, - 1, 0, 0, 0, 34, 174, 1, 0, 0, 0, 36, 184, 1, 0, 0, 0, 38, 197, 1, 0, 0, - 0, 40, 200, 1, 0, 0, 0, 42, 208, 1, 0, 0, 0, 44, 216, 1, 0, 0, 0, 46, 224, - 1, 0, 0, 0, 48, 235, 1, 0, 0, 0, 50, 262, 1, 0, 0, 0, 52, 264, 1, 0, 0, - 0, 54, 347, 1, 0, 0, 0, 56, 349, 1, 0, 0, 0, 58, 357, 1, 0, 0, 0, 60, 365, - 1, 0, 0, 0, 62, 379, 1, 0, 0, 0, 64, 383, 1, 0, 0, 0, 66, 398, 1, 0, 0, - 0, 68, 401, 1, 0, 0, 0, 70, 419, 1, 0, 0, 0, 72, 73, 3, 2, 1, 0, 73, 74, - 5, 0, 0, 1, 74, 1, 1, 0, 0, 0, 75, 85, 3, 4, 2, 0, 76, 85, 3, 6, 3, 0, - 77, 85, 3, 8, 4, 0, 78, 85, 3, 16, 8, 0, 79, 85, 3, 18, 9, 0, 80, 85, 3, - 22, 11, 0, 81, 85, 3, 24, 12, 0, 82, 85, 3, 26, 13, 0, 83, 85, 3, 20, 10, - 0, 84, 75, 1, 0, 0, 0, 84, 76, 1, 0, 0, 0, 84, 77, 1, 0, 0, 0, 84, 78, - 1, 0, 0, 0, 84, 79, 1, 0, 0, 0, 84, 80, 1, 0, 0, 0, 84, 81, 1, 0, 0, 0, - 84, 82, 1, 0, 0, 0, 84, 83, 1, 0, 0, 0, 85, 3, 1, 0, 0, 0, 86, 87, 7, 0, - 0, 0, 87, 5, 1, 0, 0, 0, 88, 95, 5, 3, 0, 0, 89, 90, 3, 10, 5, 0, 90, 91, - 5, 12, 0, 0, 91, 96, 1, 0, 0, 0, 92, 93, 3, 12, 6, 0, 93, 94, 5, 11, 0, - 0, 94, 96, 1, 0, 0, 0, 95, 89, 1, 0, 0, 0, 95, 92, 1, 0, 0, 0, 96, 97, - 1, 0, 0, 0, 97, 98, 3, 40, 20, 0, 98, 7, 1, 0, 0, 0, 99, 102, 5, 4, 0, - 0, 100, 103, 3, 10, 5, 0, 101, 103, 3, 12, 6, 0, 102, 100, 1, 0, 0, 0, - 102, 101, 1, 0, 0, 0, 103, 9, 1, 0, 0, 0, 104, 107, 3, 28, 14, 0, 105, - 106, 5, 33, 0, 0, 106, 108, 3, 32, 16, 0, 107, 105, 1, 0, 0, 0, 107, 108, - 1, 0, 0, 0, 108, 11, 1, 0, 0, 0, 109, 110, 3, 28, 14, 0, 110, 119, 5, 26, - 0, 0, 111, 116, 3, 14, 7, 0, 112, 113, 5, 29, 0, 0, 113, 115, 3, 14, 7, - 0, 114, 112, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, - 117, 1, 0, 0, 0, 117, 120, 1, 0, 0, 0, 118, 116, 1, 0, 0, 0, 119, 111, - 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 5, 27, - 0, 0, 122, 123, 5, 33, 0, 0, 123, 124, 3, 32, 16, 0, 124, 13, 1, 0, 0, - 0, 125, 126, 5, 48, 0, 0, 126, 127, 5, 33, 0, 0, 127, 128, 3, 32, 16, 0, - 128, 15, 1, 0, 0, 0, 129, 132, 5, 5, 0, 0, 130, 133, 3, 10, 5, 0, 131, - 133, 3, 12, 6, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 17, - 1, 0, 0, 0, 134, 139, 5, 9, 0, 0, 135, 138, 5, 10, 0, 0, 136, 138, 5, 46, - 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, - 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 19, 1, 0, 0, 0, 141, 139, - 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 21, 1, 0, 0, 0, 144, 145, 5, 6, - 0, 0, 145, 146, 3, 40, 20, 0, 146, 23, 1, 0, 0, 0, 147, 148, 5, 7, 0, 0, - 148, 149, 3, 40, 20, 0, 149, 25, 1, 0, 0, 0, 150, 152, 5, 8, 0, 0, 151, - 150, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 154, - 3, 40, 20, 0, 154, 27, 1, 0, 0, 0, 155, 157, 5, 28, 0, 0, 156, 155, 1, - 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 163, 5, 48, 0, - 0, 159, 160, 5, 28, 0, 0, 160, 162, 5, 48, 0, 0, 161, 159, 1, 0, 0, 0, - 162, 165, 1, 0, 0, 0, 163, 161, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, - 29, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0, 166, 167, 3, 32, 16, 0, 167, 168, - 5, 0, 0, 1, 168, 31, 1, 0, 0, 0, 169, 171, 3, 34, 17, 0, 170, 172, 3, 36, - 18, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 33, 1, 0, 0, 0, - 173, 175, 5, 28, 0, 0, 174, 173, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, - 176, 1, 0, 0, 0, 176, 181, 7, 1, 0, 0, 177, 178, 5, 28, 0, 0, 178, 180, - 5, 48, 0, 0, 179, 177, 1, 0, 0, 0, 180, 183, 1, 0, 0, 0, 181, 179, 1, 0, - 0, 0, 181, 182, 1, 0, 0, 0, 182, 35, 1, 0, 0, 0, 183, 181, 1, 0, 0, 0, - 184, 193, 5, 26, 0, 0, 185, 190, 3, 32, 16, 0, 186, 187, 5, 29, 0, 0, 187, - 189, 3, 32, 16, 0, 188, 186, 1, 0, 0, 0, 189, 192, 1, 0, 0, 0, 190, 188, - 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 194, 1, 0, 0, 0, 192, 190, 1, 0, - 0, 0, 193, 185, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, - 195, 196, 5, 27, 0, 0, 196, 37, 1, 0, 0, 0, 197, 198, 3, 40, 20, 0, 198, - 199, 5, 0, 0, 1, 199, 39, 1, 0, 0, 0, 200, 206, 3, 42, 21, 0, 201, 202, - 5, 32, 0, 0, 202, 203, 3, 42, 21, 0, 203, 204, 5, 33, 0, 0, 204, 205, 3, - 40, 20, 0, 205, 207, 1, 0, 0, 0, 206, 201, 1, 0, 0, 0, 206, 207, 1, 0, - 0, 0, 207, 41, 1, 0, 0, 0, 208, 213, 3, 44, 22, 0, 209, 210, 5, 21, 0, - 0, 210, 212, 3, 44, 22, 0, 211, 209, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, - 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 43, 1, 0, 0, 0, 215, 213, - 1, 0, 0, 0, 216, 221, 3, 46, 23, 0, 217, 218, 5, 20, 0, 0, 218, 220, 3, - 46, 23, 0, 219, 217, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, - 0, 0, 221, 222, 1, 0, 0, 0, 222, 45, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, - 224, 225, 6, 23, -1, 0, 225, 226, 3, 48, 24, 0, 226, 232, 1, 0, 0, 0, 227, - 228, 10, 1, 0, 0, 228, 229, 7, 2, 0, 0, 229, 231, 3, 46, 23, 2, 230, 227, - 1, 0, 0, 0, 231, 234, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, - 0, 0, 233, 47, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 235, 236, 6, 24, -1, 0, - 236, 237, 3, 50, 25, 0, 237, 246, 1, 0, 0, 0, 238, 239, 10, 2, 0, 0, 239, - 240, 7, 3, 0, 0, 240, 245, 3, 48, 24, 3, 241, 242, 10, 1, 0, 0, 242, 243, - 7, 4, 0, 0, 243, 245, 3, 48, 24, 2, 244, 238, 1, 0, 0, 0, 244, 241, 1, - 0, 0, 0, 245, 248, 1, 0, 0, 0, 246, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, - 0, 247, 49, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249, 263, 3, 52, 26, 0, 250, - 252, 5, 31, 0, 0, 251, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 251, - 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 263, 3, 52, - 26, 0, 256, 258, 5, 30, 0, 0, 257, 256, 1, 0, 0, 0, 258, 259, 1, 0, 0, - 0, 259, 257, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, - 263, 3, 52, 26, 0, 262, 249, 1, 0, 0, 0, 262, 251, 1, 0, 0, 0, 262, 257, - 1, 0, 0, 0, 263, 51, 1, 0, 0, 0, 264, 265, 6, 26, -1, 0, 265, 266, 3, 54, - 27, 0, 266, 291, 1, 0, 0, 0, 267, 268, 10, 3, 0, 0, 268, 270, 5, 28, 0, - 0, 269, 271, 5, 32, 0, 0, 270, 269, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, - 272, 1, 0, 0, 0, 272, 290, 3, 66, 33, 0, 273, 274, 10, 2, 0, 0, 274, 275, - 5, 28, 0, 0, 275, 276, 5, 48, 0, 0, 276, 278, 5, 26, 0, 0, 277, 279, 3, - 56, 28, 0, 278, 277, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 280, 1, 0, - 0, 0, 280, 290, 5, 27, 0, 0, 281, 282, 10, 1, 0, 0, 282, 284, 5, 22, 0, - 0, 283, 285, 5, 32, 0, 0, 284, 283, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, - 286, 1, 0, 0, 0, 286, 287, 3, 40, 20, 0, 287, 288, 5, 23, 0, 0, 288, 290, - 1, 0, 0, 0, 289, 267, 1, 0, 0, 0, 289, 273, 1, 0, 0, 0, 289, 281, 1, 0, - 0, 0, 290, 293, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, - 292, 53, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294, 296, 5, 28, 0, 0, 295, - 294, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 348, - 5, 48, 0, 0, 298, 300, 5, 28, 0, 0, 299, 298, 1, 0, 0, 0, 299, 300, 1, - 0, 0, 0, 300, 301, 1, 0, 0, 0, 301, 302, 5, 48, 0, 0, 302, 304, 5, 26, - 0, 0, 303, 305, 3, 56, 28, 0, 304, 303, 1, 0, 0, 0, 304, 305, 1, 0, 0, - 0, 305, 306, 1, 0, 0, 0, 306, 348, 5, 27, 0, 0, 307, 308, 5, 26, 0, 0, - 308, 309, 3, 40, 20, 0, 309, 310, 5, 27, 0, 0, 310, 348, 1, 0, 0, 0, 311, - 313, 5, 22, 0, 0, 312, 314, 3, 58, 29, 0, 313, 312, 1, 0, 0, 0, 313, 314, - 1, 0, 0, 0, 314, 316, 1, 0, 0, 0, 315, 317, 5, 29, 0, 0, 316, 315, 1, 0, - 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 348, 5, 23, 0, 0, - 319, 321, 5, 24, 0, 0, 320, 322, 3, 64, 32, 0, 321, 320, 1, 0, 0, 0, 321, - 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 325, 5, 29, 0, 0, 324, 323, - 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 348, 5, 25, - 0, 0, 327, 329, 5, 28, 0, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, - 329, 330, 1, 0, 0, 0, 330, 335, 5, 48, 0, 0, 331, 332, 5, 28, 0, 0, 332, - 334, 5, 48, 0, 0, 333, 331, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335, 333, - 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 338, 1, 0, 0, 0, 337, 335, 1, 0, - 0, 0, 338, 340, 5, 24, 0, 0, 339, 341, 3, 60, 30, 0, 340, 339, 1, 0, 0, - 0, 340, 341, 1, 0, 0, 0, 341, 343, 1, 0, 0, 0, 342, 344, 5, 29, 0, 0, 343, - 342, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 348, - 5, 25, 0, 0, 346, 348, 3, 70, 35, 0, 347, 295, 1, 0, 0, 0, 347, 299, 1, - 0, 0, 0, 347, 307, 1, 0, 0, 0, 347, 311, 1, 0, 0, 0, 347, 319, 1, 0, 0, - 0, 347, 328, 1, 0, 0, 0, 347, 346, 1, 0, 0, 0, 348, 55, 1, 0, 0, 0, 349, - 354, 3, 40, 20, 0, 350, 351, 5, 29, 0, 0, 351, 353, 3, 40, 20, 0, 352, - 350, 1, 0, 0, 0, 353, 356, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, - 1, 0, 0, 0, 355, 57, 1, 0, 0, 0, 356, 354, 1, 0, 0, 0, 357, 362, 3, 68, - 34, 0, 358, 359, 5, 29, 0, 0, 359, 361, 3, 68, 34, 0, 360, 358, 1, 0, 0, - 0, 361, 364, 1, 0, 0, 0, 362, 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, - 59, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 365, 366, 3, 62, 31, 0, 366, 367, - 5, 33, 0, 0, 367, 375, 3, 40, 20, 0, 368, 369, 5, 29, 0, 0, 369, 370, 3, - 62, 31, 0, 370, 371, 5, 33, 0, 0, 371, 372, 3, 40, 20, 0, 372, 374, 1, - 0, 0, 0, 373, 368, 1, 0, 0, 0, 374, 377, 1, 0, 0, 0, 375, 373, 1, 0, 0, - 0, 375, 376, 1, 0, 0, 0, 376, 61, 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 378, - 380, 5, 32, 0, 0, 379, 378, 1, 0, 0, 0, 379, 380, 1, 0, 0, 0, 380, 381, - 1, 0, 0, 0, 381, 382, 3, 66, 33, 0, 382, 63, 1, 0, 0, 0, 383, 384, 3, 68, - 34, 0, 384, 385, 5, 33, 0, 0, 385, 393, 3, 40, 20, 0, 386, 387, 5, 29, - 0, 0, 387, 388, 3, 68, 34, 0, 388, 389, 5, 33, 0, 0, 389, 390, 3, 40, 20, - 0, 390, 392, 1, 0, 0, 0, 391, 386, 1, 0, 0, 0, 392, 395, 1, 0, 0, 0, 393, - 391, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 65, 1, 0, 0, 0, 395, 393, 1, - 0, 0, 0, 396, 399, 5, 48, 0, 0, 397, 399, 5, 49, 0, 0, 398, 396, 1, 0, - 0, 0, 398, 397, 1, 0, 0, 0, 399, 67, 1, 0, 0, 0, 400, 402, 5, 32, 0, 0, - 401, 400, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, - 404, 3, 40, 20, 0, 404, 69, 1, 0, 0, 0, 405, 407, 5, 30, 0, 0, 406, 405, - 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 408, 1, 0, 0, 0, 408, 420, 5, 44, - 0, 0, 409, 420, 5, 45, 0, 0, 410, 412, 5, 30, 0, 0, 411, 410, 1, 0, 0, - 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 420, 5, 43, 0, 0, 414, - 420, 5, 46, 0, 0, 415, 420, 5, 47, 0, 0, 416, 420, 5, 38, 0, 0, 417, 420, - 5, 39, 0, 0, 418, 420, 5, 40, 0, 0, 419, 406, 1, 0, 0, 0, 419, 409, 1, - 0, 0, 0, 419, 411, 1, 0, 0, 0, 419, 414, 1, 0, 0, 0, 419, 415, 1, 0, 0, - 0, 419, 416, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 419, 418, 1, 0, 0, 0, 420, - 71, 1, 0, 0, 0, 53, 84, 95, 102, 107, 116, 119, 132, 137, 139, 151, 156, - 163, 171, 174, 181, 190, 193, 206, 213, 221, 232, 244, 246, 253, 259, 262, - 270, 278, 284, 289, 291, 295, 299, 304, 313, 316, 321, 324, 328, 335, 340, - 343, 347, 354, 362, 375, 379, 393, 398, 401, 406, 411, 419, + 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 154, 8, 13, 10, 13, 12, 13, 157, 9, + 13, 1, 13, 3, 13, 160, 8, 13, 3, 13, 162, 8, 13, 1, 13, 1, 13, 1, 14, 3, + 14, 167, 8, 14, 1, 14, 1, 14, 1, 14, 5, 14, 172, 8, 14, 10, 14, 12, 14, + 175, 9, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 182, 8, 16, 1, 17, + 3, 17, 185, 8, 17, 1, 17, 1, 17, 1, 17, 5, 17, 190, 8, 17, 10, 17, 12, + 17, 193, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 199, 8, 18, 10, 18, + 12, 18, 202, 9, 18, 3, 18, 204, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, + 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 217, 8, 20, 1, 21, 1, + 21, 1, 21, 5, 21, 222, 8, 21, 10, 21, 12, 21, 225, 9, 21, 1, 22, 1, 22, + 1, 22, 5, 22, 230, 8, 22, 10, 22, 12, 22, 233, 9, 22, 1, 23, 1, 23, 1, + 23, 1, 23, 1, 23, 1, 23, 5, 23, 241, 8, 23, 10, 23, 12, 23, 244, 9, 23, + 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 255, + 8, 24, 10, 24, 12, 24, 258, 9, 24, 1, 25, 1, 25, 4, 25, 262, 8, 25, 11, + 25, 12, 25, 263, 1, 25, 1, 25, 4, 25, 268, 8, 25, 11, 25, 12, 25, 269, + 1, 25, 3, 25, 273, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, + 26, 281, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 289, 8, + 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 295, 8, 26, 1, 26, 1, 26, 1, 26, + 5, 26, 300, 8, 26, 10, 26, 12, 26, 303, 9, 26, 1, 27, 3, 27, 306, 8, 27, + 1, 27, 1, 27, 3, 27, 310, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 315, 8, 27, + 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 324, 8, 27, 1, + 27, 3, 27, 327, 8, 27, 1, 27, 1, 27, 1, 27, 3, 27, 332, 8, 27, 1, 27, 3, + 27, 335, 8, 27, 1, 27, 1, 27, 3, 27, 339, 8, 27, 1, 27, 1, 27, 1, 27, 5, + 27, 344, 8, 27, 10, 27, 12, 27, 347, 9, 27, 1, 27, 1, 27, 3, 27, 351, 8, + 27, 1, 27, 3, 27, 354, 8, 27, 1, 27, 1, 27, 3, 27, 358, 8, 27, 1, 28, 1, + 28, 1, 28, 5, 28, 363, 8, 28, 10, 28, 12, 28, 366, 9, 28, 1, 29, 1, 29, + 1, 29, 5, 29, 371, 8, 29, 10, 29, 12, 29, 374, 9, 29, 1, 30, 1, 30, 1, + 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 384, 8, 30, 10, 30, 12, 30, + 387, 9, 30, 1, 31, 3, 31, 390, 8, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, + 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 402, 8, 32, 10, 32, 12, 32, 405, + 9, 32, 1, 33, 1, 33, 3, 33, 409, 8, 33, 1, 34, 3, 34, 412, 8, 34, 1, 34, + 1, 34, 1, 35, 3, 35, 417, 8, 35, 1, 35, 1, 35, 1, 35, 3, 35, 422, 8, 35, + 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 430, 8, 35, 1, 35, 0, + 3, 46, 48, 52, 36, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, + 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, + 66, 68, 70, 0, 5, 1, 0, 1, 2, 2, 0, 41, 41, 49, 49, 1, 0, 14, 20, 1, 0, + 36, 38, 2, 0, 31, 31, 35, 35, 470, 0, 72, 1, 0, 0, 0, 2, 84, 1, 0, 0, 0, + 4, 86, 1, 0, 0, 0, 6, 88, 1, 0, 0, 0, 8, 99, 1, 0, 0, 0, 10, 104, 1, 0, + 0, 0, 12, 109, 1, 0, 0, 0, 14, 125, 1, 0, 0, 0, 16, 129, 1, 0, 0, 0, 18, + 134, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 144, 1, 0, 0, 0, 24, 147, 1, + 0, 0, 0, 26, 161, 1, 0, 0, 0, 28, 166, 1, 0, 0, 0, 30, 176, 1, 0, 0, 0, + 32, 179, 1, 0, 0, 0, 34, 184, 1, 0, 0, 0, 36, 194, 1, 0, 0, 0, 38, 207, + 1, 0, 0, 0, 40, 210, 1, 0, 0, 0, 42, 218, 1, 0, 0, 0, 44, 226, 1, 0, 0, + 0, 46, 234, 1, 0, 0, 0, 48, 245, 1, 0, 0, 0, 50, 272, 1, 0, 0, 0, 52, 274, + 1, 0, 0, 0, 54, 357, 1, 0, 0, 0, 56, 359, 1, 0, 0, 0, 58, 367, 1, 0, 0, + 0, 60, 375, 1, 0, 0, 0, 62, 389, 1, 0, 0, 0, 64, 393, 1, 0, 0, 0, 66, 408, + 1, 0, 0, 0, 68, 411, 1, 0, 0, 0, 70, 429, 1, 0, 0, 0, 72, 73, 3, 2, 1, + 0, 73, 74, 5, 0, 0, 1, 74, 1, 1, 0, 0, 0, 75, 85, 3, 4, 2, 0, 76, 85, 3, + 6, 3, 0, 77, 85, 3, 8, 4, 0, 78, 85, 3, 16, 8, 0, 79, 85, 3, 18, 9, 0, + 80, 85, 3, 22, 11, 0, 81, 85, 3, 24, 12, 0, 82, 85, 3, 26, 13, 0, 83, 85, + 3, 20, 10, 0, 84, 75, 1, 0, 0, 0, 84, 76, 1, 0, 0, 0, 84, 77, 1, 0, 0, + 0, 84, 78, 1, 0, 0, 0, 84, 79, 1, 0, 0, 0, 84, 80, 1, 0, 0, 0, 84, 81, + 1, 0, 0, 0, 84, 82, 1, 0, 0, 0, 84, 83, 1, 0, 0, 0, 85, 3, 1, 0, 0, 0, + 86, 87, 7, 0, 0, 0, 87, 5, 1, 0, 0, 0, 88, 95, 5, 3, 0, 0, 89, 90, 3, 10, + 5, 0, 90, 91, 5, 13, 0, 0, 91, 96, 1, 0, 0, 0, 92, 93, 3, 12, 6, 0, 93, + 94, 5, 12, 0, 0, 94, 96, 1, 0, 0, 0, 95, 89, 1, 0, 0, 0, 95, 92, 1, 0, + 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 3, 40, 20, 0, 98, 7, 1, 0, 0, 0, 99, + 102, 5, 4, 0, 0, 100, 103, 3, 10, 5, 0, 101, 103, 3, 12, 6, 0, 102, 100, + 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 9, 1, 0, 0, 0, 104, 107, 3, 28, + 14, 0, 105, 106, 5, 34, 0, 0, 106, 108, 3, 32, 16, 0, 107, 105, 1, 0, 0, + 0, 107, 108, 1, 0, 0, 0, 108, 11, 1, 0, 0, 0, 109, 110, 3, 28, 14, 0, 110, + 119, 5, 27, 0, 0, 111, 116, 3, 14, 7, 0, 112, 113, 5, 30, 0, 0, 113, 115, + 3, 14, 7, 0, 114, 112, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 114, 1, 0, + 0, 0, 116, 117, 1, 0, 0, 0, 117, 120, 1, 0, 0, 0, 118, 116, 1, 0, 0, 0, + 119, 111, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, + 122, 5, 28, 0, 0, 122, 123, 5, 34, 0, 0, 123, 124, 3, 32, 16, 0, 124, 13, + 1, 0, 0, 0, 125, 126, 5, 49, 0, 0, 126, 127, 5, 34, 0, 0, 127, 128, 3, + 32, 16, 0, 128, 15, 1, 0, 0, 0, 129, 132, 5, 5, 0, 0, 130, 133, 3, 10, + 5, 0, 131, 133, 3, 12, 6, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, + 133, 17, 1, 0, 0, 0, 134, 139, 5, 10, 0, 0, 135, 138, 5, 11, 0, 0, 136, + 138, 5, 47, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 141, + 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 19, 1, 0, + 0, 0, 141, 139, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 21, 1, 0, 0, 0, + 144, 145, 5, 6, 0, 0, 145, 146, 3, 40, 20, 0, 146, 23, 1, 0, 0, 0, 147, + 148, 5, 7, 0, 0, 148, 149, 3, 40, 20, 0, 149, 25, 1, 0, 0, 0, 150, 159, + 5, 8, 0, 0, 151, 155, 5, 11, 0, 0, 152, 154, 5, 11, 0, 0, 153, 152, 1, + 0, 0, 0, 154, 157, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, + 0, 156, 158, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 158, 160, 5, 9, 0, 0, 159, + 151, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 162, 1, 0, 0, 0, 161, 150, + 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 164, 3, 40, + 20, 0, 164, 27, 1, 0, 0, 0, 165, 167, 5, 29, 0, 0, 166, 165, 1, 0, 0, 0, + 166, 167, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 173, 5, 49, 0, 0, 169, + 170, 5, 29, 0, 0, 170, 172, 5, 49, 0, 0, 171, 169, 1, 0, 0, 0, 172, 175, + 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 29, 1, 0, + 0, 0, 175, 173, 1, 0, 0, 0, 176, 177, 3, 32, 16, 0, 177, 178, 5, 0, 0, + 1, 178, 31, 1, 0, 0, 0, 179, 181, 3, 34, 17, 0, 180, 182, 3, 36, 18, 0, + 181, 180, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 33, 1, 0, 0, 0, 183, 185, + 5, 29, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 186, 1, 0, + 0, 0, 186, 191, 7, 1, 0, 0, 187, 188, 5, 29, 0, 0, 188, 190, 5, 49, 0, + 0, 189, 187, 1, 0, 0, 0, 190, 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, + 192, 1, 0, 0, 0, 192, 35, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 194, 203, 5, + 27, 0, 0, 195, 200, 3, 32, 16, 0, 196, 197, 5, 30, 0, 0, 197, 199, 3, 32, + 16, 0, 198, 196, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, + 200, 201, 1, 0, 0, 0, 201, 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 203, + 195, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 206, + 5, 28, 0, 0, 206, 37, 1, 0, 0, 0, 207, 208, 3, 40, 20, 0, 208, 209, 5, + 0, 0, 1, 209, 39, 1, 0, 0, 0, 210, 216, 3, 42, 21, 0, 211, 212, 5, 33, + 0, 0, 212, 213, 3, 42, 21, 0, 213, 214, 5, 34, 0, 0, 214, 215, 3, 40, 20, + 0, 215, 217, 1, 0, 0, 0, 216, 211, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, + 41, 1, 0, 0, 0, 218, 223, 3, 44, 22, 0, 219, 220, 5, 22, 0, 0, 220, 222, + 3, 44, 22, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, + 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 43, 1, 0, 0, 0, 225, 223, 1, 0, 0, + 0, 226, 231, 3, 46, 23, 0, 227, 228, 5, 21, 0, 0, 228, 230, 3, 46, 23, + 0, 229, 227, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231, 229, 1, 0, 0, 0, 231, + 232, 1, 0, 0, 0, 232, 45, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 234, 235, 6, + 23, -1, 0, 235, 236, 3, 48, 24, 0, 236, 242, 1, 0, 0, 0, 237, 238, 10, + 1, 0, 0, 238, 239, 7, 2, 0, 0, 239, 241, 3, 46, 23, 2, 240, 237, 1, 0, + 0, 0, 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, + 243, 47, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 246, 6, 24, -1, 0, 246, + 247, 3, 50, 25, 0, 247, 256, 1, 0, 0, 0, 248, 249, 10, 2, 0, 0, 249, 250, + 7, 3, 0, 0, 250, 255, 3, 48, 24, 3, 251, 252, 10, 1, 0, 0, 252, 253, 7, + 4, 0, 0, 253, 255, 3, 48, 24, 2, 254, 248, 1, 0, 0, 0, 254, 251, 1, 0, + 0, 0, 255, 258, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, + 257, 49, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 259, 273, 3, 52, 26, 0, 260, + 262, 5, 32, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, + 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 273, 3, 52, + 26, 0, 266, 268, 5, 31, 0, 0, 267, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, + 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, + 273, 3, 52, 26, 0, 272, 259, 1, 0, 0, 0, 272, 261, 1, 0, 0, 0, 272, 267, + 1, 0, 0, 0, 273, 51, 1, 0, 0, 0, 274, 275, 6, 26, -1, 0, 275, 276, 3, 54, + 27, 0, 276, 301, 1, 0, 0, 0, 277, 278, 10, 3, 0, 0, 278, 280, 5, 29, 0, + 0, 279, 281, 5, 33, 0, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, + 282, 1, 0, 0, 0, 282, 300, 3, 66, 33, 0, 283, 284, 10, 2, 0, 0, 284, 285, + 5, 29, 0, 0, 285, 286, 5, 49, 0, 0, 286, 288, 5, 27, 0, 0, 287, 289, 3, + 56, 28, 0, 288, 287, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 290, 1, 0, + 0, 0, 290, 300, 5, 28, 0, 0, 291, 292, 10, 1, 0, 0, 292, 294, 5, 23, 0, + 0, 293, 295, 5, 33, 0, 0, 294, 293, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, + 296, 1, 0, 0, 0, 296, 297, 3, 40, 20, 0, 297, 298, 5, 24, 0, 0, 298, 300, + 1, 0, 0, 0, 299, 277, 1, 0, 0, 0, 299, 283, 1, 0, 0, 0, 299, 291, 1, 0, + 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, + 302, 53, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 306, 5, 29, 0, 0, 305, + 304, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 358, + 5, 49, 0, 0, 308, 310, 5, 29, 0, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, + 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 312, 5, 49, 0, 0, 312, 314, 5, 27, + 0, 0, 313, 315, 3, 56, 28, 0, 314, 313, 1, 0, 0, 0, 314, 315, 1, 0, 0, + 0, 315, 316, 1, 0, 0, 0, 316, 358, 5, 28, 0, 0, 317, 318, 5, 27, 0, 0, + 318, 319, 3, 40, 20, 0, 319, 320, 5, 28, 0, 0, 320, 358, 1, 0, 0, 0, 321, + 323, 5, 23, 0, 0, 322, 324, 3, 58, 29, 0, 323, 322, 1, 0, 0, 0, 323, 324, + 1, 0, 0, 0, 324, 326, 1, 0, 0, 0, 325, 327, 5, 30, 0, 0, 326, 325, 1, 0, + 0, 0, 326, 327, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 358, 5, 24, 0, 0, + 329, 331, 5, 25, 0, 0, 330, 332, 3, 64, 32, 0, 331, 330, 1, 0, 0, 0, 331, + 332, 1, 0, 0, 0, 332, 334, 1, 0, 0, 0, 333, 335, 5, 30, 0, 0, 334, 333, + 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 358, 5, 26, + 0, 0, 337, 339, 5, 29, 0, 0, 338, 337, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, + 339, 340, 1, 0, 0, 0, 340, 345, 5, 49, 0, 0, 341, 342, 5, 29, 0, 0, 342, + 344, 5, 49, 0, 0, 343, 341, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, + 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 348, 1, 0, 0, 0, 347, 345, 1, 0, + 0, 0, 348, 350, 5, 25, 0, 0, 349, 351, 3, 60, 30, 0, 350, 349, 1, 0, 0, + 0, 350, 351, 1, 0, 0, 0, 351, 353, 1, 0, 0, 0, 352, 354, 5, 30, 0, 0, 353, + 352, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 358, + 5, 26, 0, 0, 356, 358, 3, 70, 35, 0, 357, 305, 1, 0, 0, 0, 357, 309, 1, + 0, 0, 0, 357, 317, 1, 0, 0, 0, 357, 321, 1, 0, 0, 0, 357, 329, 1, 0, 0, + 0, 357, 338, 1, 0, 0, 0, 357, 356, 1, 0, 0, 0, 358, 55, 1, 0, 0, 0, 359, + 364, 3, 40, 20, 0, 360, 361, 5, 30, 0, 0, 361, 363, 3, 40, 20, 0, 362, + 360, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 364, 365, + 1, 0, 0, 0, 365, 57, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 367, 372, 3, 68, + 34, 0, 368, 369, 5, 30, 0, 0, 369, 371, 3, 68, 34, 0, 370, 368, 1, 0, 0, + 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, + 59, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 376, 3, 62, 31, 0, 376, 377, + 5, 34, 0, 0, 377, 385, 3, 40, 20, 0, 378, 379, 5, 30, 0, 0, 379, 380, 3, + 62, 31, 0, 380, 381, 5, 34, 0, 0, 381, 382, 3, 40, 20, 0, 382, 384, 1, + 0, 0, 0, 383, 378, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, + 0, 385, 386, 1, 0, 0, 0, 386, 61, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, + 390, 5, 33, 0, 0, 389, 388, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 391, + 1, 0, 0, 0, 391, 392, 3, 66, 33, 0, 392, 63, 1, 0, 0, 0, 393, 394, 3, 68, + 34, 0, 394, 395, 5, 34, 0, 0, 395, 403, 3, 40, 20, 0, 396, 397, 5, 30, + 0, 0, 397, 398, 3, 68, 34, 0, 398, 399, 5, 34, 0, 0, 399, 400, 3, 40, 20, + 0, 400, 402, 1, 0, 0, 0, 401, 396, 1, 0, 0, 0, 402, 405, 1, 0, 0, 0, 403, + 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 65, 1, 0, 0, 0, 405, 403, 1, + 0, 0, 0, 406, 409, 5, 49, 0, 0, 407, 409, 5, 50, 0, 0, 408, 406, 1, 0, + 0, 0, 408, 407, 1, 0, 0, 0, 409, 67, 1, 0, 0, 0, 410, 412, 5, 33, 0, 0, + 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, + 414, 3, 40, 20, 0, 414, 69, 1, 0, 0, 0, 415, 417, 5, 31, 0, 0, 416, 415, + 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 430, 5, 45, + 0, 0, 419, 430, 5, 46, 0, 0, 420, 422, 5, 31, 0, 0, 421, 420, 1, 0, 0, + 0, 421, 422, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 430, 5, 44, 0, 0, 424, + 430, 5, 47, 0, 0, 425, 430, 5, 48, 0, 0, 426, 430, 5, 39, 0, 0, 427, 430, + 5, 40, 0, 0, 428, 430, 5, 41, 0, 0, 429, 416, 1, 0, 0, 0, 429, 419, 1, + 0, 0, 0, 429, 421, 1, 0, 0, 0, 429, 424, 1, 0, 0, 0, 429, 425, 1, 0, 0, + 0, 429, 426, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 428, 1, 0, 0, 0, 430, + 71, 1, 0, 0, 0, 55, 84, 95, 102, 107, 116, 119, 132, 137, 139, 155, 159, + 161, 166, 173, 181, 184, 191, 200, 203, 216, 223, 231, 242, 254, 256, 263, + 269, 272, 280, 288, 294, 299, 301, 305, 309, 314, 323, 326, 331, 334, 338, + 345, 350, 353, 357, 364, 372, 385, 389, 403, 408, 411, 416, 421, 429, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -295,47 +301,48 @@ const ( CommandsParserT__5 = 6 CommandsParserT__6 = 7 CommandsParserT__7 = 8 - CommandsParserCOMMAND = 9 - CommandsParserFLAG = 10 - CommandsParserARROW = 11 - CommandsParserEQUAL_ASSIGN = 12 - CommandsParserEQUALS = 13 - CommandsParserNOT_EQUALS = 14 - CommandsParserIN = 15 - CommandsParserLESS = 16 - CommandsParserLESS_EQUALS = 17 - CommandsParserGREATER_EQUALS = 18 - CommandsParserGREATER = 19 - CommandsParserLOGICAL_AND = 20 - CommandsParserLOGICAL_OR = 21 - CommandsParserLBRACKET = 22 - CommandsParserRPRACKET = 23 - CommandsParserLBRACE = 24 - CommandsParserRBRACE = 25 - CommandsParserLPAREN = 26 - CommandsParserRPAREN = 27 - CommandsParserDOT = 28 - CommandsParserCOMMA = 29 - CommandsParserMINUS = 30 - CommandsParserEXCLAM = 31 - CommandsParserQUESTIONMARK = 32 - CommandsParserCOLON = 33 - CommandsParserPLUS = 34 - CommandsParserSTAR = 35 - CommandsParserSLASH = 36 - CommandsParserPERCENT = 37 - CommandsParserCEL_TRUE = 38 - CommandsParserCEL_FALSE = 39 - CommandsParserNUL = 40 - CommandsParserWHITESPACE = 41 - CommandsParserCOMMENT = 42 - CommandsParserNUM_FLOAT = 43 - CommandsParserNUM_INT = 44 - CommandsParserNUM_UINT = 45 - CommandsParserSTRING = 46 - CommandsParserBYTES = 47 - CommandsParserIDENTIFIER = 48 - CommandsParserESC_IDENTIFIER = 49 + CommandsParserT__8 = 9 + CommandsParserCOMMAND = 10 + CommandsParserFLAG = 11 + CommandsParserARROW = 12 + CommandsParserEQUAL_ASSIGN = 13 + CommandsParserEQUALS = 14 + CommandsParserNOT_EQUALS = 15 + CommandsParserIN = 16 + CommandsParserLESS = 17 + CommandsParserLESS_EQUALS = 18 + CommandsParserGREATER_EQUALS = 19 + CommandsParserGREATER = 20 + CommandsParserLOGICAL_AND = 21 + CommandsParserLOGICAL_OR = 22 + CommandsParserLBRACKET = 23 + CommandsParserRPRACKET = 24 + CommandsParserLBRACE = 25 + CommandsParserRBRACE = 26 + CommandsParserLPAREN = 27 + CommandsParserRPAREN = 28 + CommandsParserDOT = 29 + CommandsParserCOMMA = 30 + CommandsParserMINUS = 31 + CommandsParserEXCLAM = 32 + CommandsParserQUESTIONMARK = 33 + CommandsParserCOLON = 34 + CommandsParserPLUS = 35 + CommandsParserSTAR = 36 + CommandsParserSLASH = 37 + CommandsParserPERCENT = 38 + CommandsParserCEL_TRUE = 39 + CommandsParserCEL_FALSE = 40 + CommandsParserNUL = 41 + CommandsParserWHITESPACE = 42 + CommandsParserCOMMENT = 43 + CommandsParserNUM_FLOAT = 44 + CommandsParserNUM_INT = 45 + CommandsParserNUM_UINT = 46 + CommandsParserSTRING = 47 + CommandsParserBYTES = 48 + CommandsParserIDENTIFIER = 49 + CommandsParserESC_IDENTIFIER = 50 ) // CommandsParser rules. @@ -2825,6 +2832,18 @@ type IExprCmdContext interface { // GetParser returns the parser. GetParser() antlr.Parser + // Get_FLAG returns the _FLAG token. + Get_FLAG() antlr.Token + + // Set_FLAG sets the _FLAG token. + Set_FLAG(antlr.Token) + + // GetFlags returns the flags token list. + GetFlags() []antlr.Token + + // SetFlags sets the flags token list. + SetFlags([]antlr.Token) + // GetE returns the e rule contexts. GetE() IExprContext @@ -2833,6 +2852,8 @@ type IExprCmdContext interface { // Getter signatures Expr() IExprContext + AllFLAG() []antlr.TerminalNode + FLAG(i int) antlr.TerminalNode // IsExprCmdContext differentiates from other interfaces. IsExprCmdContext() @@ -2841,6 +2862,8 @@ type IExprCmdContext interface { type ExprCmdContext struct { antlr.BaseParserRuleContext parser antlr.Parser + _FLAG antlr.Token + flags []antlr.Token e IExprContext } @@ -2871,6 +2894,14 @@ func NewExprCmdContext(parser antlr.Parser, parent antlr.ParserRuleContext, invo func (s *ExprCmdContext) GetParser() antlr.Parser { return s.parser } +func (s *ExprCmdContext) Get_FLAG() antlr.Token { return s._FLAG } + +func (s *ExprCmdContext) Set_FLAG(v antlr.Token) { s._FLAG = v } + +func (s *ExprCmdContext) GetFlags() []antlr.Token { return s.flags } + +func (s *ExprCmdContext) SetFlags(v []antlr.Token) { s.flags = v } + func (s *ExprCmdContext) GetE() IExprContext { return s.e } func (s *ExprCmdContext) SetE(v IExprContext) { s.e = v } @@ -2891,6 +2922,14 @@ func (s *ExprCmdContext) Expr() IExprContext { return t.(IExprContext) } +func (s *ExprCmdContext) AllFLAG() []antlr.TerminalNode { + return s.GetTokens(CommandsParserFLAG) +} + +func (s *ExprCmdContext) FLAG(i int) antlr.TerminalNode { + return s.GetToken(CommandsParserFLAG, i) +} + func (s *ExprCmdContext) GetRuleContext() antlr.RuleContext { return s } @@ -2927,7 +2966,7 @@ func (p *CommandsParser) ExprCmd() (localctx IExprCmdContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(151) + p.SetState(161) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2943,10 +2982,68 @@ func (p *CommandsParser) ExprCmd() (localctx IExprCmdContext) { goto errorExit } } + p.SetState(159) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + if _la == CommandsParserFLAG { + { + p.SetState(151) + + var _m = p.Match(CommandsParserFLAG) + + localctx.(*ExprCmdContext)._FLAG = _m + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + localctx.(*ExprCmdContext).flags = append(localctx.(*ExprCmdContext).flags, localctx.(*ExprCmdContext)._FLAG) + p.SetState(155) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + for _la == CommandsParserFLAG { + { + p.SetState(152) + + var _m = p.Match(CommandsParserFLAG) + + localctx.(*ExprCmdContext)._FLAG = _m + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + localctx.(*ExprCmdContext).flags = append(localctx.(*ExprCmdContext).flags, localctx.(*ExprCmdContext)._FLAG) + + p.SetState(157) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + } + { + p.SetState(158) + p.Match(CommandsParserT__8) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + } } { - p.SetState(153) + p.SetState(163) var _x = p.Expr() @@ -3111,7 +3208,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(156) + p.SetState(166) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3120,7 +3217,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { if _la == CommandsParserDOT { { - p.SetState(155) + p.SetState(165) var _m = p.Match(CommandsParserDOT) @@ -3133,7 +3230,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { } { - p.SetState(158) + p.SetState(168) var _m = p.Match(CommandsParserIDENTIFIER) @@ -3143,7 +3240,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { goto errorExit } } - p.SetState(163) + p.SetState(173) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3152,7 +3249,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { for _la == CommandsParserDOT { { - p.SetState(159) + p.SetState(169) p.Match(CommandsParserDOT) if p.HasError() { // Recognition error - abort rule @@ -3160,7 +3257,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { } } { - p.SetState(160) + p.SetState(170) var _m = p.Match(CommandsParserIDENTIFIER) @@ -3172,7 +3269,7 @@ func (p *CommandsParser) QualId() (localctx IQualIdContext) { } localctx.(*QualIdContext).qualifiers = append(localctx.(*QualIdContext).qualifiers, localctx.(*QualIdContext)._IDENTIFIER) - p.SetState(165) + p.SetState(175) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3306,14 +3403,14 @@ func (p *CommandsParser) StartType() (localctx IStartTypeContext) { p.EnterRule(localctx, 30, CommandsParserRULE_startType) p.EnterOuterAlt(localctx, 1) { - p.SetState(166) + p.SetState(176) var _x = p.Type_() localctx.(*StartTypeContext).t = _x } { - p.SetState(167) + p.SetState(177) p.Match(CommandsParserEOF) if p.HasError() { // Recognition error - abort rule @@ -3472,13 +3569,13 @@ func (p *CommandsParser) Type_() (localctx ITypeContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(169) + p.SetState(179) var _x = p.TypeId() localctx.(*TypeContext).id = _x } - p.SetState(171) + p.SetState(181) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3487,7 +3584,7 @@ func (p *CommandsParser) Type_() (localctx ITypeContext) { if _la == CommandsParserLPAREN { { - p.SetState(170) + p.SetState(180) var _x = p.TypeParamList() @@ -3659,7 +3756,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(174) + p.SetState(184) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3668,7 +3765,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { if _la == CommandsParserDOT { { - p.SetState(173) + p.SetState(183) var _m = p.Match(CommandsParserDOT) @@ -3681,7 +3778,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { } { - p.SetState(176) + p.SetState(186) var _lt = p.GetTokenStream().LT(1) @@ -3698,7 +3795,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { p.Consume() } } - p.SetState(181) + p.SetState(191) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3707,7 +3804,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { for _la == CommandsParserDOT { { - p.SetState(177) + p.SetState(187) p.Match(CommandsParserDOT) if p.HasError() { // Recognition error - abort rule @@ -3715,7 +3812,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { } } { - p.SetState(178) + p.SetState(188) var _m = p.Match(CommandsParserIDENTIFIER) @@ -3727,7 +3824,7 @@ func (p *CommandsParser) TypeId() (localctx ITypeIdContext) { } localctx.(*TypeIdContext).qualifiers = append(localctx.(*TypeIdContext).qualifiers, localctx.(*TypeIdContext)._IDENTIFIER) - p.SetState(183) + p.SetState(193) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3915,30 +4012,30 @@ func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(184) + p.SetState(194) p.Match(CommandsParserLPAREN) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(193) + p.SetState(203) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&282574756773888) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&565149513547776) != 0 { { - p.SetState(185) + p.SetState(195) var _x = p.Type_() localctx.(*TypeParamListContext)._type = _x } localctx.(*TypeParamListContext).types = append(localctx.(*TypeParamListContext).types, localctx.(*TypeParamListContext)._type) - p.SetState(190) + p.SetState(200) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3947,7 +4044,7 @@ func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) { for _la == CommandsParserCOMMA { { - p.SetState(186) + p.SetState(196) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -3955,7 +4052,7 @@ func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) { } } { - p.SetState(187) + p.SetState(197) var _x = p.Type_() @@ -3963,7 +4060,7 @@ func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) { } localctx.(*TypeParamListContext).types = append(localctx.(*TypeParamListContext).types, localctx.(*TypeParamListContext)._type) - p.SetState(192) + p.SetState(202) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3973,7 +4070,7 @@ func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) { } { - p.SetState(195) + p.SetState(205) p.Match(CommandsParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -4107,14 +4204,14 @@ func (p *CommandsParser) Start_() (localctx IStartContext) { p.EnterRule(localctx, 38, CommandsParserRULE_start) p.EnterOuterAlt(localctx, 1) { - p.SetState(197) + p.SetState(207) var _x = p.Expr() localctx.(*StartContext).e = _x } { - p.SetState(198) + p.SetState(208) p.Match(CommandsParserEOF) if p.HasError() { // Recognition error - abort rule @@ -4331,13 +4428,13 @@ func (p *CommandsParser) Expr() (localctx IExprContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(200) + p.SetState(210) var _x = p.ConditionalOr() localctx.(*ExprContext).e = _x } - p.SetState(206) + p.SetState(216) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4346,7 +4443,7 @@ func (p *CommandsParser) Expr() (localctx IExprContext) { if _la == CommandsParserQUESTIONMARK { { - p.SetState(201) + p.SetState(211) var _m = p.Match(CommandsParserQUESTIONMARK) @@ -4357,14 +4454,14 @@ func (p *CommandsParser) Expr() (localctx IExprContext) { } } { - p.SetState(202) + p.SetState(212) var _x = p.ConditionalOr() localctx.(*ExprContext).e1 = _x } { - p.SetState(203) + p.SetState(213) p.Match(CommandsParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -4372,7 +4469,7 @@ func (p *CommandsParser) Expr() (localctx IExprContext) { } } { - p.SetState(204) + p.SetState(214) var _x = p.Expr() @@ -4401,11 +4498,11 @@ type IConditionalOrContext interface { // GetParser returns the parser. GetParser() antlr.Parser - // GetS21 returns the s21 token. - GetS21() antlr.Token + // GetS22 returns the s22 token. + GetS22() antlr.Token - // SetS21 sets the s21 token. - SetS21(antlr.Token) + // SetS22 sets the s22 token. + SetS22(antlr.Token) // GetOps returns the ops token list. GetOps() []antlr.Token @@ -4445,7 +4542,7 @@ type ConditionalOrContext struct { antlr.BaseParserRuleContext parser antlr.Parser e IConditionalAndContext - s21 antlr.Token + s22 antlr.Token ops []antlr.Token _conditionalAnd IConditionalAndContext e1 []IConditionalAndContext @@ -4478,9 +4575,9 @@ func NewConditionalOrContext(parser antlr.Parser, parent antlr.ParserRuleContext func (s *ConditionalOrContext) GetParser() antlr.Parser { return s.parser } -func (s *ConditionalOrContext) GetS21() antlr.Token { return s.s21 } +func (s *ConditionalOrContext) GetS22() antlr.Token { return s.s22 } -func (s *ConditionalOrContext) SetS21(v antlr.Token) { s.s21 = v } +func (s *ConditionalOrContext) SetS22(v antlr.Token) { s.s22 = v } func (s *ConditionalOrContext) GetOps() []antlr.Token { return s.ops } @@ -4584,13 +4681,13 @@ func (p *CommandsParser) ConditionalOr() (localctx IConditionalOrContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(208) + p.SetState(218) var _x = p.ConditionalAnd() localctx.(*ConditionalOrContext).e = _x } - p.SetState(213) + p.SetState(223) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4599,19 +4696,19 @@ func (p *CommandsParser) ConditionalOr() (localctx IConditionalOrContext) { for _la == CommandsParserLOGICAL_OR { { - p.SetState(209) + p.SetState(219) var _m = p.Match(CommandsParserLOGICAL_OR) - localctx.(*ConditionalOrContext).s21 = _m + localctx.(*ConditionalOrContext).s22 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*ConditionalOrContext).ops = append(localctx.(*ConditionalOrContext).ops, localctx.(*ConditionalOrContext).s21) + localctx.(*ConditionalOrContext).ops = append(localctx.(*ConditionalOrContext).ops, localctx.(*ConditionalOrContext).s22) { - p.SetState(210) + p.SetState(220) var _x = p.ConditionalAnd() @@ -4619,7 +4716,7 @@ func (p *CommandsParser) ConditionalOr() (localctx IConditionalOrContext) { } localctx.(*ConditionalOrContext).e1 = append(localctx.(*ConditionalOrContext).e1, localctx.(*ConditionalOrContext)._conditionalAnd) - p.SetState(215) + p.SetState(225) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4647,11 +4744,11 @@ type IConditionalAndContext interface { // GetParser returns the parser. GetParser() antlr.Parser - // GetS20 returns the s20 token. - GetS20() antlr.Token + // GetS21 returns the s21 token. + GetS21() antlr.Token - // SetS20 sets the s20 token. - SetS20(antlr.Token) + // SetS21 sets the s21 token. + SetS21(antlr.Token) // GetOps returns the ops token list. GetOps() []antlr.Token @@ -4691,7 +4788,7 @@ type ConditionalAndContext struct { antlr.BaseParserRuleContext parser antlr.Parser e IRelationContext - s20 antlr.Token + s21 antlr.Token ops []antlr.Token _relation IRelationContext e1 []IRelationContext @@ -4724,9 +4821,9 @@ func NewConditionalAndContext(parser antlr.Parser, parent antlr.ParserRuleContex func (s *ConditionalAndContext) GetParser() antlr.Parser { return s.parser } -func (s *ConditionalAndContext) GetS20() antlr.Token { return s.s20 } +func (s *ConditionalAndContext) GetS21() antlr.Token { return s.s21 } -func (s *ConditionalAndContext) SetS20(v antlr.Token) { s.s20 = v } +func (s *ConditionalAndContext) SetS21(v antlr.Token) { s.s21 = v } func (s *ConditionalAndContext) GetOps() []antlr.Token { return s.ops } @@ -4830,13 +4927,13 @@ func (p *CommandsParser) ConditionalAnd() (localctx IConditionalAndContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(216) + p.SetState(226) var _x = p.relation(0) localctx.(*ConditionalAndContext).e = _x } - p.SetState(221) + p.SetState(231) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4845,19 +4942,19 @@ func (p *CommandsParser) ConditionalAnd() (localctx IConditionalAndContext) { for _la == CommandsParserLOGICAL_AND { { - p.SetState(217) + p.SetState(227) var _m = p.Match(CommandsParserLOGICAL_AND) - localctx.(*ConditionalAndContext).s20 = _m + localctx.(*ConditionalAndContext).s21 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*ConditionalAndContext).ops = append(localctx.(*ConditionalAndContext).ops, localctx.(*ConditionalAndContext).s20) + localctx.(*ConditionalAndContext).ops = append(localctx.(*ConditionalAndContext).ops, localctx.(*ConditionalAndContext).s21) { - p.SetState(218) + p.SetState(228) var _x = p.relation(0) @@ -4865,7 +4962,7 @@ func (p *CommandsParser) ConditionalAnd() (localctx IConditionalAndContext) { } localctx.(*ConditionalAndContext).e1 = append(localctx.(*ConditionalAndContext).e1, localctx.(*ConditionalAndContext)._relation) - p.SetState(223) + p.SetState(233) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5086,17 +5183,17 @@ func (p *CommandsParser) relation(_p int) (localctx IRelationContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(225) + p.SetState(235) p.calc(0) } p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1)) - p.SetState(232) + p.SetState(242) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 20, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -5108,14 +5205,14 @@ func (p *CommandsParser) relation(_p int) (localctx IRelationContext) { _prevctx = localctx localctx = NewRelationContext(p, _parentctx, _parentState) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_relation) - p.SetState(227) + p.SetState(237) if !(p.Precpred(p.GetParserRuleContext(), 1)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", "")) goto errorExit } { - p.SetState(228) + p.SetState(238) var _lt = p.GetTokenStream().LT(1) @@ -5123,7 +5220,7 @@ func (p *CommandsParser) relation(_p int) (localctx IRelationContext) { _la = p.GetTokenStream().LA(1) - if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1040384) != 0) { + if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&2080768) != 0) { var _ri = p.GetErrorHandler().RecoverInline(p) localctx.(*RelationContext).op = _ri @@ -5133,17 +5230,17 @@ func (p *CommandsParser) relation(_p int) (localctx IRelationContext) { } } { - p.SetState(229) + p.SetState(239) p.relation(2) } } - p.SetState(234) + p.SetState(244) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 20, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -5352,17 +5449,17 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(236) + p.SetState(246) p.Unary() } p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1)) - p.SetState(246) + p.SetState(256) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -5372,24 +5469,24 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { p.TriggerExitRuleEvent() } _prevctx = localctx - p.SetState(244) + p.SetState(254) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 21, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 23, p.GetParserRuleContext()) { case 1: localctx = NewCalcContext(p, _parentctx, _parentState) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_calc) - p.SetState(238) + p.SetState(248) if !(p.Precpred(p.GetParserRuleContext(), 2)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", "")) goto errorExit } { - p.SetState(239) + p.SetState(249) var _lt = p.GetTokenStream().LT(1) @@ -5397,7 +5494,7 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { _la = p.GetTokenStream().LA(1) - if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&240518168576) != 0) { + if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&481036337152) != 0) { var _ri = p.GetErrorHandler().RecoverInline(p) localctx.(*CalcContext).op = _ri @@ -5407,21 +5504,21 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { } } { - p.SetState(240) + p.SetState(250) p.calc(3) } case 2: localctx = NewCalcContext(p, _parentctx, _parentState) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_calc) - p.SetState(241) + p.SetState(251) if !(p.Precpred(p.GetParserRuleContext(), 1)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", "")) goto errorExit } { - p.SetState(242) + p.SetState(252) var _lt = p.GetTokenStream().LT(1) @@ -5439,7 +5536,7 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { } } { - p.SetState(243) + p.SetState(253) p.calc(2) } @@ -5448,12 +5545,12 @@ func (p *CommandsParser) calc(_p int) (localctx ICalcContext) { } } - p.SetState(248) + p.SetState(258) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 22, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -5528,7 +5625,7 @@ func (s *UnaryContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) type LogicalNotContext struct { UnaryContext - s31 antlr.Token + s32 antlr.Token ops []antlr.Token } @@ -5542,9 +5639,9 @@ func NewLogicalNotContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *Log return p } -func (s *LogicalNotContext) GetS31() antlr.Token { return s.s31 } +func (s *LogicalNotContext) GetS32() antlr.Token { return s.s32 } -func (s *LogicalNotContext) SetS31(v antlr.Token) { s.s31 = v } +func (s *LogicalNotContext) SetS32(v antlr.Token) { s.s32 = v } func (s *LogicalNotContext) GetOps() []antlr.Token { return s.ops } @@ -5658,7 +5755,7 @@ func (s *MemberExprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { type NegateContext struct { UnaryContext - s30 antlr.Token + s31 antlr.Token ops []antlr.Token } @@ -5672,9 +5769,9 @@ func NewNegateContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NegateC return p } -func (s *NegateContext) GetS30() antlr.Token { return s.s30 } +func (s *NegateContext) GetS31() antlr.Token { return s.s31 } -func (s *NegateContext) SetS30(v antlr.Token) { s.s30 = v } +func (s *NegateContext) SetS31(v antlr.Token) { s.s31 = v } func (s *NegateContext) GetOps() []antlr.Token { return s.ops } @@ -5737,25 +5834,25 @@ func (p *CommandsParser) Unary() (localctx IUnaryContext) { var _alt int - p.SetState(262) + p.SetState(272) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 25, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 27, p.GetParserRuleContext()) { case 1: localctx = NewMemberExprContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(249) + p.SetState(259) p.member(0) } case 2: localctx = NewLogicalNotContext(p, localctx) p.EnterOuterAlt(localctx, 2) - p.SetState(251) + p.SetState(261) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5764,19 +5861,19 @@ func (p *CommandsParser) Unary() (localctx IUnaryContext) { for ok := true; ok; ok = _la == CommandsParserEXCLAM { { - p.SetState(250) + p.SetState(260) var _m = p.Match(CommandsParserEXCLAM) - localctx.(*LogicalNotContext).s31 = _m + localctx.(*LogicalNotContext).s32 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*LogicalNotContext).ops = append(localctx.(*LogicalNotContext).ops, localctx.(*LogicalNotContext).s31) + localctx.(*LogicalNotContext).ops = append(localctx.(*LogicalNotContext).ops, localctx.(*LogicalNotContext).s32) - p.SetState(253) + p.SetState(263) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5784,14 +5881,14 @@ func (p *CommandsParser) Unary() (localctx IUnaryContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(255) + p.SetState(265) p.member(0) } case 3: localctx = NewNegateContext(p, localctx) p.EnterOuterAlt(localctx, 3) - p.SetState(257) + p.SetState(267) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5801,32 +5898,32 @@ func (p *CommandsParser) Unary() (localctx IUnaryContext) { switch _alt { case 1: { - p.SetState(256) + p.SetState(266) var _m = p.Match(CommandsParserMINUS) - localctx.(*NegateContext).s30 = _m + localctx.(*NegateContext).s31 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s30) + localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s31) default: p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) goto errorExit } - p.SetState(259) + p.SetState(269) p.GetErrorHandler().Sync(p) - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 26, p.GetParserRuleContext()) if p.HasError() { goto errorExit } } { - p.SetState(261) + p.SetState(271) p.member(0) } @@ -6282,17 +6379,17 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { _prevctx = localctx { - p.SetState(265) + p.SetState(275) p.Primary() } p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1)) - p.SetState(291) + p.SetState(301) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 30, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 32, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -6302,24 +6399,24 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { p.TriggerExitRuleEvent() } _prevctx = localctx - p.SetState(289) + p.SetState(299) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 31, p.GetParserRuleContext()) { case 1: localctx = NewSelectContext(p, NewMemberContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member) - p.SetState(267) + p.SetState(277) if !(p.Precpred(p.GetParserRuleContext(), 3)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", "")) goto errorExit } { - p.SetState(268) + p.SetState(278) var _m = p.Match(CommandsParserDOT) @@ -6329,7 +6426,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { goto errorExit } } - p.SetState(270) + p.SetState(280) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6338,7 +6435,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { if _la == CommandsParserQUESTIONMARK { { - p.SetState(269) + p.SetState(279) var _m = p.Match(CommandsParserQUESTIONMARK) @@ -6351,7 +6448,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } { - p.SetState(272) + p.SetState(282) var _x = p.EscapeIdent() @@ -6361,14 +6458,14 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { case 2: localctx = NewMemberCallContext(p, NewMemberContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member) - p.SetState(273) + p.SetState(283) if !(p.Precpred(p.GetParserRuleContext(), 2)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", "")) goto errorExit } { - p.SetState(274) + p.SetState(284) var _m = p.Match(CommandsParserDOT) @@ -6379,7 +6476,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } } { - p.SetState(275) + p.SetState(285) var _m = p.Match(CommandsParserIDENTIFIER) @@ -6390,7 +6487,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } } { - p.SetState(276) + p.SetState(286) var _m = p.Match(CommandsParserLPAREN) @@ -6400,16 +6497,16 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { goto errorExit } } - p.SetState(278) + p.SetState(288) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&556081583489024) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1112163166978048) != 0 { { - p.SetState(277) + p.SetState(287) var _x = p.ExprList() @@ -6418,7 +6515,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } { - p.SetState(280) + p.SetState(290) p.Match(CommandsParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -6429,14 +6526,14 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { case 3: localctx = NewIndexContext(p, NewMemberContext(p, _parentctx, _parentState)) p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member) - p.SetState(281) + p.SetState(291) if !(p.Precpred(p.GetParserRuleContext(), 1)) { p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", "")) goto errorExit } { - p.SetState(282) + p.SetState(292) var _m = p.Match(CommandsParserLBRACKET) @@ -6446,7 +6543,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { goto errorExit } } - p.SetState(284) + p.SetState(294) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6455,7 +6552,7 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { if _la == CommandsParserQUESTIONMARK { { - p.SetState(283) + p.SetState(293) var _m = p.Match(CommandsParserQUESTIONMARK) @@ -6468,14 +6565,14 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } { - p.SetState(286) + p.SetState(296) var _x = p.Expr() localctx.(*IndexContext).index = _x } { - p.SetState(287) + p.SetState(297) p.Match(CommandsParserRPRACKET) if p.HasError() { // Recognition error - abort rule @@ -6488,12 +6585,12 @@ func (p *CommandsParser) member(_p int) (localctx IMemberContext) { } } - p.SetState(293) + p.SetState(303) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 30, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 32, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -6910,7 +7007,7 @@ type CreateMessageContext struct { leadingDot antlr.Token _IDENTIFIER antlr.Token ids []antlr.Token - s28 antlr.Token + s29 antlr.Token ops []antlr.Token op antlr.Token entries IFieldInitializerListContext @@ -6930,7 +7027,7 @@ func (s *CreateMessageContext) GetLeadingDot() antlr.Token { return s.leadingDot func (s *CreateMessageContext) Get_IDENTIFIER() antlr.Token { return s._IDENTIFIER } -func (s *CreateMessageContext) GetS28() antlr.Token { return s.s28 } +func (s *CreateMessageContext) GetS29() antlr.Token { return s.s29 } func (s *CreateMessageContext) GetOp() antlr.Token { return s.op } @@ -6938,7 +7035,7 @@ func (s *CreateMessageContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v } func (s *CreateMessageContext) Set_IDENTIFIER(v antlr.Token) { s._IDENTIFIER = v } -func (s *CreateMessageContext) SetS28(v antlr.Token) { s.s28 = v } +func (s *CreateMessageContext) SetS29(v antlr.Token) { s.s29 = v } func (s *CreateMessageContext) SetOp(v antlr.Token) { s.op = v } @@ -7121,17 +7218,17 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { p.EnterRule(localctx, 54, CommandsParserRULE_primary) var _la int - p.SetState(347) + p.SetState(357) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 42, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 44, p.GetParserRuleContext()) { case 1: localctx = NewIdentContext(p, localctx) p.EnterOuterAlt(localctx, 1) - p.SetState(295) + p.SetState(305) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7140,7 +7237,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserDOT { { - p.SetState(294) + p.SetState(304) var _m = p.Match(CommandsParserDOT) @@ -7153,7 +7250,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(297) + p.SetState(307) var _m = p.Match(CommandsParserIDENTIFIER) @@ -7167,7 +7264,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { case 2: localctx = NewGlobalCallContext(p, localctx) p.EnterOuterAlt(localctx, 2) - p.SetState(299) + p.SetState(309) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7176,7 +7273,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserDOT { { - p.SetState(298) + p.SetState(308) var _m = p.Match(CommandsParserDOT) @@ -7189,7 +7286,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(301) + p.SetState(311) var _m = p.Match(CommandsParserIDENTIFIER) @@ -7201,7 +7298,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(302) + p.SetState(312) var _m = p.Match(CommandsParserLPAREN) @@ -7211,16 +7308,16 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { goto errorExit } } - p.SetState(304) + p.SetState(314) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&556081583489024) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1112163166978048) != 0 { { - p.SetState(303) + p.SetState(313) var _x = p.ExprList() @@ -7229,7 +7326,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(306) + p.SetState(316) p.Match(CommandsParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -7241,7 +7338,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { localctx = NewNestedContext(p, localctx) p.EnterOuterAlt(localctx, 3) { - p.SetState(307) + p.SetState(317) p.Match(CommandsParserLPAREN) if p.HasError() { // Recognition error - abort rule @@ -7249,14 +7346,14 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } } { - p.SetState(308) + p.SetState(318) var _x = p.Expr() localctx.(*NestedContext).e = _x } { - p.SetState(309) + p.SetState(319) p.Match(CommandsParserRPAREN) if p.HasError() { // Recognition error - abort rule @@ -7268,7 +7365,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { localctx = NewCreateListContext(p, localctx) p.EnterOuterAlt(localctx, 4) { - p.SetState(311) + p.SetState(321) var _m = p.Match(CommandsParserLBRACKET) @@ -7278,16 +7375,16 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { goto errorExit } } - p.SetState(313) + p.SetState(323) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&556085878456320) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1112171756912640) != 0 { { - p.SetState(312) + p.SetState(322) var _x = p.ListInit() @@ -7295,7 +7392,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } } - p.SetState(316) + p.SetState(326) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7304,7 +7401,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserCOMMA { { - p.SetState(315) + p.SetState(325) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7314,7 +7411,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(318) + p.SetState(328) p.Match(CommandsParserRPRACKET) if p.HasError() { // Recognition error - abort rule @@ -7326,7 +7423,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { localctx = NewCreateStructContext(p, localctx) p.EnterOuterAlt(localctx, 5) { - p.SetState(319) + p.SetState(329) var _m = p.Match(CommandsParserLBRACE) @@ -7336,16 +7433,16 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { goto errorExit } } - p.SetState(321) + p.SetState(331) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&556085878456320) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1112171756912640) != 0 { { - p.SetState(320) + p.SetState(330) var _x = p.MapInitializerList() @@ -7353,7 +7450,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } } - p.SetState(324) + p.SetState(334) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7362,7 +7459,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserCOMMA { { - p.SetState(323) + p.SetState(333) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7372,7 +7469,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(326) + p.SetState(336) p.Match(CommandsParserRBRACE) if p.HasError() { // Recognition error - abort rule @@ -7383,7 +7480,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { case 6: localctx = NewCreateMessageContext(p, localctx) p.EnterOuterAlt(localctx, 6) - p.SetState(328) + p.SetState(338) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7392,7 +7489,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserDOT { { - p.SetState(327) + p.SetState(337) var _m = p.Match(CommandsParserDOT) @@ -7405,7 +7502,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(330) + p.SetState(340) var _m = p.Match(CommandsParserIDENTIFIER) @@ -7416,7 +7513,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } } localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER) - p.SetState(335) + p.SetState(345) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7425,19 +7522,19 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { for _la == CommandsParserDOT { { - p.SetState(331) + p.SetState(341) var _m = p.Match(CommandsParserDOT) - localctx.(*CreateMessageContext).s28 = _m + localctx.(*CreateMessageContext).s29 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*CreateMessageContext).ops = append(localctx.(*CreateMessageContext).ops, localctx.(*CreateMessageContext).s28) + localctx.(*CreateMessageContext).ops = append(localctx.(*CreateMessageContext).ops, localctx.(*CreateMessageContext).s29) { - p.SetState(332) + p.SetState(342) var _m = p.Match(CommandsParserIDENTIFIER) @@ -7449,7 +7546,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER) - p.SetState(337) + p.SetState(347) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7457,7 +7554,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(338) + p.SetState(348) var _m = p.Match(CommandsParserLBRACE) @@ -7467,16 +7564,16 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { goto errorExit } } - p.SetState(340) + p.SetState(350) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&844429225099264) != 0 { + if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1688858450198528) != 0 { { - p.SetState(339) + p.SetState(349) var _x = p.FieldInitializerList() @@ -7484,7 +7581,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } } - p.SetState(343) + p.SetState(353) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7493,7 +7590,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { if _la == CommandsParserCOMMA { { - p.SetState(342) + p.SetState(352) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7503,7 +7600,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { } { - p.SetState(345) + p.SetState(355) p.Match(CommandsParserRBRACE) if p.HasError() { // Recognition error - abort rule @@ -7515,7 +7612,7 @@ func (p *CommandsParser) Primary() (localctx IPrimaryContext) { localctx = NewConstantLiteralContext(p, localctx) p.EnterOuterAlt(localctx, 7) { - p.SetState(346) + p.SetState(356) p.Literal() } @@ -7693,14 +7790,14 @@ func (p *CommandsParser) ExprList() (localctx IExprListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(349) + p.SetState(359) var _x = p.Expr() localctx.(*ExprListContext)._expr = _x } localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr) - p.SetState(354) + p.SetState(364) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7709,7 +7806,7 @@ func (p *CommandsParser) ExprList() (localctx IExprListContext) { for _la == CommandsParserCOMMA { { - p.SetState(350) + p.SetState(360) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7717,7 +7814,7 @@ func (p *CommandsParser) ExprList() (localctx IExprListContext) { } } { - p.SetState(351) + p.SetState(361) var _x = p.Expr() @@ -7725,7 +7822,7 @@ func (p *CommandsParser) ExprList() (localctx IExprListContext) { } localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr) - p.SetState(356) + p.SetState(366) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7903,26 +8000,26 @@ func (p *CommandsParser) ListInit() (localctx IListInitContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(357) + p.SetState(367) var _x = p.OptExpr() localctx.(*ListInitContext)._optExpr = _x } localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr) - p.SetState(362) + p.SetState(372) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 44, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 46, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(358) + p.SetState(368) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -7930,7 +8027,7 @@ func (p *CommandsParser) ListInit() (localctx IListInitContext) { } } { - p.SetState(359) + p.SetState(369) var _x = p.OptExpr() @@ -7939,12 +8036,12 @@ func (p *CommandsParser) ListInit() (localctx IListInitContext) { localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr) } - p.SetState(364) + p.SetState(374) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 44, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 46, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -7970,11 +8067,11 @@ type IFieldInitializerListContext interface { // GetParser returns the parser. GetParser() antlr.Parser - // GetS33 returns the s33 token. - GetS33() antlr.Token + // GetS34 returns the s34 token. + GetS34() antlr.Token - // SetS33 sets the s33 token. - SetS33(antlr.Token) + // SetS34 sets the s34 token. + SetS34(antlr.Token) // GetCols returns the cols token list. GetCols() []antlr.Token @@ -8025,7 +8122,7 @@ type FieldInitializerListContext struct { parser antlr.Parser _optField IOptFieldContext fields []IOptFieldContext - s33 antlr.Token + s34 antlr.Token cols []antlr.Token _expr IExprContext values []IExprContext @@ -8058,9 +8155,9 @@ func NewFieldInitializerListContext(parser antlr.Parser, parent antlr.ParserRule func (s *FieldInitializerListContext) GetParser() antlr.Parser { return s.parser } -func (s *FieldInitializerListContext) GetS33() antlr.Token { return s.s33 } +func (s *FieldInitializerListContext) GetS34() antlr.Token { return s.s34 } -func (s *FieldInitializerListContext) SetS33(v antlr.Token) { s.s33 = v } +func (s *FieldInitializerListContext) SetS34(v antlr.Token) { s.s34 = v } func (s *FieldInitializerListContext) GetCols() []antlr.Token { return s.cols } @@ -8217,7 +8314,7 @@ func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListC p.EnterOuterAlt(localctx, 1) { - p.SetState(365) + p.SetState(375) var _x = p.OptField() @@ -8225,38 +8322,38 @@ func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListC } localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField) { - p.SetState(366) + p.SetState(376) var _m = p.Match(CommandsParserCOLON) - localctx.(*FieldInitializerListContext).s33 = _m + localctx.(*FieldInitializerListContext).s34 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s33) + localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s34) { - p.SetState(367) + p.SetState(377) var _x = p.Expr() localctx.(*FieldInitializerListContext)._expr = _x } localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr) - p.SetState(375) + p.SetState(385) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 45, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 47, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(368) + p.SetState(378) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -8264,7 +8361,7 @@ func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListC } } { - p.SetState(369) + p.SetState(379) var _x = p.OptField() @@ -8272,19 +8369,19 @@ func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListC } localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField) { - p.SetState(370) + p.SetState(380) var _m = p.Match(CommandsParserCOLON) - localctx.(*FieldInitializerListContext).s33 = _m + localctx.(*FieldInitializerListContext).s34 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s33) + localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s34) { - p.SetState(371) + p.SetState(381) var _x = p.Expr() @@ -8293,12 +8390,12 @@ func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListC localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr) } - p.SetState(377) + p.SetState(387) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 45, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 47, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -8431,7 +8528,7 @@ func (p *CommandsParser) OptField() (localctx IOptFieldContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(379) + p.SetState(389) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8440,7 +8537,7 @@ func (p *CommandsParser) OptField() (localctx IOptFieldContext) { if _la == CommandsParserQUESTIONMARK { { - p.SetState(378) + p.SetState(388) var _m = p.Match(CommandsParserQUESTIONMARK) @@ -8453,7 +8550,7 @@ func (p *CommandsParser) OptField() (localctx IOptFieldContext) { } { - p.SetState(381) + p.SetState(391) p.EscapeIdent() } @@ -8477,11 +8574,11 @@ type IMapInitializerListContext interface { // GetParser returns the parser. GetParser() antlr.Parser - // GetS33 returns the s33 token. - GetS33() antlr.Token + // GetS34 returns the s34 token. + GetS34() antlr.Token - // SetS33 sets the s33 token. - SetS33(antlr.Token) + // SetS34 sets the s34 token. + SetS34(antlr.Token) // GetCols returns the cols token list. GetCols() []antlr.Token @@ -8532,7 +8629,7 @@ type MapInitializerListContext struct { parser antlr.Parser _optExpr IOptExprContext keys []IOptExprContext - s33 antlr.Token + s34 antlr.Token cols []antlr.Token _expr IExprContext values []IExprContext @@ -8565,9 +8662,9 @@ func NewMapInitializerListContext(parser antlr.Parser, parent antlr.ParserRuleCo func (s *MapInitializerListContext) GetParser() antlr.Parser { return s.parser } -func (s *MapInitializerListContext) GetS33() antlr.Token { return s.s33 } +func (s *MapInitializerListContext) GetS34() antlr.Token { return s.s34 } -func (s *MapInitializerListContext) SetS33(v antlr.Token) { s.s33 = v } +func (s *MapInitializerListContext) SetS34(v antlr.Token) { s.s34 = v } func (s *MapInitializerListContext) GetCols() []antlr.Token { return s.cols } @@ -8724,7 +8821,7 @@ func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListConte p.EnterOuterAlt(localctx, 1) { - p.SetState(383) + p.SetState(393) var _x = p.OptExpr() @@ -8732,38 +8829,38 @@ func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListConte } localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr) { - p.SetState(384) + p.SetState(394) var _m = p.Match(CommandsParserCOLON) - localctx.(*MapInitializerListContext).s33 = _m + localctx.(*MapInitializerListContext).s34 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s33) + localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s34) { - p.SetState(385) + p.SetState(395) var _x = p.Expr() localctx.(*MapInitializerListContext)._expr = _x } localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr) - p.SetState(393) + p.SetState(403) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 47, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 49, p.GetParserRuleContext()) if p.HasError() { goto errorExit } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(386) + p.SetState(396) p.Match(CommandsParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -8771,7 +8868,7 @@ func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListConte } } { - p.SetState(387) + p.SetState(397) var _x = p.OptExpr() @@ -8779,19 +8876,19 @@ func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListConte } localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr) { - p.SetState(388) + p.SetState(398) var _m = p.Match(CommandsParserCOLON) - localctx.(*MapInitializerListContext).s33 = _m + localctx.(*MapInitializerListContext).s34 = _m if p.HasError() { // Recognition error - abort rule goto errorExit } } - localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s33) + localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s34) { - p.SetState(389) + p.SetState(399) var _x = p.Expr() @@ -8800,12 +8897,12 @@ func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListConte localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr) } - p.SetState(395) + p.SetState(405) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 47, p.GetParserRuleContext()) + _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 49, p.GetParserRuleContext()) if p.HasError() { goto errorExit } @@ -8979,7 +9076,7 @@ func (s *SimpleIdentifierContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CommandsParser) EscapeIdent() (localctx IEscapeIdentContext) { localctx = NewEscapeIdentContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 66, CommandsParserRULE_escapeIdent) - p.SetState(398) + p.SetState(408) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8990,7 +9087,7 @@ func (p *CommandsParser) EscapeIdent() (localctx IEscapeIdentContext) { localctx = NewSimpleIdentifierContext(p, localctx) p.EnterOuterAlt(localctx, 1) { - p.SetState(396) + p.SetState(406) var _m = p.Match(CommandsParserIDENTIFIER) @@ -9005,7 +9102,7 @@ func (p *CommandsParser) EscapeIdent() (localctx IEscapeIdentContext) { localctx = NewEscapedIdentifierContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(397) + p.SetState(407) var _m = p.Match(CommandsParserESC_IDENTIFIER) @@ -9159,7 +9256,7 @@ func (p *CommandsParser) OptExpr() (localctx IOptExprContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(401) + p.SetState(411) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9168,7 +9265,7 @@ func (p *CommandsParser) OptExpr() (localctx IOptExprContext) { if _la == CommandsParserQUESTIONMARK { { - p.SetState(400) + p.SetState(410) var _m = p.Match(CommandsParserQUESTIONMARK) @@ -9181,7 +9278,7 @@ func (p *CommandsParser) OptExpr() (localctx IOptExprContext) { } { - p.SetState(403) + p.SetState(413) var _x = p.Expr() @@ -9670,17 +9767,17 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { p.EnterRule(localctx, 70, CommandsParserRULE_literal) var _la int - p.SetState(419) + p.SetState(429) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 52, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 54, p.GetParserRuleContext()) { case 1: localctx = NewIntContext(p, localctx) p.EnterOuterAlt(localctx, 1) - p.SetState(406) + p.SetState(416) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9689,7 +9786,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { if _la == CommandsParserMINUS { { - p.SetState(405) + p.SetState(415) var _m = p.Match(CommandsParserMINUS) @@ -9702,7 +9799,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { } { - p.SetState(408) + p.SetState(418) var _m = p.Match(CommandsParserNUM_INT) @@ -9717,7 +9814,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewUintContext(p, localctx) p.EnterOuterAlt(localctx, 2) { - p.SetState(409) + p.SetState(419) var _m = p.Match(CommandsParserNUM_UINT) @@ -9731,7 +9828,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { case 3: localctx = NewDoubleContext(p, localctx) p.EnterOuterAlt(localctx, 3) - p.SetState(411) + p.SetState(421) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9740,7 +9837,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { if _la == CommandsParserMINUS { { - p.SetState(410) + p.SetState(420) var _m = p.Match(CommandsParserMINUS) @@ -9753,7 +9850,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { } { - p.SetState(413) + p.SetState(423) var _m = p.Match(CommandsParserNUM_FLOAT) @@ -9768,7 +9865,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewStringContext(p, localctx) p.EnterOuterAlt(localctx, 4) { - p.SetState(414) + p.SetState(424) var _m = p.Match(CommandsParserSTRING) @@ -9783,7 +9880,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewBytesContext(p, localctx) p.EnterOuterAlt(localctx, 5) { - p.SetState(415) + p.SetState(425) var _m = p.Match(CommandsParserBYTES) @@ -9798,7 +9895,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewBoolTrueContext(p, localctx) p.EnterOuterAlt(localctx, 6) { - p.SetState(416) + p.SetState(426) var _m = p.Match(CommandsParserCEL_TRUE) @@ -9813,7 +9910,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewBoolFalseContext(p, localctx) p.EnterOuterAlt(localctx, 7) { - p.SetState(417) + p.SetState(427) var _m = p.Match(CommandsParserCEL_FALSE) @@ -9828,7 +9925,7 @@ func (p *CommandsParser) Literal() (localctx ILiteralContext) { localctx = NewNullContext(p, localctx) p.EnterOuterAlt(localctx, 8) { - p.SetState(418) + p.SetState(428) var _m = p.Match(CommandsParserNUL) diff --git a/repl/parser/commands_test.go b/repl/parser/commands_test.go index fb8f840c0..e8b75c5a0 100644 --- a/repl/parser/commands_test.go +++ b/repl/parser/commands_test.go @@ -60,7 +60,7 @@ func TestAccept(t *testing.T) { "%exit", "%let id = 2", "%arbitrary", - "%arbitrary --flag -alt_flag 'string arg'", + "%arbitrary --flag --another-flag 'string arg'", " ", "%let y : int = [1, 2, 3]", "%let fn (y : int) : int -> y + 10", diff --git a/repl/parser/commands_visitor.go b/repl/parser/commands_visitor.go index 433ab064f..c26354efe 100644 --- a/repl/parser/commands_visitor.go +++ b/repl/parser/commands_visitor.go @@ -1,4 +1,4 @@ -// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. +// Code generated from ./repl/parser/Commands.g4 by ANTLR 4.13.1. DO NOT EDIT. package parser // Commands import "github.com/antlr4-go/antlr/v4"