diff --git a/pkg/frontend/mysql_cmd_executor.go b/pkg/frontend/mysql_cmd_executor.go index 7a62fd5842929..0b17fabef1c89 100644 --- a/pkg/frontend/mysql_cmd_executor.go +++ b/pkg/frontend/mysql_cmd_executor.go @@ -1312,7 +1312,7 @@ func doPrepareString(ses *Session, execCtx *ExecCtx, st *tree.PrepareString) (*P return nil, err } - stmts, err := mysql.Parse(execCtx.reqCtx, st.Sql, v.(int64)) + stmts, err := mysql.ParseWithSQLMode(execCtx.reqCtx, st.Sql, v.(int64), sessionSQLModeForParser(ses)) if err != nil { return nil, err } @@ -2508,7 +2508,227 @@ func parseSql(execCtx *ExecCtx, p *mysql.MySQLParser) (stmts []tree.Statement, e lctn = vv } } - return p.Parse(execCtx.reqCtx, execCtx.input.getSql(), lctn) + sql := execCtx.input.getSql() + initialSQLMode := sessionSQLModeForParser(execCtx.ses) + stmts, err = p.ParseWithSQLMode(execCtx.reqCtx, sql, lctn, initialSQLMode) + if err != nil { + incrementalStmts, incrementalErr := parseStatementsWithStaticSQLModeSet(execCtx, p, sql, lctn, initialSQLMode) + if incrementalErr == nil && hasStaticSQLModeSet(incrementalStmts) { + return incrementalStmts, nil + } + if incrementalErr == nil { + freeStatements(incrementalStmts) + } + return nil, err + } + if !hasStaticSQLModeSet(stmts) { + return stmts, nil + } + freeStatements(stmts) + return parseStatementsWithStaticSQLModeSet(execCtx, p, sql, lctn, initialSQLMode) +} + +func sessionSQLModeForParser(ses FeSession) string { + v, err := ses.GetSessionSysVar("sql_mode") + if err != nil { + return "" + } + mode, ok := v.(string) + if !ok { + return "" + } + return mysql.SessionSQLModeForParser(mode) +} + +func parseStatementsWithStaticSQLModeSet( + execCtx *ExecCtx, + p *mysql.MySQLParser, + sql string, + lctn int64, + initialSQLMode string, +) ([]tree.Statement, error) { + remaining := sql + parserSQLMode := initialSQLMode + stmts := make([]tree.Statement, 0) + for { + stmt, rest, hasStmt, err := parseFirstStatementWithSQLMode(execCtx, p, remaining, lctn, parserSQLMode) + if err != nil { + freeStatements(stmts) + return nil, err + } + remaining = rest + if !hasStmt { + if remaining == "" { + break + } + continue + } + stmts = append(stmts, stmt) + if nextSQLMode, ok := staticSQLModeSetValue(stmt); ok { + parserSQLMode = nextSQLMode + } + if remaining == "" { + break + } + } + if len(stmts) == 0 { + return []tree.Statement{&tree.EmptyStmt{}}, nil + } + return stmts, nil +} + +func parseFirstStatementWithSQLMode( + execCtx *ExecCtx, + p *mysql.MySQLParser, + sql string, + lctn int64, + parserSQLMode string, +) (tree.Statement, string, bool, error) { + if sql == "" { + return nil, "", false, nil + } + scanner := mysql.NewScannerWithSQLMode(dialect.MYSQL, sql, mysql.ParseSQLModeFlags(parserSQLMode)) + defer mysql.PutScanner(scanner) + for scanner.Pos < len(sql) { + typ, _ := scanner.Scan() + switch typ { + case int(';'): + fragment := sql[:scanner.Pos-1] + rest := sql[scanner.Pos:] + if !fragmentHasStatement(fragment, parserSQLMode) { + return nil, rest, false, nil + } + stmt, err := parseSingleStatementWithSQLMode(execCtx, p, fragment, lctn, parserSQLMode) + if err == nil { + return stmt, rest, true, nil + } + case mysql.EofChar(): + return parseLastStatementWithSQLMode(execCtx, p, sql, lctn, parserSQLMode) + case mysql.LEX_ERROR: + return parseLastStatementWithSQLMode(execCtx, p, sql, lctn, parserSQLMode) + } + } + return parseLastStatementWithSQLMode(execCtx, p, sql, lctn, parserSQLMode) +} + +func parseLastStatementWithSQLMode( + execCtx *ExecCtx, + p *mysql.MySQLParser, + sql string, + lctn int64, + parserSQLMode string, +) (tree.Statement, string, bool, error) { + if !fragmentHasStatement(sql, parserSQLMode) { + return nil, "", false, nil + } + stmt, err := parseSingleStatementWithSQLMode(execCtx, p, sql, lctn, parserSQLMode) + if err != nil { + return nil, "", false, err + } + return stmt, "", true, nil +} + +func parseSingleStatementWithSQLMode( + execCtx *ExecCtx, + p *mysql.MySQLParser, + sql string, + lctn int64, + parserSQLMode string, +) (tree.Statement, error) { + parsed, err := p.ParseWithSQLMode(execCtx.reqCtx, sql, lctn, parserSQLMode) + if err != nil { + return nil, err + } + if len(parsed) != 1 { + freeStatements(parsed) + return nil, moerr.NewParseError(execCtx.reqCtx, "syntax error, or too many sql to parse") + } + return parsed[0], nil +} + +func fragmentHasStatement(fragment string, parserSQLMode string) bool { + if strings.TrimSpace(fragment) == "" { + return false + } + scanner := mysql.NewScannerWithSQLMode(dialect.MYSQL, fragment, mysql.ParseSQLModeFlags(parserSQLMode)) + defer mysql.PutScanner(scanner) + typ, _ := scanner.Scan() + return typ != 0 && typ != mysql.EofChar() +} + +func hasStaticSQLModeSet(stmts []tree.Statement) bool { + for _, stmt := range stmts { + if _, ok := staticSQLModeSetValue(stmt); ok { + return true + } + } + return false +} + +func staticSQLModeSetValue(stmt tree.Statement) (string, bool) { + setVar, ok := stmt.(*tree.SetVar) + if !ok { + return "", false + } + + var parserSQLMode string + found := false + for _, assignment := range setVar.Assignments { + if assignment == nil || !assignment.System || assignment.Global || !strings.EqualFold(assignment.Name, "sql_mode") { + continue + } + value, ok := staticSQLModeExprValue(assignment.Value) + if !ok { + continue + } + converted, err := gSysVarsDefs["sql_mode"].GetType().Convert(value) + if err != nil { + continue + } + mode, ok := converted.(string) + if !ok { + continue + } + parserSQLMode = mysql.SessionSQLModeForParser(mode) + found = true + } + return parserSQLMode, found +} + +func staticSQLModeExprValue(expr tree.Expr) (interface{}, bool) { + switch v := expr.(type) { + case *tree.DefaultVal: + return gSysVarsDefs["sql_mode"].Default, true + case *tree.UnresolvedName: + return v.ColName(), true + case *tree.NumVal: + switch v.Kind() { + case tree.Str: + return v.String(), true + case tree.Int: + if i, ok := v.Int64(); ok { + return i, true + } + if u, ok := v.Uint64(); ok { + return u, true + } + case tree.Float: + if f, ok := v.Float64(); ok { + return f, true + } + case tree.Bool: + return v.Bool(), true + } + } + return nil, false +} + +func freeStatements(stmts []tree.Statement) { + for _, stmt := range stmts { + if stmt != nil { + stmt.Free() + } + } } func incTransactionCounter(tenant string, tenantId uint32) { diff --git a/pkg/frontend/mysql_cmd_executor_test.go b/pkg/frontend/mysql_cmd_executor_test.go index 5a896a073a1c1..8d3b887088926 100644 --- a/pkg/frontend/mysql_cmd_executor_test.go +++ b/pkg/frontend/mysql_cmd_executor_test.go @@ -1253,6 +1253,159 @@ func Test_HandlePrepareStmt(t *testing.T) { }) } +func Test_HandlePrepareStringUsesSessionSQLMode(t *testing.T) { + ctx := defines.AttachAccountId(context.TODO(), catalog.System_Account) + setSessionAlloc("", NewLeakCheckAllocator()) + ctrl := gomock.NewController(t) + defer ctrl.Finish() + ec := newTestExecCtx(ctx, ctrl) + + runTestHandle("handlePrepareStringUsesSessionSQLMode", t, func(ses *Session) error { + require.NoError(t, ses.SetSessionSysVar(ctx, "sql_mode", "PIPES_AS_CONCAT")) + ec.resper = ses.respr + preStmt, err := handlePrepareString(ses, ec, tree.NewPrepareString("stmt_sql_mode", "select 'a'||'b'")) + if err != nil { + return err + } + defer preStmt.Close() + requirePreparedSelectConcat(t, preStmt) + return nil + }) +} + +func Test_HandlePrepareVarUsesSessionSQLMode(t *testing.T) { + ctx := defines.AttachAccountId(context.TODO(), catalog.System_Account) + setSessionAlloc("", NewLeakCheckAllocator()) + ctrl := gomock.NewController(t) + defer ctrl.Finish() + ec := newTestExecCtx(ctx, ctrl) + + runTestHandle("handlePrepareVarUsesSessionSQLMode", t, func(ses *Session) error { + require.NoError(t, ses.SetSessionSysVar(ctx, "sql_mode", "PIPES_AS_CONCAT")) + require.NoError(t, ses.SetUserDefinedVar("stmt_var_sql", "select 'a'||'b'", "set @stmt_var_sql = 'select ''a''||''b'''")) + ec.resper = ses.respr + preStmt, err := handlePrepareVar(ses, ec, tree.NewPrepareVar("stmt_sql_mode_var", tree.NewVarExpr("stmt_var_sql", false, false, nil))) + if err != nil { + return err + } + defer preStmt.Close() + requirePreparedSelectConcat(t, preStmt) + return nil + }) +} + +func requirePreparedSelectConcat(t *testing.T, preStmt *PrepareStmt) { + t.Helper() + selectStmt, ok := preStmt.PrepareStmt.(*tree.Select) + require.True(t, ok) + selectClause, ok := selectStmt.Select.(*tree.SelectClause) + require.True(t, ok) + require.Len(t, selectClause.Exprs, 1) + fn, ok := selectClause.Exprs[0].Expr.(*tree.FuncExpr) + require.True(t, ok) + name, ok := fn.Func.FunctionReference.(*tree.UnresolvedName) + require.True(t, ok) + require.Equal(t, "concat", name.ColName()) +} + +func Test_ParseSqlUsesSQLModeSetEarlierInSamePacket(t *testing.T) { + ctx := defines.AttachAccountId(context.TODO(), catalog.System_Account) + setPu("", config.NewParameterUnit(&config.FrontendParameters{}, nil, nil, nil)) + ses := NewSession(ctx, "", &testMysqlWriter{}, nil) + + t.Run("ansi quotes", func(t *testing.T) { + stmts := parseSQLModePacket(t, ctx, ses, `set sql_mode=ANSI_QUOTES; select "c"`) + defer freeStatements(stmts) + require.Len(t, stmts, 2) + + selectStmt, ok := stmts[1].(*tree.Select) + require.True(t, ok) + selectClause, ok := selectStmt.Select.(*tree.SelectClause) + require.True(t, ok) + require.Len(t, selectClause.Exprs, 1) + name, ok := selectClause.Exprs[0].Expr.(*tree.UnresolvedName) + require.True(t, ok) + require.Equal(t, "c", name.ColName()) + }) + + t.Run("real as float", func(t *testing.T) { + require.NoError(t, ses.SetSessionSysVar(ctx, "sql_mode", "")) + stmts := parseSQLModePacket(t, ctx, ses, "set sql_mode=REAL_AS_FLOAT; create table t(r real)") + defer freeStatements(stmts) + require.Len(t, stmts, 2) + + createStmt, ok := stmts[1].(*tree.CreateTable) + require.True(t, ok) + require.Len(t, createStmt.Defs, 1) + col, ok := createStmt.Defs[0].(*tree.ColumnTableDef) + require.True(t, ok) + require.Equal(t, uint32(defines.MYSQL_TYPE_FLOAT), col.Type.(*tree.T).InternalType.Oid) + }) + + t.Run("no backslash escapes", func(t *testing.T) { + stmts := parseSQLModePacket(t, ctx, ses, `set sql_mode=NO_BACKSLASH_ESCAPES; select 'a\'; select 1`) + defer freeStatements(stmts) + require.Len(t, stmts, 3) + + selectStmt, ok := stmts[1].(*tree.Select) + require.True(t, ok) + selectClause, ok := selectStmt.Select.(*tree.SelectClause) + require.True(t, ok) + require.Len(t, selectClause.Exprs, 1) + lit, ok := selectClause.Exprs[0].Expr.(*tree.NumVal) + require.True(t, ok) + require.Equal(t, `a\`, lit.String()) + }) + + t.Run("disable no backslash escapes", func(t *testing.T) { + require.NoError(t, ses.SetSessionSysVar(ctx, "sql_mode", "NO_BACKSLASH_ESCAPES")) + execCtx := &ExecCtx{ + reqCtx: ctx, + ses: ses, + input: &UserInput{ + sql: `set sql_mode=''; select 'a\'; select 1`, + }, + } + _, err := parseSql(execCtx, ses.GetMySQLParser()) + require.Error(t, err) + }) + + t.Run("compound statement keeps internal semicolons", func(t *testing.T) { + stmts := parseSQLModePacket(t, ctx, ses, `set sql_mode=ANSI_QUOTES; begin select if(1, 2, 3); end; select "c"`) + defer freeStatements(stmts) + require.Len(t, stmts, 3) + + compoundStmt, ok := stmts[1].(*tree.CompoundStmt) + require.True(t, ok) + require.NotEmpty(t, compoundStmt.Stmts) + require.NotNil(t, compoundStmt.Stmts[0]) + + selectStmt, ok := stmts[2].(*tree.Select) + require.True(t, ok) + selectClause, ok := selectStmt.Select.(*tree.SelectClause) + require.True(t, ok) + require.Len(t, selectClause.Exprs, 1) + name, ok := selectClause.Exprs[0].Expr.(*tree.UnresolvedName) + require.True(t, ok) + require.Equal(t, "c", name.ColName()) + }) +} + +func parseSQLModePacket(t *testing.T, ctx context.Context, ses *Session, sql string) []tree.Statement { + t.Helper() + require.NoError(t, ses.SetSessionSysVar(ctx, "sql_mode", "")) + execCtx := &ExecCtx{ + reqCtx: ctx, + ses: ses, + input: &UserInput{ + sql: sql, + }, + } + stmts, err := parseSql(execCtx, ses.GetMySQLParser()) + require.NoError(t, err) + return stmts +} + func Test_HandleDeallocate(t *testing.T) { ctx := defines.AttachAccountId(context.TODO(), catalog.System_Account) stmt, err := parsers.ParseOne(ctx, dialect.MYSQL, "deallocate Prepare stmt1", 1) diff --git a/pkg/frontend/stmt_kind.go b/pkg/frontend/stmt_kind.go index 52ab93a7e3069..d406117fd0e83 100644 --- a/pkg/frontend/stmt_kind.go +++ b/pkg/frontend/stmt_kind.go @@ -210,13 +210,11 @@ func statementCanBeExecutedInUncommittedTransaction( if err != nil { v = int64(1) } - preStmt, err := mysql.ParseOne(ctx, st.Sql, v.(int64)) - defer func() { - preStmt.Free() - }() + preStmt, err := mysql.ParseOneWithSQLMode(ctx, st.Sql, v.(int64), sessionSQLModeForParser(ses)) if err != nil { return false, err } + defer preStmt.Free() return statementCanBeExecutedInUncommittedTransaction(ctx, ses, preStmt) case *tree.Execute: preName := string(st.Name) diff --git a/pkg/sql/parsers/dialect/mysql/mysql_lexer.go b/pkg/sql/parsers/dialect/mysql/mysql_lexer.go index 3bb0582351e33..a7730667316d9 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_lexer.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_lexer.go @@ -34,8 +34,13 @@ type MySQLParser struct { } func (p *MySQLParser) Parse(ctx context.Context, sql string, lower int64) ([]tree.Statement, error) { + return p.ParseWithSQLMode(ctx, sql, lower, "") +} + +func (p *MySQLParser) ParseWithSQLMode(ctx context.Context, sql string, lower int64, sqlMode string) ([]tree.Statement, error) { p.scanner.setSql(sql) - p.lexer.setScanner(&p.scanner, lower) + p.scanner.setSQLMode(ParseSQLModeFlags(sqlMode)) + p.lexer.setScanner(&p.scanner, lower, ParseSQLModeFlags(sqlMode)) /* The following can potentially save some memory allocation, but it exposes too much @@ -71,7 +76,11 @@ func (p *MySQLParser) Parse(ctx context.Context, sql string, lower int64) ([]tre } func Parse(ctx context.Context, sql string, lower int64) ([]tree.Statement, error) { - lexer := NewLexer(dialect.MYSQL, sql, lower) + return ParseWithSQLMode(ctx, sql, lower, "") +} + +func ParseWithSQLMode(ctx context.Context, sql string, lower int64, sqlMode string) ([]tree.Statement, error) { + lexer := NewLexerWithSQLMode(dialect.MYSQL, sql, lower, ParseSQLModeFlags(sqlMode)) defer PutScanner(lexer.scanner) if yyParse(lexer) != 0 { for _, s := range lexer.stmts { @@ -95,7 +104,11 @@ func Parse(ctx context.Context, sql string, lower int64) ([]tree.Statement, erro } func ParseOne(ctx context.Context, sql string, lower int64) (tree.Statement, error) { - lexer := NewLexer(dialect.MYSQL, sql, lower) + return ParseOneWithSQLMode(ctx, sql, lower, "") +} + +func ParseOneWithSQLMode(ctx context.Context, sql string, lower int64, sqlMode string) (tree.Statement, error) { + lexer := NewLexerWithSQLMode(dialect.MYSQL, sql, lower, ParseSQLModeFlags(sqlMode)) defer PutScanner(lexer.scanner) if yyParse(lexer) != 0 { for _, s := range lexer.stmts { @@ -115,6 +128,7 @@ type Lexer struct { paramIndex int lower int64 lastToken int + sqlMode SQLModeFlags } // reservedKeywordsAfterAS lists tokens that represent reserved keywords @@ -129,19 +143,31 @@ var reservedKeywordsAfterAS = map[int]bool{ } func NewLexer(dialectType dialect.DialectType, sql string, lower int64) *Lexer { + return NewLexerWithSQLMode(dialectType, sql, lower, 0) +} + +func NewLexerWithSQLMode(dialectType dialect.DialectType, sql string, lower int64, sqlMode SQLModeFlags) *Lexer { + scanner := NewScanner(dialectType, sql) + scanner.setSQLMode(sqlMode) return &Lexer{ - scanner: NewScanner(dialectType, sql), + scanner: scanner, paramIndex: 0, lower: lower, + sqlMode: sqlMode, } } -func (l *Lexer) setScanner(s *Scanner, lower int64) { +func (l *Lexer) setScanner(s *Scanner, lower int64, sqlMode SQLModeFlags) { l.scanner = s l.stmts = nil l.paramIndex = 0 l.lower = lower l.lastToken = 0 + l.sqlMode = sqlMode +} + +func (l *Lexer) HasSQLMode(flag SQLModeFlag) bool { + return l.sqlMode.Has(flag) } func (l *Lexer) GetParamIndex() int { diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index 4f1cedf575aef..5e28a5b2713d6 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -1536,7 +1536,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:14561 +//line mysql_sql.y:14567 //line yacctab:1 var yyExca = [...]int{ @@ -1579,22 +1579,22 @@ var yyExca = [...]int{ 506, 201, -2, 2139, -1, 892, - 88, 1895, + 88, 1896, -2, 2331, -1, 893, - 88, 1913, + 88, 1914, -2, 2300, -1, 897, - 88, 1914, + 88, 1915, -2, 2330, -1, 941, - 88, 1816, + 88, 1817, -2, 2544, -1, 942, - 88, 1817, + 88, 1818, -2, 2543, -1, 943, - 88, 1818, + 88, 1819, -2, 2533, -1, 944, 88, 2506, @@ -1624,70 +1624,70 @@ var yyExca = [...]int{ 88, 2514, -2, 2548, -1, 953, - 88, 1891, + 88, 1892, -2, 2369, -1, 954, - 88, 1892, + 88, 1893, -2, 2119, -1, 955, - 88, 1893, + 88, 1894, -2, 2378, -1, 956, - 88, 1894, + 88, 1895, -2, 2132, -1, 958, - 88, 1897, + 88, 1898, -2, 2141, -1, 960, - 88, 1899, + 88, 1900, -2, 2403, -1, 962, - 88, 1901, + 88, 1902, -2, 2163, -1, 964, - 88, 1903, + 88, 1904, -2, 2415, -1, 965, - 88, 1904, + 88, 1905, -2, 2414, -1, 966, - 88, 1905, + 88, 1906, -2, 2229, -1, 967, - 88, 1906, + 88, 1907, -2, 2326, -1, 970, - 88, 1909, + 88, 1910, -2, 2426, -1, 972, - 88, 1911, + 88, 1912, -2, 2429, -1, 973, - 88, 1912, + 88, 1913, -2, 2431, -1, 974, - 88, 1915, + 88, 1916, -2, 2438, -1, 975, - 88, 1916, + 88, 1917, -2, 2309, -1, 976, - 88, 1917, + 88, 1918, -2, 2356, -1, 977, - 88, 1918, + 88, 1919, -2, 2320, -1, 978, - 88, 1919, + 88, 1920, -2, 2346, -1, 989, - 88, 1792, + 88, 1793, -2, 2538, -1, 990, - 88, 1793, + 88, 1794, -2, 2539, -1, 991, - 88, 1794, + 88, 1795, -2, 2540, -1, 1107, 528, 728, @@ -1708,10 +1708,10 @@ var yyExca = [...]int{ -1, 1512, 24, 914, -2, 857, - -1, 1895, + -1, 1894, 88, 1966, -2, 2328, - -1, 1896, + -1, 1895, 88, 1967, -2, 2329, -1, 2590, @@ -2060,532 +2060,532 @@ var yyAct = [...]int{ 227, 3, 4428, 4430, 3394, 2148, 1928, 3867, 736, 2677, 3925, 1638, 3638, 4133, 1302, 3176, 4120, 750, 760, 769, 3016, 1878, 769, 3323, 4091, 3815, 4125, 3587, 3545, 2619, - 3888, 3570, 2925, 2276, 1943, 3324, 2314, 3574, 3322, 3851, - 3226, 787, 3292, 225, 3658, 3647, 832, 2332, 3890, 3319, - 3097, 3640, 3685, 2356, 1170, 70, 1947, 1924, 3807, 2422, - 70, 2397, 3736, 2794, 1925, 2832, 782, 766, 2680, 3354, - 3714, 3125, 3552, 2167, 2932, 3550, 3535, 3646, 3310, 2311, - 778, 2637, 2627, 3546, 3598, 2628, 2620, 3543, 2055, 3140, - 37, 1781, 826, 1592, 3498, 1788, 2906, 3548, 2554, 831, - 3547, 2553, 1792, 2393, 2361, 1793, 2456, 1030, 1797, 2418, - 2307, 2795, 1598, 1809, 2417, 2280, 2777, 3113, 3228, 2772, + 3888, 3570, 2925, 2276, 1943, 2314, 3574, 3324, 3322, 3851, + 154, 787, 3292, 225, 3226, 3647, 832, 2332, 3890, 3658, + 3097, 3685, 3640, 3319, 1170, 70, 1947, 2356, 3807, 2422, + 70, 2397, 1924, 2794, 1925, 2832, 782, 766, 2680, 3736, + 3354, 3125, 3714, 2167, 3552, 3535, 3550, 2932, 3310, 2311, + 778, 3646, 2627, 3546, 3598, 2628, 2620, 2637, 2055, 3543, + 37, 1781, 826, 1592, 3548, 3140, 2906, 3547, 2554, 2553, + 3498, 2393, 1792, 1809, 2361, 1793, 2456, 1030, 831, 2418, + 1788, 2417, 1797, 2795, 2307, 2280, 2777, 3113, 3228, 2772, 3208, 3107, 2199, 750, 1070, 2678, 3156, 2636, 236, 8, - 2607, 6, 70, 1225, 2277, 1705, 2118, 235, 7, 2830, - 1155, 1561, 1869, 1942, 2419, 2623, 2626, 2390, 735, 2452, + 2607, 6, 70, 1225, 2830, 1705, 2277, 235, 7, 1942, + 2118, 1561, 1869, 1598, 2419, 2623, 2626, 2390, 735, 2452, 835, 1721, 1754, 1690, 1684, 2598, 717, 1613, 2673, 833, - 2166, 2139, 825, 2556, 844, 1911, 1860, 1935, 2601, 1318, - 2378, 775, 1761, 2113, 1868, 1539, 1154, 1689, 1686, 2802, - 240, 1874, 240, 154, 1215, 1216, 2117, 751, 1069, 1744, - 716, 750, 993, 1948, 784, 2773, 25, 1639, 226, 768, - 1534, 1195, 1047, 1627, 1623, 218, 1118, 785, 1067, 26, - 1063, 222, 1053, 17, 10, 1510, 1455, 15, 24, 2426, - 1648, 4440, 781, 1102, 1647, 28, 1381, 1382, 1383, 1380, - 1381, 1382, 1383, 1380, 1243, 1381, 1382, 1383, 1380, 1609, - 4318, 3061, 995, 2804, 996, 2079, 3061, 3061, 1212, 3906, - 3771, 3617, 3015, 3508, 3507, 3410, 3409, 2436, 1535, 1303, - 4074, 3870, 16, 1304, 3747, 2966, 2912, 14, 2910, 2909, - 2907, 1536, 2068, 1768, 1764, 1207, 742, 34, 1208, 70, - 224, 773, 754, 1211, 737, 1213, 2552, 1529, 1605, 1606, - 1607, 1688, 4405, 1495, 70, 764, 70, 2826, 4058, 3509, - 3505, 1208, 2567, 765, 2559, 1208, 2075, 1538, 1819, 3493, - 1169, 3491, 3490, 3488, 4664, 1664, 5, 1805, 2062, 1525, - 1766, 4016, 3390, 3053, 3051, 3388, 2366, 4177, 1303, 1381, - 1382, 1383, 1380, 4586, 4585, 3761, 4413, 1243, 4257, 4251, - 761, 1017, 1014, 4019, 3753, 763, 1381, 1382, 1383, 1380, - 2389, 4432, 1449, 8, 2622, 762, 1206, 994, 2930, 3462, - 2752, 4063, 7, 1926, 1927, 3533, 2385, 3055, 1261, 1262, - 1228, 2718, 4684, 4426, 1005, 4061, 4661, 4265, 4424, 4304, - 4263, 3842, 816, 2993, 2574, 818, 4491, 1729, 1546, 1544, - 817, 1251, 1255, 1257, 1259, 1264, 1543, 1269, 1265, 1266, - 1267, 1268, 3837, 1167, 1246, 1247, 1248, 1249, 1226, 1227, - 1252, 3536, 1229, 1540, 1231, 1232, 1233, 1234, 1230, 1235, + 2166, 2139, 825, 2556, 1911, 844, 1860, 1935, 2601, 1318, + 2378, 775, 1761, 2113, 1868, 24, 1154, 1539, 1689, 2802, + 240, 1874, 240, 2117, 1215, 1216, 751, 2773, 1069, 1744, + 993, 750, 1686, 1948, 784, 1639, 25, 226, 1047, 26, + 1534, 785, 1627, 1195, 1623, 218, 1118, 1155, 1067, 17, + 222, 1063, 1053, 10, 1510, 1455, 768, 34, 2426, 2804, + 1648, 4440, 781, 1102, 1647, 15, 1381, 4318, 1382, 1380, + 1381, 3061, 1382, 1380, 1243, 28, 995, 996, 1381, 1609, + 1382, 1380, 3061, 2079, 1212, 3771, 3061, 3906, 3508, 3617, + 3507, 3410, 3015, 3409, 2436, 1535, 1303, 716, 4074, 3870, + 1167, 1304, 16, 3747, 2966, 2912, 1536, 14, 2910, 2909, + 2907, 2068, 1764, 1768, 1207, 1208, 742, 754, 224, 70, + 737, 2552, 1529, 1211, 1688, 1213, 1605, 1606, 1607, 1495, + 4405, 2826, 1017, 4058, 70, 762, 70, 3509, 773, 3505, + 2567, 1208, 2559, 764, 1303, 1208, 2075, 1538, 3493, 3490, + 1169, 3491, 4664, 765, 1819, 3053, 3051, 1805, 1664, 5, + 2062, 1525, 1766, 4016, 3390, 1381, 3388, 1382, 1380, 1381, + 2366, 1382, 1380, 4586, 4585, 4177, 3761, 1243, 4413, 4257, + 761, 1014, 4251, 4019, 3753, 763, 2389, 1449, 4432, 2622, + 994, 2930, 3488, 8, 3462, 2752, 1206, 3533, 2385, 3055, + 2718, 4684, 7, 1926, 1927, 4426, 1005, 4661, 1261, 1262, + 1228, 4265, 4424, 4304, 4263, 3842, 2993, 2574, 4491, 1729, + 1540, 1546, 1544, 1543, 3837, 3536, 2588, 2259, 1018, 1015, + 1171, 1251, 1255, 1257, 1259, 1264, 780, 1269, 1265, 1266, + 1267, 1268, 3460, 2434, 1246, 1247, 1248, 1249, 1226, 1227, + 1252, 1588, 1229, 2089, 1231, 1232, 1233, 1234, 1230, 1235, 1236, 1237, 1238, 1239, 1242, 1244, 1240, 1241, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1254, 1256, 1258, 1260, - 1263, 2588, 2259, 1018, 1817, 1015, 1171, 1570, 3460, 780, - 1588, 1165, 2434, 1166, 3317, 1660, 1243, 1012, 1661, 2089, - 827, 1261, 1262, 1228, 2602, 1816, 816, 1217, 2087, 818, - 4306, 1568, 2809, 2822, 817, 2808, 1378, 1245, 2810, 2823, - 1006, 3362, 3363, 1553, 1251, 1255, 1257, 1259, 1264, 1983, - 1269, 1265, 1266, 1267, 1268, 2324, 3361, 1246, 1247, 1248, - 1249, 1226, 1227, 1252, 3492, 1229, 3489, 1231, 1232, 1233, + 1263, 2087, 3317, 2602, 2822, 1165, 1166, 4306, 2160, 1660, + 1817, 4063, 1661, 1378, 3362, 3363, 1243, 2324, 2291, 2292, + 827, 1261, 1262, 1228, 2823, 4061, 1553, 1217, 2094, 2095, + 2809, 1816, 1006, 2808, 3361, 2290, 2810, 1245, 183, 223, + 182, 214, 184, 1604, 1251, 1255, 1257, 1259, 1264, 1983, + 1269, 1265, 1266, 1267, 1268, 2758, 2757, 1246, 1247, 1248, + 1249, 1226, 1227, 1252, 3492, 1229, 1018, 1231, 1232, 1233, 1234, 1230, 1235, 1236, 1237, 1238, 1239, 1242, 1244, 1240, 1241, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1254, - 1256, 1258, 1260, 1263, 1140, 1861, 2291, 2292, 1865, 2160, - 183, 223, 182, 214, 184, 1018, 1015, 1674, 2290, 1663, - 984, 827, 983, 985, 986, 1604, 987, 988, 1351, 2758, - 1358, 1353, 1864, 1359, 1767, 1765, 2094, 2095, 2757, 1691, - 1245, 1693, 1643, 1635, 3515, 2531, 1642, 1645, 1646, 3056, - 1261, 1262, 1228, 3633, 1371, 3631, 1127, 1645, 1646, 1354, - 2926, 1361, 4046, 183, 223, 182, 214, 184, 2181, 3088, - 1877, 1376, 3084, 1251, 1255, 1257, 1259, 1264, 1569, 1269, - 1265, 1266, 1267, 1268, 219, 2710, 1246, 1247, 1248, 1249, - 1226, 1227, 1252, 1164, 1229, 1163, 1231, 1232, 1233, 1234, + 1256, 1258, 1260, 1263, 1140, 3489, 1691, 3515, 1693, 1635, + 1570, 2926, 219, 1663, 816, 1015, 940, 818, 1840, 1645, + 1646, 827, 817, 984, 1127, 983, 985, 986, 2181, 987, + 988, 3633, 4592, 4593, 1568, 1371, 1767, 1765, 3631, 1358, + 1245, 3056, 1359, 1643, 1012, 2531, 1877, 1642, 1645, 1646, + 1261, 1262, 1228, 1376, 3343, 1164, 2786, 2787, 2158, 3088, + 1163, 3084, 4435, 183, 223, 182, 214, 184, 4435, 4549, + 1361, 4046, 4434, 1251, 1255, 1257, 1259, 1264, 4433, 1269, + 1265, 1266, 1267, 1268, 1016, 2710, 1246, 1247, 1248, 1249, + 1226, 1227, 1252, 4618, 1229, 4561, 1231, 1232, 1233, 1234, 1230, 1235, 1236, 1237, 1238, 1239, 1242, 1244, 1240, 1241, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1254, 1256, - 1258, 1260, 1263, 1016, 1013, 750, 3343, 219, 2786, 2787, - 750, 4435, 1306, 4434, 3086, 4435, 4549, 3081, 4433, 183, - 223, 182, 214, 184, 3109, 1866, 4618, 4065, 4416, 2158, - 3395, 769, 769, 1332, 3110, 750, 4592, 4593, 1009, 1245, - 4434, 4548, 4433, 4547, 1133, 1131, 4561, 1132, 1347, 1863, - 1356, 2781, 2785, 2786, 2787, 2782, 2791, 2783, 2789, 4656, - 4657, 2784, 4537, 2790, 3756, 766, 766, 766, 4537, 3054, - 3396, 4540, 3397, 779, 1349, 1136, 4254, 2435, 1662, 3756, - 2947, 1307, 2090, 3108, 3400, 1881, 2302, 1352, 1355, 3085, - 1528, 2088, 3082, 219, 2438, 4451, 3247, 940, 3774, 1840, - 1218, 1677, 2298, 1424, 1571, 3116, 1305, 4045, 4439, 2078, - 1348, 2308, 1357, 1010, 4062, 4047, 3852, 1856, 2430, 3566, - 2322, 2323, 4419, 4420, 4421, 4422, 3311, 4317, 3777, 4102, - 70, 70, 70, 3427, 3060, 1253, 1304, 3859, 1304, 1633, - 2767, 1059, 816, 4308, 4309, 818, 1304, 3423, 1141, 2760, - 817, 1306, 2596, 183, 223, 182, 214, 184, 747, 183, - 223, 182, 214, 184, 3094, 2751, 1338, 2754, 1862, 1169, - 3953, 3411, 2159, 1369, 1370, 3408, 1374, 1375, 2753, 4563, - 2461, 3763, 3421, 1363, 1316, 1373, 1364, 210, 1011, 3564, - 2425, 1350, 1458, 1360, 1137, 2957, 1208, 2716, 1208, 1346, - 1208, 1208, 4017, 3389, 2763, 2764, 1208, 1208, 3305, 2257, - 2762, 4314, 4099, 4059, 1366, 1304, 2827, 3572, 3571, 1825, - 3560, 3063, 2770, 2437, 1368, 1310, 734, 219, 4591, 1321, - 1324, 3969, 3087, 219, 2908, 3083, 3635, 4264, 1253, 1880, - 1879, 3660, 3661, 3561, 3562, 1459, 3965, 3659, 1169, 3854, - 4245, 1769, 4381, 1655, 1658, 1659, 1139, 1749, 1223, 3563, - 1545, 1542, 1167, 4443, 4295, 181, 212, 221, 213, 1531, - 1533, 994, 1537, 4128, 4075, 1299, 2441, 2443, 2444, 1296, - 819, 820, 821, 822, 823, 4064, 1536, 3052, 1557, 211, - 1330, 1331, 1560, 764, 764, 764, 4307, 1567, 1326, 1536, - 1325, 765, 765, 765, 1335, 1295, 1508, 1166, 1818, 1513, - 1541, 4273, 3662, 4274, 3663, 3665, 3664, 3876, 1420, 1421, - 1422, 1423, 1337, 3740, 3585, 750, 750, 3112, 2696, 1070, - 1425, 1008, 3599, 1362, 2676, 2699, 4344, 1138, 761, 761, - 761, 1167, 4336, 763, 763, 763, 2258, 4471, 3558, 4466, - 3157, 1552, 3819, 762, 762, 762, 3821, 1019, 1309, 1311, - 1314, 1223, 2609, 1645, 1646, 1645, 1646, 1253, 3572, 3315, - 767, 771, 770, 1367, 819, 820, 821, 822, 823, 4276, - 1887, 1890, 1891, 4273, 2604, 4274, 1135, 3958, 2774, 3499, - 4456, 1888, 2698, 3910, 750, 1365, 1673, 3630, 4473, 1679, - 1634, 4268, 4479, 750, 4067, 4068, 4069, 717, 717, 4275, - 3202, 183, 223, 182, 214, 184, 3917, 717, 717, 1315, - 3833, 1716, 1716, 767, 750, 2781, 2785, 2786, 2787, 2782, - 2791, 2783, 2789, 1641, 4301, 2784, 71, 2790, 1470, 1471, - 3198, 3199, 1622, 3202, 2585, 4083, 769, 1745, 736, 3830, - 3668, 4276, 3528, 1718, 1757, 2750, 3974, 4690, 2697, 1714, - 1714, 2788, 3572, 1323, 1322, 4450, 183, 223, 4172, 240, - 1061, 2827, 1062, 2728, 2727, 1418, 4161, 1313, 717, 1723, - 4673, 4275, 3115, 4032, 1328, 219, 1128, 1548, 3832, 71, - 1223, 2748, 2749, 1134, 3567, 1563, 1564, 1565, 1675, 3122, - 3312, 1574, 1576, 1577, 1578, 1579, 2788, 1581, 3636, 2309, - 2153, 1701, 1700, 1587, 4167, 1336, 153, 2766, 1620, 4310, - 1619, 4345, 4562, 3424, 1637, 1636, 1550, 4337, 1514, 1618, - 4480, 1512, 1678, 3581, 4358, 4323, 3639, 3119, 3120, 1593, - 219, 3482, 2301, 3248, 2719, 3249, 3250, 3891, 4576, 1801, - 183, 223, 3118, 2676, 1806, 3152, 4014, 1562, 2299, 3356, - 3358, 4103, 1615, 2683, 1815, 3897, 2442, 780, 4534, 1687, - 1575, 1573, 1603, 1857, 3148, 71, 3816, 3689, 2430, 3655, - 1343, 1130, 2953, 70, 1129, 2814, 3660, 3661, 1838, 2756, - 2014, 2016, 2015, 1841, 2714, 1594, 2557, 1597, 2427, 2297, - 3559, 2274, 1559, 1716, 1580, 1716, 1306, 1695, 1697, 1808, - 3984, 1851, 220, 1852, 1710, 1711, 2686, 1708, 1709, 1629, - 1630, 3070, 766, 3845, 3146, 766, 766, 3704, 3372, 3373, - 2693, 1415, 1414, 4674, 1624, 1628, 1628, 1628, 1779, 1850, - 1782, 1783, 1612, 767, 3691, 1665, 1666, 1776, 1649, 767, - 1621, 1652, 1784, 1785, 3426, 1586, 1746, 1631, 1585, 1584, - 1583, 1624, 1624, 1790, 1791, 1650, 1651, 3667, 1653, 1654, - 1889, 1142, 1656, 2013, 3149, 774, 1716, 1699, 1770, 3276, - 1342, 1071, 4269, 3656, 1572, 3582, 4429, 70, 3299, 4357, - 70, 70, 1796, 1306, 1945, 1800, 742, 1799, 1724, 4175, - 1876, 2608, 1737, 1128, 70, 1743, 3245, 1977, 1978, 71, - 1996, 1982, 3808, 1813, 1929, 71, 1758, 1321, 1324, 1997, - 819, 820, 821, 822, 823, 2945, 2682, 1759, 1601, 1547, - 1795, 2684, 2004, 745, 2006, 746, 2007, 2008, 2009, 4185, - 4186, 4187, 4191, 4189, 4190, 4192, 4193, 4194, 4188, 2439, - 2440, 1060, 4575, 4163, 4269, 3357, 2586, 4162, 4270, 2453, - 3078, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, - 1906, 1907, 1908, 2687, 1873, 4168, 4169, 4671, 4672, 1922, - 1923, 2263, 2261, 2580, 2579, 2685, 2262, 1306, 1325, 3129, - 3135, 3136, 3137, 3130, 3134, 3131, 3133, 3132, 1130, 2080, - 2578, 1129, 2081, 1946, 1854, 2084, 1892, 1556, 1981, 2097, - 750, 750, 750, 2683, 2686, 1811, 2071, 1980, 2098, 2099, - 2101, 1031, 2102, 3898, 2104, 2105, 2106, 1562, 3823, 736, - 1745, 2005, 1549, 1551, 2577, 2114, 2076, 1716, 2120, 2121, - 2053, 2123, 1679, 750, 1870, 1794, 1848, 1169, 750, 1823, - 764, 1716, 1826, 764, 764, 1995, 1867, 1070, 765, 1843, - 2149, 765, 765, 1847, 1842, 2096, 2692, 1845, 2056, 2740, - 2690, 1872, 3071, 1554, 1555, 1849, 1024, 1020, 1716, 1021, - 2788, 2064, 3267, 3268, 1679, 1024, 1909, 1910, 4134, 760, - 1920, 1921, 4692, 1913, 3151, 761, 1143, 1312, 761, 761, - 763, 767, 2141, 763, 763, 183, 223, 1614, 4244, 2180, - 762, 3657, 1846, 762, 762, 1824, 1679, 1844, 1827, 1828, - 4686, 2189, 2189, 4544, 1679, 2400, 1679, 1679, 3711, 4680, - 750, 750, 1379, 2256, 1073, 1074, 1075, 2114, 2267, 1023, - 1167, 1716, 2271, 2272, 1026, 1025, 2059, 2287, 1028, 717, - 1614, 1323, 1322, 1026, 1025, 2396, 3277, 3279, 3280, 3281, - 3278, 3160, 2792, 717, 2827, 1716, 2122, 71, 1128, 2184, - 2070, 2687, 2424, 2600, 4667, 2124, 2682, 2676, 2681, 2398, - 2679, 2684, 3710, 1614, 3100, 4631, 2010, 2011, 183, 223, - 4604, 2329, 2331, 750, 2114, 1716, 3706, 2337, 1343, 750, - 750, 750, 778, 778, 4601, 2432, 3616, 2424, 2145, 2347, - 2546, 2349, 2350, 2351, 4681, 2713, 4600, 2357, 2211, 3101, - 3102, 3266, 2054, 2424, 240, 3848, 2497, 240, 240, 2496, - 240, 2060, 2110, 2111, 2112, 2685, 2265, 2108, 3767, 1298, - 1027, 998, 999, 1000, 1001, 2126, 2127, 2128, 2129, 2185, - 4594, 2069, 1968, 2073, 3776, 2325, 2952, 2192, 2077, 4632, - 1298, 2793, 219, 1130, 3174, 4699, 1129, 2072, 1379, 1835, - 4632, 3672, 4572, 4527, 1418, 4605, 2355, 4526, 2119, 2109, - 1859, 2408, 1986, 1987, 1988, 1832, 1833, 2154, 2303, 4602, - 2155, 2156, 2135, 3670, 3175, 2002, 3539, 3497, 2003, 2150, - 4209, 2432, 2793, 2599, 3711, 2146, 2339, 2340, 2341, 2172, - 2317, 2318, 1858, 3495, 1379, 4501, 2149, 2022, 2023, 2161, - 1716, 2421, 2336, 2399, 2191, 2179, 3165, 2365, 2182, 2183, - 2368, 2369, 1343, 2371, 2310, 2471, 2169, 3711, 70, 766, - 2388, 70, 70, 2163, 70, 2052, 2193, 2194, 4098, 2288, - 2403, 2294, 4474, 2296, 4462, 2793, 2173, 4573, 1379, 1624, - 2375, 2401, 1379, 3375, 2315, 2316, 3057, 2952, 2178, 2931, - 2264, 2423, 2168, 1628, 2170, 2171, 2188, 2190, 2656, 2164, - 2165, 2415, 2270, 2423, 4208, 1628, 2275, 2269, 2177, 1837, - 2289, 4403, 2293, 2669, 2295, 1340, 2174, 2175, 1836, 2304, - 2471, 1341, 1379, 2551, 70, 1669, 1670, 1003, 1672, 4402, - 2545, 1676, 2544, 1680, 1681, 1682, 2506, 2186, 2505, 3175, - 2382, 2504, 2414, 1509, 2320, 2273, 2328, 2334, 1596, 2335, - 1932, 2353, 1702, 2342, 2343, 1343, 1870, 2432, 4373, 4463, - 1203, 1204, 1205, 4372, 2401, 4371, 1730, 1731, 1732, 1733, + 1258, 1260, 1263, 1013, 3086, 750, 3081, 219, 1190, 4416, + 750, 3395, 1306, 4434, 4548, 4433, 4547, 3109, 2435, 2947, + 816, 4537, 4540, 818, 4656, 4657, 2090, 3110, 817, 3756, + 3756, 769, 769, 1332, 4537, 750, 4254, 1351, 1677, 1245, + 1353, 1307, 3400, 1861, 1133, 1131, 1865, 1132, 3396, 2438, + 3397, 1569, 1321, 1324, 181, 212, 221, 213, 2308, 1356, + 3852, 3054, 2767, 4451, 2088, 766, 766, 766, 1354, 1674, + 1864, 2159, 1662, 779, 1881, 1136, 3108, 3774, 211, 3085, + 2430, 3082, 2322, 2323, 3859, 1528, 3564, 183, 223, 182, + 214, 184, 1191, 3566, 4591, 4419, 4420, 4421, 4422, 2298, + 1218, 3247, 1856, 1424, 3423, 1633, 1305, 2078, 4439, 4102, + 3311, 2760, 4308, 4309, 4317, 2596, 4045, 1059, 3777, 1167, + 747, 1357, 3953, 1325, 4047, 3094, 4563, 4065, 3763, 3427, + 70, 70, 70, 3060, 1304, 1253, 1304, 3116, 3421, 3949, + 3561, 3562, 1373, 1304, 2257, 3928, 1374, 1375, 1141, 2957, + 210, 1306, 2716, 1313, 1369, 1370, 3563, 1346, 4017, 3389, + 2751, 219, 2754, 2763, 2764, 1009, 1338, 3305, 2762, 1169, + 4314, 3411, 4099, 2753, 3571, 3408, 3560, 1184, 1179, 1174, + 1178, 1182, 4059, 2461, 1316, 2827, 3940, 1347, 3572, 2425, + 3063, 1304, 1458, 1866, 1137, 1208, 2770, 1208, 1167, 3931, + 1208, 1208, 1360, 1368, 1208, 1187, 1208, 1571, 1363, 1177, + 3926, 1364, 734, 1349, 4062, 3951, 3952, 1863, 3969, 3635, + 2437, 3927, 3087, 4381, 3083, 1655, 1352, 1355, 1880, 1879, + 2908, 4264, 4443, 3854, 1769, 2441, 2443, 2444, 1253, 1366, + 1010, 3660, 3661, 1658, 1659, 1459, 4245, 3659, 1169, 1348, + 1749, 3965, 1886, 1889, 1890, 1326, 1139, 1545, 1223, 1542, + 1185, 3932, 4295, 1887, 4128, 4075, 994, 3876, 3740, 1531, + 1533, 3585, 1537, 4307, 3112, 3599, 1299, 1541, 1296, 3052, + 3157, 2258, 1188, 4471, 1536, 4344, 1323, 1322, 1557, 1189, + 4466, 3819, 1560, 762, 762, 762, 1536, 1567, 1335, 1295, + 1166, 764, 764, 764, 3558, 3821, 1508, 1330, 1331, 1513, + 2609, 765, 765, 765, 1818, 1011, 1019, 2302, 1420, 1421, + 1422, 1423, 1337, 771, 3572, 750, 750, 770, 1175, 1070, + 1350, 1425, 3315, 2604, 1552, 4456, 1862, 1138, 761, 761, + 761, 1645, 1646, 763, 763, 763, 4336, 3958, 1645, 1646, + 4473, 3499, 1186, 1309, 1311, 1314, 3910, 4479, 1362, 1622, + 3202, 1223, 2696, 3630, 71, 3917, 1634, 1253, 2676, 2699, + 4067, 4068, 4069, 816, 3198, 3199, 818, 3202, 3950, 2788, + 2681, 817, 3833, 4301, 4083, 4064, 1135, 2585, 3830, 3662, + 1176, 3663, 3665, 3664, 750, 3668, 1673, 3528, 1367, 1679, + 1851, 220, 1852, 750, 2750, 3936, 3974, 717, 717, 2827, + 4450, 4172, 4690, 2728, 4273, 2727, 4274, 717, 717, 1315, + 1365, 1716, 1716, 767, 750, 4032, 2698, 3933, 3937, 3935, + 3934, 3572, 4268, 1641, 1328, 4161, 3122, 1470, 1471, 2766, + 1061, 4562, 1062, 2153, 4167, 2683, 769, 1745, 736, 1701, + 3832, 2748, 2749, 1718, 1757, 1700, 2309, 4673, 1008, 1714, + 1714, 1336, 819, 820, 821, 822, 823, 1620, 3567, 240, + 4345, 1183, 1637, 1636, 1619, 1418, 1618, 4480, 717, 1723, + 3424, 1128, 4276, 4323, 3312, 3943, 3944, 1548, 4310, 71, + 1223, 3636, 2697, 1134, 3639, 1563, 1564, 1565, 1675, 1593, + 2430, 1574, 1576, 1577, 1578, 1579, 3482, 1581, 1180, 4358, + 2719, 1181, 4275, 1587, 3115, 183, 223, 182, 214, 184, + 1173, 4576, 4273, 3891, 4274, 2442, 1550, 1514, 3581, 2676, + 1512, 4337, 1678, 2781, 2785, 2786, 2787, 2782, 2791, 2783, + 2789, 4103, 1888, 2784, 1575, 2790, 2693, 4014, 3248, 1801, + 3249, 3250, 3953, 1562, 1806, 2299, 3559, 3897, 1857, 780, + 1024, 4534, 1615, 1687, 1815, 3929, 3372, 3373, 3942, 3119, + 3120, 1573, 3816, 1312, 1603, 3689, 1130, 767, 3655, 1129, + 2953, 1825, 1343, 70, 3118, 3356, 3358, 2814, 1838, 219, + 4276, 3660, 3661, 1841, 2756, 2714, 1594, 1597, 819, 820, + 821, 822, 823, 1716, 2557, 1716, 1306, 2427, 2682, 1808, + 4674, 2297, 3667, 2684, 1710, 1711, 1415, 1414, 1629, 1630, + 4275, 2274, 766, 1028, 1559, 766, 766, 1192, 1026, 1025, + 1580, 1172, 3070, 3984, 1624, 1628, 1628, 1628, 1779, 1850, + 1782, 1783, 1612, 71, 3704, 1665, 1666, 1776, 1649, 2608, + 1621, 1652, 1784, 1785, 1572, 3691, 1746, 1631, 2014, 2016, + 2015, 1624, 1624, 3426, 4357, 1650, 1651, 2685, 1653, 1654, + 2686, 1699, 1656, 1586, 1695, 1697, 1716, 1585, 1790, 1791, + 3582, 1584, 1342, 1583, 1708, 1709, 1142, 70, 3845, 774, + 70, 70, 1796, 1306, 1945, 1800, 742, 1724, 1737, 2586, + 1876, 1799, 3299, 3947, 70, 4168, 4169, 1977, 1978, 2774, + 1996, 1982, 4163, 1813, 1929, 1027, 4162, 3656, 1758, 1997, + 2071, 1060, 1743, 2263, 2261, 4575, 1759, 4175, 2262, 1547, + 3245, 745, 2004, 746, 2006, 1071, 2007, 2008, 2009, 2439, + 2440, 2013, 183, 223, 2453, 1770, 2781, 2785, 2786, 2787, + 2782, 2791, 2783, 2789, 4671, 4672, 2784, 3808, 2790, 2945, + 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, + 1906, 1907, 1908, 2301, 1873, 1073, 1074, 1075, 1128, 1922, + 1923, 3357, 2692, 3941, 1601, 4269, 2690, 1306, 3078, 4270, + 3946, 1795, 3767, 3267, 3268, 2580, 2579, 1167, 3948, 2080, + 2578, 1562, 2081, 1946, 1854, 2084, 1823, 1556, 1981, 1826, + 750, 750, 750, 1811, 1891, 3898, 219, 1980, 2097, 2099, + 2101, 2098, 2102, 3276, 2104, 2105, 2106, 2687, 1031, 736, + 1745, 2005, 1549, 1551, 3823, 2114, 2577, 1716, 2120, 2121, + 2053, 2123, 1679, 750, 1870, 2076, 1848, 1169, 750, 1843, + 762, 1716, 2096, 762, 762, 1995, 1867, 1070, 764, 1847, + 2149, 764, 764, 1842, 1020, 1872, 1024, 2056, 765, 2740, + 1021, 765, 765, 1130, 2070, 1845, 1129, 4134, 1716, 1554, + 1555, 2064, 4686, 3071, 1679, 1849, 1909, 1910, 4680, 760, + 1920, 1921, 4692, 4269, 1913, 761, 4244, 4429, 761, 761, + 763, 3616, 2141, 763, 763, 4667, 1794, 4544, 2497, 2180, + 1824, 2496, 1846, 1827, 1828, 2424, 1679, 1844, 3710, 1614, + 2424, 2189, 2189, 1835, 1679, 4631, 1679, 1679, 3711, 1023, + 750, 750, 3266, 2256, 1026, 1025, 2059, 2114, 2267, 1832, + 1833, 1716, 2271, 2272, 1379, 3657, 3100, 2287, 2656, 717, + 1143, 819, 820, 821, 822, 823, 2792, 183, 223, 182, + 214, 184, 3160, 717, 2600, 1716, 2122, 2432, 2827, 2184, + 3706, 2072, 1614, 4681, 1128, 2124, 183, 223, 182, 214, + 184, 3101, 3102, 1614, 1343, 4604, 2010, 2011, 2788, 3175, + 4632, 2329, 2331, 750, 2114, 1716, 1379, 2337, 2401, 750, + 750, 750, 778, 778, 4601, 767, 2424, 2546, 2145, 2347, + 4632, 2349, 2350, 2351, 4600, 3848, 3776, 2357, 2211, 2952, + 2054, 2713, 3174, 1310, 240, 1858, 1298, 240, 240, 2060, + 240, 219, 2110, 2111, 2112, 2355, 2265, 2108, 3672, 1381, + 1298, 1382, 1380, 1837, 3670, 2126, 2127, 2128, 2129, 2185, + 219, 2069, 1836, 2073, 3539, 2325, 1379, 2192, 2077, 4185, + 4186, 4187, 4191, 4189, 4190, 4192, 4193, 4194, 4188, 1130, + 4605, 71, 1129, 3711, 1418, 1343, 4594, 4572, 2119, 2109, + 2952, 2408, 1986, 1987, 1988, 3497, 4527, 2154, 2303, 4602, + 2155, 2156, 2135, 4526, 2599, 2002, 2793, 2655, 2003, 2432, + 3277, 3279, 3280, 3281, 3278, 2146, 2339, 2340, 2341, 2172, + 2317, 2318, 3495, 2150, 1341, 4501, 2149, 2022, 2023, 2161, + 1716, 2421, 2336, 2399, 2191, 2179, 2793, 2365, 2182, 2183, + 2368, 2369, 3165, 2371, 2310, 2169, 4098, 3711, 70, 766, + 2388, 70, 70, 2163, 70, 2052, 2193, 2194, 2793, 3375, + 2403, 2294, 3057, 2296, 1381, 2173, 1382, 1380, 2931, 1624, + 2375, 2471, 4573, 2423, 2315, 2316, 2423, 2178, 2188, 2190, + 2264, 1379, 2168, 1628, 2170, 2171, 2289, 3175, 1379, 2164, + 2165, 2415, 2270, 1859, 2269, 1628, 2275, 4474, 2177, 1379, + 2353, 4462, 3485, 2293, 2669, 2295, 2174, 2175, 4403, 2304, + 2471, 2788, 4402, 1509, 70, 1669, 1670, 4373, 1672, 4372, + 1340, 1676, 3457, 1680, 1681, 1682, 2288, 2186, 2551, 1381, + 2382, 1382, 1380, 1381, 2545, 1382, 1380, 2334, 2328, 2335, + 2544, 2506, 4371, 2342, 2343, 2505, 1870, 3129, 3135, 3136, + 3137, 3130, 3134, 3131, 3133, 3132, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 2362, 1738, 1739, 1740, 1741, 1742, 4370, - 4682, 3485, 1748, 4400, 1750, 1751, 1752, 4348, 1964, 1381, - 1382, 1383, 1380, 828, 1202, 1961, 4404, 1199, 2380, 1963, - 1960, 1962, 1966, 1967, 1341, 2450, 2451, 1965, 1381, 1382, - 1383, 1380, 4233, 3858, 2634, 2017, 2018, 2019, 2020, 3906, + 2504, 3483, 1748, 2414, 1750, 1751, 1752, 2683, 2686, 183, + 223, 4348, 2432, 828, 3152, 1167, 4463, 3486, 2380, 183, + 223, 3456, 2320, 4404, 4347, 2450, 2451, 2634, 1381, 2539, + 1382, 1380, 2471, 3148, 2471, 2017, 2018, 2019, 2020, 1341, 2149, 2024, 2025, 2026, 2027, 2029, 2030, 2031, 2032, 2033, - 2034, 2035, 2036, 2037, 2038, 2039, 1381, 1382, 1383, 1380, - 2412, 4347, 4320, 2471, 4289, 1169, 2374, 2655, 2471, 3483, - 2471, 2558, 3380, 2560, 3177, 2562, 2563, 3066, 2955, 2566, - 1381, 1382, 1383, 1380, 2471, 2416, 3486, 2954, 750, 1679, - 750, 1679, 2432, 2946, 2459, 2663, 1381, 1382, 1383, 1380, - 2492, 2581, 2470, 2429, 2410, 2529, 2473, 764, 826, 4205, - 2475, 750, 750, 750, 3457, 765, 2413, 2597, 2445, 2360, - 2345, 2530, 2532, 2533, 2534, 2074, 2536, 750, 750, 750, - 750, 2454, 1381, 1382, 1383, 1380, 2448, 2449, 3456, 1820, - 1913, 2447, 1433, 1996, 1996, 2630, 2432, 2471, 4231, 1379, - 1327, 2638, 761, 2641, 3484, 1293, 1288, 763, 1167, 2643, - 2644, 2645, 2463, 2648, 1679, 2458, 2457, 762, 4286, 2683, - 2686, 3977, 2411, 3979, 1971, 1972, 1973, 1974, 1975, 1976, - 1969, 1970, 1774, 1773, 998, 999, 1000, 1001, 1415, 1414, - 2469, 3919, 1679, 2319, 1396, 2141, 3621, 3878, 1196, 1197, - 1198, 1201, 3800, 1200, 861, 871, 3796, 1022, 4467, 2705, - 4210, 4211, 3418, 3680, 862, 3446, 863, 867, 870, 866, - 864, 865, 2571, 3405, 2573, 3351, 4206, 4207, 3167, 4214, - 4213, 4212, 4225, 4226, 4227, 4215, 4216, 4219, 4221, 4220, - 4217, 4218, 4222, 4223, 4224, 1381, 1382, 1383, 1380, 4228, - 2539, 1209, 1210, 2634, 4468, 2642, 1214, 2660, 2827, 3162, - 4229, 4338, 4036, 2662, 3034, 2664, 2712, 1727, 2548, 2907, - 1381, 1382, 1383, 1380, 750, 2189, 3920, 1381, 1382, 1383, - 1380, 868, 3879, 2797, 2797, 2287, 2797, 3801, 2625, 3600, - 3022, 3797, 2446, 1169, 3014, 2968, 2950, 2561, 3681, 1625, - 1379, 2565, 2922, 2543, 2920, 2918, 717, 717, 3163, 2916, - 2793, 1706, 869, 3168, 1306, 2633, 1985, 1984, 2547, 2513, - 1716, 750, 1707, 4693, 4660, 2665, 2512, 2687, 2467, 2711, - 2589, 2081, 2682, 2676, 2681, 2540, 2679, 2684, 4441, 750, - 4395, 4319, 2495, 1704, 3163, 1306, 2889, 736, 2671, 2634, - 1003, 4339, 2486, 2485, 1757, 1458, 2287, 4261, 2820, 2897, - 2675, 2899, 2755, 2674, 240, 2484, 2472, 2631, 2431, 2668, - 3601, 4203, 1829, 1029, 2893, 1379, 1985, 1984, 2801, 1379, - 1379, 2634, 2650, 2651, 2649, 4165, 1167, 2923, 4035, 2921, - 2917, 2685, 2653, 2654, 2917, 2507, 2508, 4340, 2510, 1996, - 2634, 1996, 750, 2546, 1379, 2517, 2942, 2799, 1459, 2803, - 2363, 1379, 4164, 4135, 2948, 2537, 3602, 2421, 4150, 4106, - 1626, 3869, 2688, 2689, 1716, 2694, 1716, 1379, 1716, 3894, - 3712, 1657, 2028, 1306, 2811, 1169, 2812, 1379, 1379, 2835, - 3702, 2967, 1381, 1382, 1383, 1380, 2829, 1703, 2661, 2896, - 1379, 2471, 3694, 2432, 3682, 2817, 2818, 1830, 2652, 4136, - 3576, 3308, 3892, 2658, 2958, 1628, 2659, 2902, 3307, 2834, - 1610, 1716, 1306, 3166, 1611, 3895, 2996, 2657, 70, 1919, - 1381, 1382, 1383, 1380, 2805, 2765, 2935, 3517, 2771, 3127, - 3062, 3748, 2021, 3005, 3520, 1916, 1918, 1915, 1716, 1917, - 2538, 2965, 2991, 2806, 2816, 2564, 1695, 1697, 3893, 1714, - 1395, 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, - 1401, 1402, 1403, 1396, 2406, 2405, 3745, 2962, 1167, 3006, - 2404, 1590, 2821, 2824, 1610, 1589, 1714, 1308, 1611, 2975, - 2901, 2499, 3092, 1936, 2625, 1381, 1382, 1383, 1380, 1169, - 1936, 2338, 2464, 3381, 2103, 2890, 2911, 1762, 3520, 2363, - 3064, 3011, 3012, 2348, 2929, 3068, 2895, 4156, 3072, 4546, - 2894, 4288, 3517, 1383, 1380, 750, 750, 750, 1399, 1400, - 1401, 1402, 1403, 1396, 2978, 4287, 2980, 1380, 3000, 4180, - 4179, 3603, 1306, 3237, 3235, 3214, 2927, 3212, 4609, 2964, - 1716, 4689, 2959, 1679, 2936, 4571, 3007, 2938, 2994, 1679, - 2267, 1381, 1382, 1383, 1380, 2973, 3036, 3126, 3037, 1762, - 3039, 2951, 3041, 3042, 1435, 2949, 2956, 4570, 2402, 1381, - 1382, 1383, 1380, 4100, 3519, 3170, 3173, 1434, 3746, 4516, - 4517, 4519, 1167, 3048, 4375, 4376, 3179, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1396, 4107, 4108, 3856, 2969, 2970, - 3044, 3147, 3045, 2982, 3189, 1870, 4688, 4518, 1381, 1382, - 1383, 1380, 4515, 2972, 1306, 2992, 4514, 2977, 1381, 1382, - 1383, 1380, 3211, 4513, 3288, 3286, 2835, 2903, 2000, 1306, - 1306, 1306, 2189, 4101, 3141, 1306, 4512, 3221, 3222, 3223, - 3224, 1306, 3231, 2001, 3232, 3233, 3284, 3234, 3144, 3236, - 1381, 1382, 1383, 1380, 2989, 2990, 2834, 3857, 4510, 1763, - 3231, 2983, 3049, 1387, 1388, 1389, 1390, 1391, 1392, 1393, - 1385, 4509, 2797, 4508, 4507, 4506, 3123, 4505, 3273, 4503, - 3190, 3158, 3142, 3448, 3287, 3285, 3289, 70, 1269, 1265, - 1266, 1267, 1268, 4502, 4469, 2988, 2211, 2987, 2986, 2984, - 3090, 4361, 4351, 717, 4341, 3104, 3283, 3106, 3206, 2933, - 2934, 2267, 4313, 4285, 3180, 1306, 2287, 2287, 2287, 2287, - 2287, 2287, 4252, 3206, 3217, 3218, 4174, 4138, 4137, 3220, - 3911, 3103, 3192, 1306, 2287, 3227, 3121, 2797, 3272, 3294, - 3896, 3855, 3150, 3838, 3565, 3414, 3447, 3393, 3209, 3392, - 3297, 3271, 3209, 3359, 3270, 1716, 3269, 3205, 3261, 3255, - 3254, 8, 3253, 3172, 3169, 3017, 3018, 3252, 750, 750, - 7, 3023, 3216, 1381, 1382, 1383, 1380, 3178, 2985, 3058, - 2924, 2119, 2813, 1384, 2550, 1381, 1382, 1383, 1380, 2384, - 2383, 1417, 3194, 3191, 2997, 2381, 2377, 2376, 3300, 2326, - 1427, 4634, 2086, 3207, 3213, 2083, 1821, 4581, 1527, 3325, - 3182, 3219, 4488, 1814, 3862, 3185, 3347, 3868, 3551, 4685, - 2488, 4683, 3210, 4311, 4312, 1291, 1437, 3325, 1381, 1382, - 1383, 1380, 4024, 3377, 1381, 1382, 1383, 1380, 3251, 1381, - 1382, 1383, 1380, 3263, 240, 4658, 3313, 4624, 4558, 240, - 4556, 4293, 2717, 4532, 4453, 2720, 2721, 2722, 2723, 2724, - 2725, 2726, 4111, 4447, 2729, 2730, 2731, 2732, 2733, 2734, - 2735, 2736, 2737, 2738, 2739, 4438, 2741, 2742, 2743, 2744, - 2745, 3303, 2746, 3309, 1290, 3360, 3188, 3413, 4436, 3181, - 2487, 4423, 4414, 1716, 4053, 1698, 3420, 4390, 3186, 3187, - 3376, 4389, 4380, 3306, 4379, 4365, 3344, 3349, 3350, 3348, - 3326, 3327, 3328, 3329, 3330, 3331, 4050, 1381, 1382, 1383, - 1380, 1381, 1382, 1383, 1380, 4360, 4049, 3367, 4359, 3364, - 1783, 3204, 4316, 3407, 1381, 1382, 1383, 1380, 3368, 4039, - 1784, 1785, 4300, 1381, 1382, 1383, 1380, 3382, 4298, 4284, - 1790, 1791, 3386, 1381, 1382, 1383, 1380, 4253, 70, 4158, - 4115, 3004, 1409, 70, 1413, 4104, 1381, 1382, 1383, 1380, - 4088, 4087, 4085, 1796, 4080, 4078, 1800, 4057, 1799, 4056, - 1410, 1412, 1408, 4055, 1411, 1395, 1394, 1404, 1405, 1406, - 1407, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1396, 3433, - 4052, 4051, 3384, 4038, 3503, 4026, 4022, 3506, 4691, 3383, - 4020, 3990, 3510, 2479, 750, 1679, 2476, 3987, 3981, 3422, - 3417, 4037, 3293, 3522, 3524, 3525, 3527, 3962, 3529, 3530, - 1381, 1382, 1383, 1380, 3850, 3402, 4646, 3840, 3825, 3809, - 1306, 3398, 3788, 3786, 3780, 3762, 1306, 3723, 1381, 1382, - 1383, 1380, 3554, 3556, 1381, 1382, 1383, 1380, 1381, 1382, - 1383, 1380, 3416, 3569, 3700, 4352, 3699, 3697, 3429, 750, - 3445, 3430, 3782, 3696, 3683, 3436, 3437, 1381, 1382, 1383, - 1380, 3678, 3677, 3439, 3584, 3577, 3588, 1306, 4486, 3438, - 750, 3440, 750, 2267, 1306, 1306, 3441, 3442, 3537, 1381, - 1382, 1383, 1380, 3531, 1996, 3521, 1996, 3511, 3504, 3613, - 1381, 1382, 1383, 1380, 3496, 2287, 2638, 3502, 3620, 1395, - 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, - 1402, 1403, 1396, 2468, 3540, 3487, 3580, 2705, 3591, 2555, - 3206, 3458, 3428, 3425, 3412, 3597, 4482, 1756, 3513, 3645, - 3452, 3648, 3608, 3648, 3648, 3500, 3573, 3583, 1306, 3391, - 3501, 3366, 1381, 1382, 1383, 1380, 3141, 3301, 1381, 1382, - 1383, 1380, 3298, 3295, 3282, 3274, 3673, 1381, 1382, 1383, - 1380, 3206, 3669, 3628, 1716, 1716, 3264, 3262, 3206, 3206, - 3451, 3144, 3557, 3258, 3610, 3632, 3634, 3449, 2056, 3257, - 3623, 3256, 4645, 3612, 3093, 3079, 3067, 3059, 3618, 940, - 939, 1381, 1382, 1383, 1380, 3674, 3675, 1381, 1382, 1383, - 1380, 2285, 1714, 1714, 1381, 1382, 1383, 1380, 2940, 3579, - 2928, 750, 3111, 2891, 3590, 2582, 2569, 1169, 2568, 2466, - 2387, 3595, 3596, 2379, 2187, 3554, 2116, 3604, 3611, 3609, - 3606, 2085, 3206, 4290, 3644, 2082, 2067, 3619, 1679, 2066, - 1822, 2267, 2267, 1466, 1462, 3615, 3463, 3464, 3653, 1461, - 1294, 3643, 3465, 3466, 3467, 3468, 3627, 3469, 3470, 3471, - 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 1007, 4280, - 3649, 3650, 4279, 2675, 4266, 3033, 2674, 4262, 748, 4086, - 4054, 3654, 3671, 1394, 1404, 1405, 1406, 1407, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 1396, 1306, 1381, 1382, 1383, - 1380, 2996, 1381, 1382, 1383, 1380, 4033, 4001, 3982, 3749, - 1167, 3032, 3899, 1882, 1883, 1884, 1885, 1886, 3679, 3622, - 223, 182, 214, 184, 3624, 3625, 3031, 3887, 3243, 3244, - 183, 223, 3886, 3882, 3847, 3805, 3651, 3803, 1381, 1382, - 1383, 1380, 3802, 3259, 3260, 183, 223, 750, 3799, 3798, - 3707, 3708, 3684, 1381, 1382, 1383, 1380, 3693, 1933, 3692, - 3787, 3785, 1937, 1938, 1939, 1940, 3701, 3030, 3698, 3751, - 1417, 3705, 3750, 1979, 3735, 3768, 3304, 3734, 3614, 3719, - 3607, 3720, 1990, 3029, 1066, 183, 223, 3541, 3538, 3494, - 2835, 3454, 3443, 219, 1381, 1382, 1383, 1380, 3435, 3770, - 3434, 3432, 3374, 3728, 219, 3731, 3732, 3733, 3626, 2919, - 1381, 1382, 1383, 1380, 2915, 2914, 3769, 2913, 2518, 219, + 2034, 2035, 2036, 2037, 2038, 2039, 1381, 2471, 1382, 1380, + 2412, 2410, 4320, 2273, 1596, 1169, 1932, 2683, 2686, 153, + 2537, 2558, 1702, 2560, 4699, 2562, 2563, 3858, 1343, 2566, + 4682, 4289, 4400, 3146, 2471, 2416, 3484, 4233, 750, 1679, + 750, 1679, 3906, 219, 2459, 2374, 2432, 1381, 3380, 1382, + 1380, 2581, 2470, 2429, 4286, 2529, 2473, 762, 826, 2432, + 3177, 750, 750, 750, 2540, 764, 3979, 2597, 2445, 183, + 223, 2530, 2532, 2533, 2534, 765, 2536, 750, 750, 750, + 750, 2454, 1381, 3149, 1382, 1380, 2448, 2449, 3919, 2400, + 2447, 1913, 3878, 1996, 1996, 2630, 1381, 2471, 1382, 1380, + 3066, 2638, 761, 2641, 3800, 2538, 3796, 763, 2955, 2643, + 2644, 2645, 2463, 2648, 1679, 2687, 1379, 2411, 4231, 2396, + 2682, 2676, 2681, 3680, 2679, 2684, 2989, 2990, 998, 999, + 1000, 1001, 1381, 2983, 1382, 1380, 2671, 767, 3446, 2634, + 2469, 3405, 1679, 2398, 2954, 2141, 3351, 998, 999, 1000, + 1001, 2827, 3167, 1022, 2543, 3162, 767, 2946, 2663, 2705, + 1269, 1265, 1266, 1267, 1268, 2492, 2475, 2988, 2413, 2987, + 2986, 2984, 2571, 3920, 2573, 2687, 3034, 3879, 3022, 2685, + 2682, 2676, 2681, 3014, 2679, 2684, 2360, 2968, 2950, 3801, + 2467, 3797, 2922, 1167, 2920, 2345, 2074, 2918, 2916, 2633, + 2547, 1209, 1210, 71, 1820, 2642, 1214, 2660, 3681, 1433, + 1327, 1727, 1293, 2662, 2513, 2664, 2712, 2512, 2548, 1288, + 1321, 1324, 71, 1379, 750, 2189, 3163, 2458, 2457, 1415, + 1414, 2793, 3977, 2797, 2797, 2287, 2797, 3168, 2625, 2685, + 3163, 2495, 2446, 1169, 2486, 2485, 2484, 2561, 1774, 1773, + 2985, 2565, 2472, 1203, 1204, 1205, 717, 717, 3621, 2431, + 2319, 2634, 1829, 1379, 1306, 1985, 1984, 3418, 1379, 4036, + 1716, 750, 1379, 2634, 1610, 2665, 1396, 2923, 1611, 2921, + 2589, 2081, 2917, 2917, 2634, 2546, 1704, 1202, 1625, 750, + 1199, 1325, 4467, 4135, 1003, 1306, 2889, 736, 3600, 1379, + 1657, 4693, 1379, 3151, 1757, 1458, 2287, 2675, 2820, 2897, + 2674, 2899, 2755, 1003, 240, 1395, 3894, 2631, 2907, 1029, + 4338, 1985, 1984, 3892, 2893, 2401, 1379, 4660, 2801, 1379, + 1379, 1379, 2650, 2651, 2649, 1167, 2711, 2471, 4468, 4136, + 4441, 4395, 2653, 2654, 2432, 2507, 2508, 1830, 2510, 1996, + 2668, 1996, 750, 4319, 1706, 2517, 2942, 2799, 1459, 2803, + 2363, 4261, 3895, 4203, 2948, 1707, 4165, 2421, 4164, 3893, + 4150, 4106, 2688, 2689, 1716, 2694, 1716, 3869, 1716, 3601, + 3712, 2028, 3702, 1306, 2811, 1169, 2812, 3694, 3682, 2835, + 1703, 2967, 3576, 3308, 3307, 4035, 2829, 2661, 3166, 2896, + 3127, 3062, 2965, 1610, 2816, 2817, 2818, 1611, 2652, 1626, + 4339, 2564, 2406, 2658, 2958, 1628, 2659, 2902, 2405, 2834, + 2404, 1716, 1306, 1590, 1919, 3602, 2996, 2657, 70, 1396, + 1589, 1308, 3745, 3517, 2805, 2765, 2935, 2021, 2771, 3520, + 1916, 1918, 1915, 3005, 1917, 2975, 2901, 3092, 1716, 1167, + 1936, 3381, 2991, 2806, 1323, 1322, 4340, 2103, 1936, 1714, + 2464, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1395, 1382, + 1380, 1196, 1197, 1198, 1201, 3520, 1200, 2962, 1381, 3006, + 1382, 1380, 2821, 2824, 4546, 1381, 1714, 1382, 1380, 3748, + 1762, 4288, 2363, 4287, 2625, 1381, 2911, 1382, 1380, 1169, + 1381, 2338, 1382, 1380, 2929, 2890, 1380, 1396, 4609, 3746, + 3064, 3011, 3012, 2348, 4180, 3068, 2895, 3517, 3072, 1381, + 2894, 1382, 1380, 1695, 1697, 750, 750, 750, 2977, 4179, + 4689, 1381, 3603, 1382, 1380, 4634, 3237, 3235, 3000, 2978, + 3214, 2980, 1306, 4156, 4571, 1396, 2927, 2964, 3212, 2959, + 1716, 3519, 4100, 1679, 2936, 4570, 3007, 2938, 4519, 1679, + 2267, 2994, 1381, 4518, 1382, 1380, 3036, 3044, 3037, 3045, + 3039, 2951, 3041, 3042, 2973, 2949, 2956, 3856, 2402, 1399, + 1400, 1401, 1402, 1403, 1395, 3170, 3173, 861, 871, 2933, + 2934, 4515, 3048, 4516, 4517, 4688, 3179, 862, 4514, 863, + 867, 870, 866, 864, 865, 3004, 4375, 4376, 2969, 2970, + 4513, 3147, 4101, 2982, 3189, 1870, 1381, 3448, 1382, 1380, + 3433, 2992, 1968, 2972, 1306, 2903, 1381, 4512, 1382, 1380, + 4107, 4108, 3211, 1435, 3288, 1763, 2835, 3857, 4510, 1306, + 1306, 1306, 2189, 3286, 3141, 1306, 1434, 3221, 3222, 3223, + 3224, 1306, 3231, 3126, 3232, 3233, 2479, 3234, 3144, 3236, + 4509, 4508, 3049, 4507, 868, 1381, 2834, 1382, 1380, 1814, + 3231, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1384, 4506, + 3447, 1381, 2797, 1382, 1380, 4581, 3123, 2488, 4505, 1762, + 3190, 3158, 3142, 4488, 3287, 869, 3289, 70, 1381, 3284, + 1382, 1380, 1381, 3285, 1382, 1380, 2211, 1381, 3862, 1382, + 1380, 4053, 1381, 717, 1382, 1380, 4503, 3273, 3206, 4502, + 1381, 2267, 1382, 1380, 3180, 1306, 2287, 2287, 2287, 2287, + 2287, 2287, 4469, 3206, 3217, 3218, 3103, 3090, 1381, 3220, + 1382, 1380, 3192, 1306, 2287, 3227, 3104, 2797, 3106, 3294, + 3121, 4361, 3150, 1381, 2000, 1382, 1380, 2487, 3209, 3283, + 4351, 4341, 3209, 3359, 4313, 1716, 2468, 3205, 4050, 2001, + 4285, 8, 3868, 3172, 3169, 3017, 3018, 3272, 750, 750, + 7, 3023, 3216, 4685, 1381, 4252, 1382, 1380, 4049, 4174, + 4138, 2119, 4137, 1383, 3911, 1381, 3896, 1382, 1380, 3855, + 4039, 1417, 3194, 3191, 2997, 3838, 3565, 3414, 3300, 3393, + 1427, 3392, 4038, 3207, 3213, 1381, 3297, 1382, 1380, 3325, + 3182, 3219, 3271, 3270, 3269, 3185, 3347, 1381, 3261, 1382, + 1380, 4037, 3210, 3255, 3254, 3253, 1437, 3325, 1964, 1381, + 3252, 1382, 1380, 3377, 1381, 1961, 1382, 1380, 3251, 1963, + 1960, 1962, 1966, 1967, 240, 3263, 3313, 1965, 1381, 240, + 1382, 1380, 2717, 3178, 3058, 2720, 2721, 2722, 2723, 2724, + 2725, 2726, 2924, 2813, 2729, 2730, 2731, 2732, 2733, 2734, + 2735, 2736, 2737, 2738, 2739, 3962, 2741, 2742, 2743, 2744, + 2745, 3303, 2746, 3309, 2550, 3360, 3188, 3413, 2384, 3181, + 3551, 3782, 2383, 1716, 2381, 3487, 3420, 2377, 3186, 3187, + 3376, 2376, 1381, 2326, 1382, 1380, 3344, 3458, 2086, 3348, + 3350, 2083, 3326, 3327, 3328, 3329, 3330, 3331, 1381, 3452, + 1382, 1380, 1381, 1821, 1382, 1380, 3364, 3451, 3368, 1527, + 1783, 3367, 3449, 3407, 1381, 4683, 1382, 1380, 3349, 4024, + 1784, 1785, 3033, 4311, 4312, 4658, 1381, 3382, 1382, 1380, + 3032, 4624, 3386, 4558, 1381, 1698, 1382, 1380, 70, 1381, + 4556, 1382, 1380, 70, 4293, 1790, 1791, 4532, 4453, 1381, + 3306, 1382, 1380, 1796, 4111, 4447, 1800, 1381, 1291, 1382, + 1380, 3031, 1799, 1949, 1950, 1951, 1952, 1953, 1954, 1955, + 1956, 1957, 1958, 1959, 1971, 1972, 1973, 1974, 1975, 1976, + 1969, 1970, 3384, 4438, 3503, 3030, 4436, 3506, 1381, 3383, + 1382, 1380, 3510, 4423, 750, 1679, 4414, 4390, 3029, 3422, + 3417, 4389, 4380, 3522, 3524, 3525, 3527, 3028, 3529, 3530, + 4379, 3398, 1381, 3402, 1382, 1380, 4365, 1290, 3027, 2466, + 1306, 4360, 4359, 4691, 4316, 1381, 1306, 1382, 1380, 4300, + 4298, 4284, 3554, 3556, 1381, 4253, 1382, 1380, 4158, 4115, + 4104, 4088, 3416, 3569, 4087, 1381, 3429, 1382, 1380, 750, + 4085, 4080, 3026, 3445, 4078, 3436, 3437, 4638, 3025, 4057, + 3430, 4056, 4055, 3024, 3584, 4052, 3588, 1306, 4646, 3438, + 750, 3440, 750, 2267, 1306, 1306, 3441, 3442, 3439, 1381, + 3021, 1382, 1380, 4051, 1996, 1381, 1996, 1382, 1380, 3613, + 1381, 4026, 1382, 1380, 3496, 2287, 2638, 1381, 3620, 1382, + 1380, 4022, 4020, 3990, 3987, 3981, 3293, 1381, 3850, 1382, + 1380, 3840, 3825, 3809, 3540, 3020, 3580, 2705, 3591, 3788, + 3206, 3019, 3786, 3780, 3762, 3597, 4486, 1756, 3513, 3645, + 3013, 3648, 3608, 3648, 3648, 4482, 3573, 3583, 1306, 3723, + 3501, 3500, 1381, 3700, 1382, 1380, 3141, 3699, 1381, 3697, + 1382, 1380, 3696, 3683, 3001, 3678, 3673, 1381, 3677, 1382, + 1380, 3206, 3669, 3628, 1716, 1716, 3577, 1167, 3206, 3206, + 2995, 3144, 3557, 3537, 3610, 3632, 3634, 2056, 2974, 3531, + 3623, 1381, 3612, 1382, 1380, 3521, 3511, 3504, 3618, 3502, + 2555, 2542, 3428, 3425, 3412, 3674, 3675, 1381, 3391, 1382, + 1380, 2285, 1714, 1714, 3366, 1381, 2541, 1382, 1380, 3301, + 2535, 750, 3111, 3298, 3295, 3579, 3590, 1169, 1381, 3282, + 1382, 1380, 3274, 3595, 3596, 3554, 3264, 3604, 3611, 3609, + 3606, 3262, 3206, 1381, 3644, 1382, 1380, 1381, 1679, 1382, + 1380, 2267, 2267, 3619, 3258, 3615, 3463, 3464, 3257, 3653, + 1931, 3643, 3465, 3466, 3467, 3468, 3627, 3469, 3470, 3471, + 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3256, 3093, + 2675, 3079, 3067, 2674, 3649, 3650, 3059, 1381, 748, 1382, + 1380, 3654, 940, 939, 3346, 3671, 2940, 2928, 2891, 2582, + 2569, 2568, 2387, 2379, 2187, 2116, 1306, 2085, 2082, 2067, + 2066, 2996, 1822, 1466, 1462, 1461, 1294, 1007, 4290, 3749, + 4280, 183, 223, 1882, 1883, 1884, 1885, 3687, 3679, 3622, + 223, 182, 214, 184, 3624, 3625, 183, 223, 3243, 3244, + 4279, 2143, 4266, 4262, 4086, 4054, 3651, 183, 223, 183, + 223, 4033, 4001, 3259, 3260, 3982, 3899, 750, 3887, 3886, + 3882, 3684, 3847, 3805, 3707, 3708, 3803, 3802, 1933, 3693, + 3692, 2140, 1937, 1938, 1939, 1940, 3701, 3799, 3698, 3798, + 1417, 3705, 3787, 1979, 3785, 3768, 3304, 3751, 3750, 3735, + 3734, 3719, 1990, 3720, 1066, 2142, 3204, 3607, 3614, 153, + 2835, 3541, 3538, 219, 1591, 3494, 3454, 3443, 3435, 3770, + 219, 4500, 3434, 3432, 3728, 3731, 3732, 3733, 3626, 3374, + 2919, 219, 4645, 219, 223, 2915, 3769, 2914, 2913, 2518, 2834, 3738, 3695, 2511, 2503, 2502, 3811, 2501, 2500, 2498, - 3812, 2494, 2357, 2493, 2044, 153, 2046, 2047, 2048, 2049, - 2050, 3759, 2491, 2482, 3826, 2057, 3828, 3766, 3028, 2478, - 2477, 3834, 748, 3027, 3789, 2386, 2045, 3773, 2043, 219, - 3687, 3709, 3772, 2042, 2041, 2040, 4147, 3822, 1999, 1998, - 1989, 3778, 3026, 223, 3835, 1381, 1382, 1383, 1380, 1728, - 1381, 1382, 1383, 1380, 3791, 3727, 3793, 1726, 3795, 4608, - 4525, 4487, 750, 2267, 1456, 3829, 4481, 3831, 4409, 1381, - 1382, 1383, 1380, 4406, 4388, 4369, 3877, 4362, 3817, 4247, - 4246, 4198, 3846, 3025, 4178, 3885, 4176, 4171, 4149, 3849, - 1395, 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, - 1401, 1402, 1403, 1396, 3806, 4132, 2797, 2287, 3903, 3810, - 1381, 1382, 1383, 1380, 4002, 3814, 219, 3999, 2157, 4638, - 3024, 3960, 3866, 3726, 3021, 3959, 3956, 3955, 3918, 3915, - 3921, 3913, 3871, 1306, 3824, 3820, 3534, 3839, 3444, 1778, - 3843, 1789, 3645, 1780, 2176, 1795, 1306, 1381, 1382, 1383, - 1380, 1381, 1382, 1383, 1380, 3844, 1798, 1786, 1775, 3875, - 1599, 1306, 3020, 3976, 3336, 3296, 3290, 1716, 3215, 3863, - 3161, 3154, 3865, 3971, 3972, 3973, 3153, 3145, 3105, 3035, - 2815, 2747, 3985, 3019, 2632, 2591, 3905, 3900, 2590, 1381, - 1382, 1383, 1380, 4500, 3013, 750, 2549, 2267, 3978, 1914, - 3902, 2287, 1306, 3954, 219, 1714, 3001, 2344, 2144, 2057, - 1381, 1382, 1383, 1380, 2057, 2057, 2995, 2063, 1855, 1787, - 3945, 1381, 1382, 1383, 1380, 1526, 3908, 3922, 3912, 3901, - 3914, 4008, 1511, 1381, 1382, 1383, 1380, 240, 183, 223, - 3964, 1507, 1506, 1381, 1382, 1383, 1380, 3961, 4636, 2974, - 1505, 3966, 3991, 3994, 1504, 3227, 3963, 2542, 2143, 1503, - 1502, 3975, 3346, 2541, 1501, 1500, 2364, 1499, 3687, 2367, - 1498, 4007, 2370, 1497, 3980, 2372, 1381, 1382, 1383, 1380, - 2535, 3983, 1496, 3986, 1381, 1382, 1383, 1380, 2140, 3989, - 1381, 1382, 1383, 1380, 3995, 3993, 3325, 3996, 1495, 3997, - 1931, 1494, 3992, 1493, 1492, 1491, 1490, 1381, 1382, 1383, - 1380, 2149, 2142, 1489, 4070, 1488, 2394, 1487, 4076, 1486, - 4031, 1485, 1484, 1483, 4082, 3988, 3904, 1381, 1382, 1383, - 1380, 1482, 1481, 1480, 3907, 1479, 1478, 1477, 1476, 1306, - 4015, 1475, 1474, 4025, 1473, 1472, 1469, 4028, 1468, 1467, - 1465, 70, 1464, 1463, 1460, 1453, 1452, 1450, 1449, 1448, - 1447, 1446, 1306, 1716, 1716, 1445, 1444, 4116, 1443, 4079, - 3588, 4081, 1442, 1441, 1440, 1439, 4066, 1438, 1432, 1431, - 1430, 1429, 1428, 1345, 4124, 1292, 3715, 3716, 1306, 4124, - 4498, 4496, 4494, 4060, 4113, 3957, 2647, 2606, 1333, 4590, - 3718, 1714, 1929, 3690, 1306, 4143, 1306, 3302, 3128, 2828, - 2618, 1608, 4118, 4119, 1344, 3334, 3725, 4146, 3724, 4148, - 3341, 4112, 4121, 1716, 4095, 3342, 3333, 4094, 4093, 3339, - 4114, 4004, 3337, 3206, 3340, 3721, 2460, 3338, 3345, 3332, - 2465, 4005, 138, 73, 750, 4105, 1306, 1306, 2474, 72, - 1306, 1306, 4545, 69, 4131, 4425, 4154, 4117, 4130, 4126, - 4090, 1929, 3406, 3164, 1591, 2137, 2138, 3575, 2403, 3905, - 4200, 4139, 4142, 873, 155, 4232, 4195, 3884, 4202, 155, - 3764, 3765, 3325, 4152, 3954, 4155, 3641, 2483, 3642, 4159, - 2149, 4003, 3404, 4239, 2715, 2490, 3967, 3739, 1876, 2248, - 1876, 3945, 2132, 2133, 2134, 4182, 4183, 4248, 4249, 4196, - 4197, 1771, 3159, 738, 739, 4151, 1066, 2933, 2934, 2583, - 740, 1301, 1716, 2509, 741, 4157, 1810, 2963, 2514, 2515, - 2516, 2576, 2575, 2519, 2520, 2521, 2522, 2523, 2524, 2525, - 2526, 2527, 2528, 1807, 743, 2346, 1334, 4234, 2260, 4281, - 4282, 155, 750, 4260, 1339, 4237, 4235, 2407, 4073, 4272, - 1714, 4366, 4201, 3239, 4084, 3549, 4294, 3542, 4296, 3193, - 3240, 3241, 3242, 3155, 2667, 2616, 2147, 4259, 2107, 4649, - 4255, 1985, 1984, 1522, 1523, 1520, 1521, 4364, 4040, 3676, - 4041, 4297, 2768, 4299, 1518, 1519, 2761, 4267, 4271, 1516, - 1517, 2268, 1668, 1667, 4127, 1372, 3737, 3730, 2584, 4140, - 4141, 4010, 2409, 2152, 1617, 1616, 1640, 1582, 4097, 4328, - 4277, 4278, 4302, 4333, 2961, 4326, 2640, 4096, 4615, 4613, - 4564, 4027, 4542, 2960, 4541, 4303, 4539, 4457, 4410, 4242, - 1306, 4241, 4144, 4021, 3790, 3758, 3757, 3743, 2391, 2700, - 2670, 1812, 4321, 4350, 4315, 4356, 3742, 3379, 4048, 1614, - 4640, 4639, 4324, 4077, 3827, 3813, 3415, 3074, 3073, 3065, - 4327, 2892, 2480, 4640, 1329, 4031, 1300, 4330, 4329, 4639, - 4173, 4006, 4619, 4092, 4342, 3889, 4346, 3401, 2610, 1306, - 1803, 1298, 4072, 1168, 998, 999, 1000, 1001, 155, 1298, - 744, 1632, 81, 4236, 2, 4662, 4663, 1, 3050, 2061, - 1524, 1002, 997, 155, 1692, 155, 4363, 2807, 2321, 1720, - 2065, 1716, 1004, 3352, 4401, 3353, 3729, 3355, 2327, 1602, - 3080, 2428, 3314, 2759, 1876, 1404, 1405, 1406, 1407, 1397, - 1398, 1399, 1400, 1401, 1402, 1403, 1396, 2595, 4374, 3568, - 1600, 1072, 4398, 1991, 1190, 1834, 1320, 1831, 1319, 1714, - 1317, 1934, 2012, 875, 2621, 3291, 3872, 3873, 3874, 3265, - 4238, 4648, 4677, 4607, 3880, 3881, 4651, 1853, 4437, 859, - 4533, 3760, 3399, 4431, 4415, 4611, 4442, 4145, 4417, 4258, - 2433, 1377, 3605, 4411, 1098, 4449, 919, 887, 2057, 1451, - 2057, 2395, 3461, 3459, 886, 3860, 3117, 4243, 3371, 4335, - 1099, 4444, 2373, 4445, 4412, 4256, 1772, 1777, 2666, 2057, - 2057, 4343, 4477, 4153, 3637, 3201, 1802, 4458, 4472, 3916, - 4454, 4044, 4042, 4043, 786, 2300, 1066, 1595, 1191, 715, - 4446, 1395, 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1396, 4452, 4476, 1756, 1152, 4199, - 1306, 2617, 2646, 4204, 4460, 4461, 4368, 1044, 3841, 2605, - 1045, 1037, 4504, 3139, 3138, 1893, 1386, 1912, 3480, 1306, - 4493, 4495, 4497, 4499, 3481, 1426, 830, 2462, 4475, 3114, - 1716, 4521, 4511, 3939, 3365, 4522, 4484, 80, 79, 78, - 4529, 77, 248, 878, 4470, 1671, 247, 4291, 2941, 4109, - 2944, 4528, 4653, 856, 1685, 855, 854, 853, 852, 4492, - 851, 4520, 4530, 1184, 1179, 1174, 1178, 1182, 1714, 2779, - 2780, 2778, 2776, 2775, 4557, 1722, 2282, 2281, 3378, 3741, - 2352, 2354, 4531, 3586, 4538, 3230, 4536, 3968, 3225, 2200, - 1716, 1187, 4554, 2198, 4333, 1177, 4550, 4552, 1683, 2695, - 4559, 2702, 2197, 4587, 4555, 4551, 4553, 3779, 2976, 4034, - 4574, 2979, 4489, 1876, 4490, 4170, 4582, 3275, 4030, 2131, - 2691, 4566, 4565, 2998, 2999, 2217, 4567, 3246, 1714, 2214, - 2213, 3238, 3002, 3003, 4166, 4160, 4568, 4569, 2245, 4331, - 4123, 3923, 3924, 3930, 1250, 2615, 1185, 1224, 3008, 3009, - 3010, 1219, 4595, 1221, 4596, 1222, 4597, 1220, 4598, 2981, - 3703, 2672, 4599, 3544, 4603, 3099, 3098, 3096, 1188, 3095, - 1566, 4448, 4560, 4089, 2833, 1189, 2831, 1289, 3717, 3713, - 3514, 1532, 3038, 1530, 3040, 2629, 3722, 3043, 3335, 1882, - 2057, 4614, 4610, 4616, 4617, 1306, 4612, 4606, 2392, 3403, - 2283, 4431, 4620, 2279, 2278, 1194, 1193, 1753, 3818, 3883, - 4621, 4623, 4622, 48, 1175, 3316, 4356, 2769, 4305, 4627, - 2136, 1038, 4628, 4630, 2603, 4629, 117, 42, 133, 4633, - 116, 201, 4637, 63, 4635, 200, 4647, 62, 1186, 4655, - 18, 131, 4654, 198, 61, 4641, 4642, 4643, 4644, 47, - 46, 196, 111, 110, 4407, 4408, 109, 1306, 108, 130, - 195, 60, 232, 231, 234, 233, 230, 4659, 2904, 2905, - 4665, 4476, 4666, 4668, 4669, 229, 1176, 3455, 4675, 1760, - 228, 4679, 4543, 4129, 4676, 4524, 992, 45, 44, 4625, - 202, 43, 118, 64, 41, 40, 2639, 3532, 2151, 3183, - 3184, 3836, 4687, 4230, 1061, 3091, 1062, 2587, 39, 35, - 13, 12, 4655, 4695, 36, 4654, 4694, 23, 22, 1839, - 21, 27, 33, 32, 4679, 4696, 148, 147, 31, 146, - 4700, 1395, 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1396, 1042, 145, 144, 143, 142, - 141, 1876, 140, 30, 20, 55, 1409, 1183, 1413, 1056, - 54, 1052, 53, 52, 51, 50, 9, 136, 134, 155, - 155, 155, 1168, 129, 1410, 1412, 1408, 127, 1411, 1395, - 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, - 1402, 1403, 1396, 29, 1180, 128, 125, 1181, 126, 121, - 120, 119, 114, 112, 92, 91, 1173, 90, 3949, 105, - 104, 103, 2481, 102, 3928, 1395, 1394, 1404, 1405, 1406, - 1407, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1396, 1033, - 101, 100, 98, 99, 1097, 89, 88, 87, 183, 223, - 182, 214, 184, 86, 85, 122, 107, 115, 113, 2057, - 96, 1416, 106, 97, 95, 3940, 94, 93, 215, 84, - 83, 2091, 2092, 2093, 82, 206, 124, 123, 3931, 216, - 135, 203, 65, 180, 179, 178, 177, 176, 174, 3926, - 175, 173, 172, 171, 3951, 3952, 170, 169, 153, 168, - 3927, 56, 57, 58, 2125, 59, 191, 190, 192, 2130, - 194, 197, 193, 139, 199, 188, 186, 189, 187, 185, - 74, 11, 219, 1192, 1058, 132, 1051, 1172, 19, 4, + 3812, 2494, 2357, 2493, 2044, 2491, 2046, 2047, 2048, 2049, + 2050, 2482, 2478, 2477, 3826, 2057, 3828, 3766, 3759, 2386, + 2045, 3834, 748, 2043, 3789, 2042, 2041, 3773, 2040, 1999, + 1998, 3709, 3772, 1989, 1728, 1726, 4608, 3822, 4525, 4487, + 1456, 4481, 4409, 4406, 3835, 4388, 3778, 4369, 4362, 4247, + 4246, 4198, 4178, 4176, 3791, 3727, 3793, 219, 3795, 4171, + 4149, 4132, 750, 2267, 1396, 3829, 4002, 3831, 3999, 3960, + 3959, 3956, 3955, 3918, 3915, 3913, 3877, 3871, 3817, 3824, + 3820, 3534, 3846, 3444, 1778, 3885, 1789, 1780, 1795, 3849, + 1394, 1393, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, + 1401, 1402, 1403, 1395, 3806, 1798, 2797, 2287, 3903, 3810, + 1786, 1775, 1599, 3336, 3296, 3290, 3215, 3161, 2157, 3814, + 3154, 2499, 3866, 3153, 3145, 3687, 3105, 3035, 2815, 2747, + 3921, 2632, 2591, 1306, 2590, 2549, 3839, 1914, 219, 2344, + 3843, 2144, 3645, 2063, 2176, 1855, 1306, 1787, 1526, 1511, + 1507, 1506, 1505, 1504, 1503, 3844, 1502, 1501, 1500, 3875, + 1499, 1306, 1498, 3976, 1497, 1496, 1495, 1716, 1494, 3863, + 1493, 1492, 1491, 3971, 3972, 3973, 3865, 1490, 1489, 1488, + 1487, 1486, 3985, 1485, 1484, 1483, 3905, 3900, 1482, 1481, + 1480, 1479, 1478, 1477, 1476, 750, 1475, 2267, 3978, 1474, + 3902, 2287, 1306, 3954, 1473, 1714, 1472, 1469, 1468, 2057, + 1467, 1465, 1464, 1463, 2057, 2057, 1460, 1453, 1452, 1450, + 3945, 1449, 1448, 1447, 1446, 1445, 3908, 3922, 3912, 3901, + 3914, 4008, 1444, 1443, 1442, 1441, 1440, 240, 1439, 1438, + 3964, 1432, 1431, 1430, 1429, 1428, 1345, 3961, 1292, 3715, + 3716, 4498, 3991, 3994, 4496, 3227, 3966, 3963, 4494, 3957, + 2647, 2606, 1333, 4636, 4590, 3975, 2364, 3718, 3690, 2367, + 3302, 4007, 2370, 3128, 3980, 2372, 2828, 2618, 1608, 1344, + 3334, 3983, 3341, 3986, 3339, 3337, 3726, 3342, 3989, 3340, + 3338, 3333, 3725, 4004, 3995, 3993, 3325, 3724, 3997, 3996, + 3721, 3345, 3992, 4005, 3332, 4545, 138, 73, 72, 69, + 4425, 2149, 4154, 3406, 4070, 3164, 2394, 3404, 4076, 3575, + 4031, 2137, 2138, 3239, 4082, 3988, 3904, 2132, 2133, 2134, + 3240, 3241, 3242, 3884, 3907, 3641, 2715, 3642, 3967, 1306, + 4015, 3764, 3765, 4025, 3739, 2248, 1771, 4028, 3159, 2933, + 2934, 70, 1810, 4003, 2963, 2576, 2575, 1807, 2583, 2346, + 2260, 1339, 1306, 1716, 1716, 4366, 4084, 4116, 3549, 4079, + 3588, 4081, 3542, 3193, 3155, 2667, 4066, 738, 739, 740, + 741, 2616, 2147, 2107, 4124, 1985, 1984, 4649, 1306, 4124, + 1522, 1523, 4364, 4060, 4113, 1520, 1521, 1518, 1519, 1516, + 1517, 1714, 1929, 3676, 1306, 4143, 1306, 2768, 2761, 2268, + 1668, 1667, 4118, 4119, 4127, 4073, 1372, 4146, 2407, 4148, + 3737, 4112, 4121, 1716, 4095, 3730, 2584, 4094, 4093, 2409, + 4114, 2152, 1617, 3206, 1616, 4615, 2460, 1582, 1640, 2640, + 2465, 4613, 4564, 4097, 750, 4105, 1306, 1306, 2474, 4542, + 1306, 1306, 4096, 2961, 4131, 4541, 4539, 4117, 4130, 4126, + 4090, 1929, 2960, 4457, 4410, 4242, 4241, 4144, 2403, 3905, + 4200, 4139, 4142, 873, 155, 4232, 4195, 4021, 4202, 155, + 3790, 3758, 3325, 4152, 3954, 4155, 3757, 2483, 3743, 4159, + 2149, 2391, 2700, 4239, 2670, 2490, 1812, 3742, 1876, 3379, + 1876, 3945, 1614, 4640, 4639, 4182, 4183, 4248, 4249, 4196, + 4197, 4077, 3827, 3813, 3415, 4151, 1066, 3074, 3073, 3065, + 2892, 1301, 1716, 2509, 2480, 4157, 1329, 1300, 2514, 2515, + 2516, 4639, 4640, 2519, 2520, 2521, 2522, 2523, 2524, 2525, + 2526, 2527, 2528, 4173, 743, 4006, 1334, 4234, 4619, 4281, + 4282, 155, 750, 4260, 4092, 4237, 4235, 3889, 3401, 4272, + 1714, 2610, 4201, 1803, 1298, 744, 4294, 1632, 4296, 998, + 999, 1000, 1001, 81, 1298, 2, 4662, 4259, 4663, 1, + 4255, 3050, 2061, 1524, 1002, 997, 1692, 2807, 4040, 2321, + 4041, 4297, 1720, 4299, 2065, 1004, 3352, 4267, 4271, 3353, + 3729, 3355, 2327, 1602, 3080, 2428, 3314, 2759, 2595, 4140, + 4141, 4010, 3568, 1600, 1072, 1991, 1968, 1834, 1320, 4328, + 4277, 4278, 4302, 4333, 1831, 4326, 1319, 1317, 1934, 2012, + 875, 4027, 2621, 3291, 3265, 4303, 4238, 4648, 4677, 4607, + 1306, 4651, 1853, 859, 4533, 3760, 3399, 4415, 4611, 4417, + 4258, 2433, 4321, 4350, 4315, 4356, 1377, 3605, 4048, 1098, + 919, 887, 4324, 1451, 2395, 3461, 3459, 886, 3860, 3117, + 4327, 4243, 3371, 4335, 1099, 4031, 2373, 4330, 4329, 4412, + 4256, 1772, 1777, 2666, 4342, 4343, 4346, 4477, 4153, 1306, + 3637, 3201, 4072, 1168, 1802, 4472, 3916, 4044, 155, 4042, + 4043, 786, 2300, 4236, 715, 1152, 4199, 2617, 1396, 2646, + 4204, 4368, 1044, 155, 3841, 155, 4363, 2605, 1045, 1037, + 3139, 1716, 3138, 1892, 4401, 1385, 1912, 3480, 3481, 1426, + 830, 2462, 3114, 3939, 1876, 1393, 1404, 1405, 1406, 1407, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1395, 4374, 3365, + 80, 79, 4398, 78, 77, 248, 878, 247, 4291, 1714, + 4109, 4528, 4653, 856, 855, 854, 3872, 3873, 3874, 853, + 852, 851, 2779, 2780, 3880, 3881, 2778, 2776, 4437, 2775, + 2282, 2281, 3378, 4431, 3741, 2352, 4442, 2354, 3586, 3230, + 3968, 3225, 2200, 4411, 2198, 4449, 1683, 2695, 2057, 2702, + 2057, 2197, 4587, 3779, 4034, 4489, 4490, 4170, 3275, 4030, + 2131, 4444, 2691, 4445, 2217, 3246, 2214, 2213, 3238, 2057, + 2057, 4166, 4160, 2245, 4331, 4123, 3923, 4458, 3924, 3930, + 4454, 1250, 1964, 2615, 1224, 1219, 1066, 1595, 1221, 1961, + 4446, 1222, 1220, 1963, 1960, 1962, 1966, 1967, 2981, 3703, + 2672, 1965, 3544, 3099, 3098, 4452, 4476, 1756, 3096, 3095, + 1306, 1566, 4448, 4560, 4460, 4461, 4089, 2833, 2831, 1289, + 3717, 3713, 4504, 3514, 1532, 1530, 2629, 3722, 3335, 1306, + 4493, 4495, 4497, 4499, 2392, 3403, 2283, 2279, 4475, 2278, + 1716, 4521, 4511, 1968, 1194, 4522, 4484, 1193, 1753, 3818, + 4529, 3883, 48, 3316, 4470, 1671, 2769, 4305, 2941, 2136, + 2944, 1038, 2603, 117, 1685, 42, 133, 116, 201, 4492, + 63, 4520, 4530, 200, 62, 18, 131, 198, 1714, 61, + 47, 46, 196, 111, 4557, 1722, 110, 109, 108, 130, + 195, 60, 4531, 232, 4538, 231, 4536, 234, 233, 230, + 1716, 2904, 4554, 2905, 4333, 229, 4550, 4552, 1760, 228, + 4559, 4543, 4129, 4524, 4555, 4551, 4553, 992, 2976, 45, + 4574, 2979, 44, 1876, 202, 43, 4582, 118, 64, 41, + 40, 4566, 4565, 2998, 2999, 2639, 4567, 3532, 1714, 2151, + 3836, 3091, 3002, 3003, 2587, 39, 4568, 4569, 1971, 1972, + 1973, 1974, 1975, 1976, 1969, 1970, 35, 13, 3008, 3009, + 3010, 12, 4595, 36, 4596, 23, 4597, 22, 4598, 1839, + 21, 27, 4599, 33, 4603, 32, 148, 147, 31, 146, + 145, 144, 143, 142, 141, 140, 30, 20, 55, 54, + 53, 52, 3038, 51, 3040, 50, 9, 3043, 136, 1882, + 2057, 4614, 4610, 4616, 4617, 1306, 4612, 4606, 134, 129, + 127, 4431, 4620, 29, 128, 125, 126, 121, 120, 119, + 4621, 4623, 4622, 114, 112, 92, 4356, 91, 90, 4627, + 105, 104, 4628, 4630, 103, 4629, 102, 101, 100, 4633, + 98, 99, 4637, 1097, 4635, 89, 4647, 4209, 88, 4655, + 87, 86, 4654, 85, 122, 4641, 4642, 4643, 4644, 1964, + 107, 115, 113, 96, 4407, 4408, 1961, 1306, 106, 97, + 1963, 1960, 1962, 1966, 1967, 95, 94, 4659, 1965, 93, + 4665, 4476, 4666, 4668, 4669, 84, 83, 4352, 4675, 82, + 124, 4679, 123, 135, 4676, 203, 65, 180, 179, 4625, + 178, 177, 176, 174, 175, 173, 172, 171, 170, 3183, + 3184, 169, 4687, 4230, 1061, 1396, 1062, 168, 56, 57, + 58, 59, 4655, 4695, 191, 4654, 4694, 190, 192, 194, + 197, 4208, 193, 199, 4679, 4696, 188, 186, 189, 187, + 4700, 1394, 1393, 1404, 1405, 1406, 1407, 1397, 1398, 1399, + 1400, 1401, 1402, 1403, 1395, 1042, 185, 74, 11, 132, + 19, 1876, 1396, 4, 0, 1409, 0, 1413, 0, 1056, + 0, 1052, 0, 0, 1396, 0, 0, 0, 0, 155, + 155, 155, 1168, 1410, 1412, 1408, 0, 1411, 1394, 1393, + 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1395, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, + 1401, 1402, 1403, 1395, 1949, 1950, 1951, 1952, 1953, 1954, + 1955, 1956, 1957, 1958, 1959, 1971, 1972, 1973, 1974, 1975, + 1976, 1969, 1970, 0, 0, 0, 0, 0, 0, 1033, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 223, + 182, 214, 184, 0, 0, 1396, 0, 0, 1409, 2057, + 1413, 1416, 0, 0, 0, 0, 0, 0, 215, 0, + 0, 2091, 2092, 2093, 0, 206, 1410, 1412, 1408, 216, + 1411, 1394, 1393, 1404, 1405, 1406, 1407, 1397, 1398, 1399, + 1400, 1401, 1402, 1403, 1395, 0, 0, 0, 153, 0, + 0, 0, 0, 0, 2125, 0, 0, 0, 0, 2130, + 0, 0, 2476, 139, 0, 0, 4205, 0, 0, 0, + 0, 0, 219, 0, 1058, 0, 1051, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 1054, 0, 0, 0, - 3932, 4377, 4378, 0, 0, 0, 0, 0, 4382, 4383, + 0, 4377, 4378, 0, 0, 0, 0, 0, 4382, 4383, 4384, 4385, 4386, 4387, 0, 0, 1043, 4391, 4392, 4393, 4394, 3385, 0, 3387, 4396, 4397, 0, 4399, 0, 0, - 0, 0, 0, 0, 0, 0, 1050, 0, 3450, 0, + 0, 0, 0, 0, 0, 0, 1050, 0, 0, 0, 0, 0, 0, 0, 0, 2394, 0, 0, 0, 0, 0, 2195, 2196, 0, 0, 1060, 0, 0, 0, 0, 1049, 0, 0, 0, 1048, 0, 0, 0, 0, 0, - 1036, 162, 163, 0, 164, 165, 0, 0, 0, 166, - 1515, 0, 167, 0, 0, 0, 0, 0, 0, 1041, - 0, 3431, 1395, 1394, 1404, 1405, 1406, 1407, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 1396, 0, 0, 0, 0, - 0, 0, 0, 0, 2333, 0, 0, 3950, 3453, 2681, - 2333, 2333, 2333, 4459, 0, 0, 0, 0, 0, 4464, - 4465, 0, 0, 0, 0, 1039, 0, 0, 0, 0, - 0, 0, 0, 0, 3936, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 181, 212, 221, 213, 75, 137, - 4485, 0, 0, 0, 0, 0, 3933, 3937, 3935, 3934, + 1036, 162, 163, 0, 164, 165, 0, 4210, 4211, 166, + 1515, 0, 167, 0, 4147, 0, 0, 0, 0, 1041, + 0, 3431, 0, 4206, 4207, 0, 4214, 4213, 4212, 4225, + 4226, 4227, 4215, 4216, 4219, 4221, 4220, 4217, 4218, 4222, + 4223, 4224, 1396, 0, 2333, 0, 4228, 0, 3453, 0, + 2333, 2333, 2333, 4459, 0, 0, 0, 4229, 0, 4464, + 4465, 0, 0, 0, 0, 1039, 0, 0, 1394, 1393, + 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1395, 0, 0, 181, 212, 221, 213, 75, 137, + 4485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1059, 0, 0, 0, 211, 205, - 204, 0, 0, 0, 0, 76, 0, 0, 0, 0, + 204, 0, 0, 0, 0, 76, 0, 1396, 0, 2971, 0, 0, 0, 0, 0, 0, 0, 1040, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 183, 223, - 182, 214, 184, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3943, 3944, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 206, 0, 0, 0, 216, + 0, 0, 0, 161, 0, 4145, 0, 0, 183, 223, + 182, 214, 184, 1394, 1393, 1404, 1405, 1406, 1407, 1397, + 1398, 1399, 1400, 1401, 1402, 1403, 1395, 0, 215, 0, + 0, 0, 0, 1396, 0, 206, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 207, 208, 209, 0, - 1725, 0, 0, 0, 743, 0, 0, 0, 153, 1395, - 1394, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, - 1402, 1403, 1396, 139, 0, 2057, 0, 0, 1057, 0, + 1725, 0, 0, 0, 743, 0, 0, 0, 153, 1394, + 1393, 1404, 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, + 1402, 1403, 1395, 139, 0, 2057, 0, 0, 1057, 0, 2057, 0, 219, 0, 0, 798, 797, 804, 794, 0, - 0, 3953, 155, 0, 0, 0, 0, 0, 801, 802, - 0, 803, 807, 0, 3929, 788, 0, 3942, 0, 0, - 0, 0, 0, 0, 0, 812, 217, 0, 1046, 0, - 2971, 0, 0, 0, 0, 0, 0, 1035, 0, 3652, + 0, 3455, 155, 0, 0, 0, 0, 0, 801, 802, + 0, 803, 807, 0, 0, 788, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 812, 217, 0, 1046, 1396, + 0, 0, 0, 0, 0, 0, 0, 1035, 0, 3652, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, - 0, 210, 0, 150, 1395, 1394, 1404, 1405, 1406, 1407, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1396, 0, 0, - 0, 816, 0, 0, 818, 0, 0, 0, 0, 817, + 0, 210, 0, 150, 0, 1394, 1393, 1404, 1405, 1406, + 1407, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1395, 0, + 3450, 816, 0, 0, 818, 0, 0, 0, 0, 817, 0, 162, 163, 0, 164, 165, 0, 0, 0, 166, - 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, - 2455, 0, 0, 0, 0, 0, 155, 0, 151, 155, + 0, 0, 167, 0, 0, 0, 0, 0, 1396, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 151, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3686, 68, 0, 155, 1395, 1394, 1404, 1405, 1406, 1407, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1396, 0, 0, + 3686, 68, 0, 155, 1394, 1393, 1404, 1405, 1406, 1407, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1395, 0, 0, 0, 0, 0, 0, 1034, 0, 0, 0, 1032, 0, - 0, 0, 3947, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 212, 221, 213, 75, 137, 0, 0, 0, 0, 71, 0, 0, 0, 0, 2570, 0, 2572, 0, 0, 0, 0, 0, 0, 211, 205, @@ -2593,8 +2593,8 @@ var yyAct = [...]int{ 0, 0, 2592, 2593, 2594, 0, 0, 0, 0, 0, 159, 220, 160, 161, 0, 0, 0, 0, 2611, 2612, 2613, 2614, 0, 0, 1086, 66, 0, 0, 0, 0, - 1416, 0, 3941, 0, 0, 0, 0, 0, 0, 3946, - 789, 791, 790, 0, 0, 0, 0, 3948, 0, 0, + 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 789, 791, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 207, 208, 209, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 815, 3781, 0, 0, 0, 0, 0, 793, 0, @@ -2604,11 +2604,11 @@ var yyAct = [...]int{ 3794, 0, 67, 0, 0, 0, 5, 0, 0, 3804, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 0, 0, - 158, 0, 0, 0, 0, 0, 0, 149, 0, 0, + 158, 1396, 0, 0, 0, 0, 0, 149, 0, 0, 0, 210, 0, 150, 0, 0, 0, 0, 3686, 0, - 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 798, 797, 804, + 0, 0, 0, 0, 2481, 1685, 0, 1394, 1393, 1404, + 1405, 1406, 1407, 1397, 1398, 1399, 1400, 1401, 1402, 1403, + 1395, 0, 0, 0, 0, 0, 155, 798, 797, 804, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 802, 1130, 803, 807, 1129, 0, 788, 151, 0, 0, 0, 1722, 0, 0, 0, 0, 812, 0, 0, @@ -2616,16 +2616,16 @@ var yyAct = [...]int{ 2333, 806, 808, 0, 0, 809, 810, 811, 0, 0, 0, 813, 814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 0, - 0, 0, 0, 816, 1087, 0, 818, 0, 0, 0, - 0, 817, 0, 0, 71, 0, 1968, 0, 0, 0, + 0, 0, 0, 816, 1087, 0, 818, 0, 1396, 0, + 2455, 817, 0, 0, 71, 0, 0, 0, 0, 0, 2286, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1089, 0, 2939, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 220, 160, 0, 0, 0, 0, 0, 0, 2057, + 0, 1089, 0, 2939, 1394, 1393, 1404, 1405, 1406, 1407, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1395, 0, 0, + 159, 220, 160, 0, 0, 0, 0, 1396, 0, 2057, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, 3998, - 0, 0, 4000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 4000, 1394, 1393, 1404, 1405, 1406, 1407, 1397, + 1398, 1399, 1400, 1401, 1402, 1403, 1395, 155, 0, 0, 155, 155, 0, 155, 0, 0, 4009, 0, 1110, 0, 1112, 1109, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2639,9 +2639,9 @@ var yyAct = [...]int{ 1119, 0, 0, 815, 0, 0, 3075, 3076, 3077, 0, 793, 0, 0, 0, 2246, 0, 0, 0, 0, 2207, 0, 0, 2254, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1964, 0, 0, 0, 1120, 1124, 0, 1961, - 0, 0, 0, 1963, 1960, 1962, 1966, 1967, 1416, 0, - 0, 1965, 2248, 2216, 0, 0, 1105, 0, 1103, 1107, + 0, 0, 0, 0, 0, 0, 1120, 1124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1416, 0, + 0, 0, 2248, 2216, 0, 0, 1105, 0, 1103, 1107, 1127, 0, 2249, 2250, 1104, 1101, 1100, 3171, 1106, 1091, 1092, 1090, 0, 1080, 1093, 1094, 1095, 1096, 1077, 0, 0, 1125, 0, 1126, 0, 0, 0, 0, 2215, 0, @@ -2654,9 +2654,9 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 1111, 0, 0, 0, 795, 799, 805, 0, 806, 808, 0, 0, 809, 810, 811, 0, 0, 2246, 813, 814, 0, 0, 2207, 0, 0, - 2254, 0, 0, 0, 0, 0, 2239, 1949, 1950, 1951, - 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1971, 1972, - 1973, 1974, 1975, 1976, 1969, 1970, 0, 0, 0, 0, + 2254, 0, 0, 0, 0, 0, 2239, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2248, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 2249, 2250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2664,7 +2664,7 @@ var yyAct = [...]int{ 0, 0, 0, 1084, 1085, 0, 0, 1076, 0, 3369, 3370, 0, 1079, 0, 2223, 0, 0, 0, 0, 2206, 2208, 2205, 0, 0, 0, 2202, 1168, 0, 0, 155, - 2227, 0, 0, 0, 1381, 1382, 1383, 1380, 0, 0, + 2227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2233, 0, 0, 0, 0, 0, 0, 0, 2218, 0, 2201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2221, 2255, 0, 0, 2222, 2224, 2226, 0, 2228, @@ -2673,7 +2673,7 @@ var yyAct = [...]int{ 0, 0, 4367, 0, 2239, 0, 0, 0, 2210, 0, 0, 0, 0, 0, 0, 789, 791, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, - 0, 0, 0, 0, 0, 1968, 0, 0, 0, 800, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 819, 820, 821, 822, 823, 815, 0, 0, 0, 2247, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2695,77 +2695,77 @@ var yyAct = [...]int{ 3578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2212, 0, 3592, 0, 3593, 0, 0, 0, 0, 0, 219, - 0, 1964, 0, 0, 2203, 2204, 2248, 0, 1961, 2223, - 0, 0, 1963, 1960, 1962, 1966, 1967, 0, 0, 0, - 1965, 0, 2244, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2203, 2204, 2248, 0, 0, 2223, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2253, 0, 0, 2220, 0, 0, 0, 2219, 0, 0, 0, 0, 0, 4355, 0, 0, 0, 0, 4579, 0, 0, 0, 0, 2223, 4583, 0, 0, 0, 0, 0, 0, 2237, 0, - 0, 0, 0, 0, 0, 0, 0, 2225, 0, 0, - 0, 0, 0, 2246, 0, 0, 0, 0, 0, 2239, + 0, 0, 0, 0, 0, 2246, 0, 2225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2239, 2252, 2251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2248, 0, 0, 0, 0, 792, 0, 0, 0, + 0, 0, 0, 2248, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 2333, 0, 0, 0, 0, 0, 0, 0, 2239, 0, 0, 0, 0, 0, 0, 2212, 0, 0, - 4579, 0, 0, 0, 0, 155, 1949, 1950, 1951, 1952, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1971, 1972, 1973, - 1974, 1975, 1976, 1969, 1970, 2223, 155, 0, 0, 0, + 4579, 0, 0, 0, 0, 155, 0, 0, 0, 2246, + 0, 0, 0, 0, 0, 0, 0, 2223, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 2227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2233, 2253, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2246, 4579, 0, 0, 0, + 0, 0, 0, 0, 2233, 2253, 0, 2248, 0, 0, + 0, 0, 0, 0, 0, 0, 4579, 0, 0, 0, 0, 0, 0, 0, 2221, 2255, 0, 0, 2222, 2224, 2226, 0, 2228, 2229, 2230, 2234, 2235, 2236, 2238, 2241, 2242, 2243, 0, 0, 2227, 0, 0, 0, 0, 2231, - 2240, 2232, 0, 2248, 0, 2233, 0, 0, 0, 0, - 0, 4325, 0, 0, 0, 2239, 0, 0, 0, 0, + 2240, 2232, 0, 4325, 0, 2233, 0, 2239, 0, 0, + 0, 2223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2221, 2255, 4698, 3775, 2222, 2224, 2226, 0, 2228, 2229, 2230, 2234, 2235, 2236, 2238, 2241, 2242, 2243, 0, 0, 0, 0, 0, 0, 0, - 2231, 2240, 2232, 2247, 0, 0, 0, 2223, 0, 0, + 2231, 2240, 2232, 2247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, 2286, 2286, 2286, 2286, 2286, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2286, 0, 0, - 0, 0, 0, 0, 2247, 0, 0, 0, 0, 2227, - 0, 0, 0, 0, 0, 0, 0, 2244, 0, 0, - 2233, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2220, 0, 2239, 0, 2219, - 2221, 2255, 0, 0, 2222, 2224, 2226, 0, 2228, 2229, - 2230, 2234, 2235, 2236, 2238, 2241, 2242, 2243, 0, 0, - 0, 0, 0, 2237, 0, 2231, 2240, 2232, 2244, 0, - 0, 0, 2225, 2333, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2220, 0, 0, 0, - 2219, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 0, 155, 0, 2237, 0, 0, 0, 0, 2247, - 0, 0, 0, 2225, 0, 0, 0, 0, 0, 0, - 0, 2227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2233, 0, 0, 0, 0, 0, 0, 0, + 0, 2239, 0, 0, 0, 0, 0, 2286, 0, 0, + 0, 2227, 0, 0, 2247, 0, 0, 0, 0, 0, + 0, 0, 2233, 0, 0, 0, 0, 2244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2221, 2255, 0, 0, 2222, 2224, 2226, 0, + 0, 0, 2221, 2255, 0, 2220, 2222, 2224, 2226, 2219, 2228, 2229, 2230, 2234, 2235, 2236, 2238, 2241, 2242, 2243, - 0, 0, 0, 2244, 0, 0, 0, 2231, 2240, 2232, + 0, 0, 0, 0, 0, 0, 0, 2231, 2240, 2232, + 0, 0, 0, 2237, 0, 0, 0, 0, 2244, 0, + 0, 0, 2225, 2333, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2227, 2220, 0, 0, 0, + 2219, 0, 0, 0, 0, 0, 2233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 2247, 155, 0, 2237, 0, 2221, 2255, 0, 0, + 2222, 2224, 2226, 2225, 2228, 2229, 2230, 2234, 2235, 2236, + 2238, 2241, 2242, 2243, 0, 0, 0, 0, 0, 0, + 0, 2231, 2240, 2232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2220, 0, 0, 0, 2219, 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2237, - 0, 0, 0, 0, 0, 0, 0, 0, 2225, 0, - 0, 2247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2220, 0, 2247, 0, 2219, 0, 0, + 0, 0, 0, 0, 0, 0, 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2237, 0, 0, 0, 0, 0, 0, 0, 0, + 2225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2220, 0, 0, + 0, 2219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2244, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2237, 0, 0, 0, 0, + 0, 0, 0, 0, 2225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2220, 0, 0, 0, 2219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1168, 2237, 155, 0, 0, 0, 0, 0, 0, 155, - 2225, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 1168, 0, 155, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, @@ -3760,7 +3760,7 @@ var yyAct = [...]int{ 692, 693, 695, 697, 938, 699, 493, 494, 707, 0, 0, 926, 702, 703, 700, 424, 480, 501, 487, 894, 726, 575, 576, 727, 688, 315, 0, 842, 451, 0, - 0, 590, 624, 613, 698, 578, 0, 0, 1894, 0, + 0, 590, 624, 613, 698, 578, 0, 0, 1893, 0, 0, 0, 845, 0, 0, 0, 367, 0, 0, 419, 628, 609, 620, 610, 595, 596, 597, 604, 379, 598, 599, 600, 570, 601, 571, 602, 603, 885, 627, 577, @@ -3792,7 +3792,7 @@ var yyAct = [...]int{ 483, 502, 503, 504, 362, 346, 477, 347, 382, 348, 317, 354, 352, 355, 485, 356, 319, 459, 508, 0, 378, 473, 429, 320, 428, 460, 507, 506, 333, 534, - 1895, 1896, 632, 0, 547, 730, 731, 732, 556, 0, + 1894, 1895, 632, 0, 547, 730, 731, 732, 556, 0, 466, 329, 328, 0, 0, 0, 358, 461, 342, 344, 345, 343, 456, 457, 561, 562, 563, 565, 0, 566, 567, 0, 0, 0, 0, 568, 633, 649, 617, 586, @@ -4549,161 +4549,161 @@ var yyAct = [...]int{ 0, 635, 646, 680, 0, 692, 693, 695, 697, 696, 699, 493, 494, 707, 0, 0, 701, 702, 703, 700, 424, 480, 501, 487, 0, 726, 575, 576, 727, 688, - 315, 451, 0, 0, 590, 624, 613, 698, 578, 0, - 0, 0, 0, 0, 2358, 0, 0, 0, 0, 367, - 0, 0, 419, 628, 609, 620, 610, 595, 596, 597, - 604, 379, 598, 599, 600, 570, 601, 571, 602, 603, - 0, 627, 577, 489, 435, 0, 644, 0, 0, 0, + 315, 183, 223, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 451, 0, 0, 590, 624, 613, 698, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, - 2359, 0, 0, 0, 335, 246, 572, 694, 574, 573, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, - 0, 0, 1381, 1382, 1383, 1380, 0, 0, 0, 0, + 367, 0, 0, 419, 628, 609, 620, 610, 595, 596, + 597, 604, 379, 598, 599, 600, 570, 601, 571, 602, + 603, 153, 627, 577, 489, 435, 0, 644, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 219, 2937, 0, 245, 0, + 0, 0, 0, 0, 0, 335, 246, 572, 694, 574, + 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, - 519, 0, 532, 0, 404, 405, 0, 0, 0, 0, - 0, 0, 0, 322, 497, 516, 336, 484, 530, 341, - 492, 509, 331, 450, 481, 0, 0, 324, 514, 491, - 432, 323, 0, 475, 364, 381, 361, 448, 0, 0, - 513, 543, 360, 533, 0, 524, 326, 0, 523, 447, - 510, 515, 433, 426, 0, 325, 512, 431, 425, 410, - 371, 559, 411, 412, 385, 462, 423, 463, 386, 437, - 436, 438, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 0, 0, 0, 0, 0, 554, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 687, 0, 0, 691, 0, 526, - 0, 0, 0, 0, 0, 0, 495, 0, 0, 413, - 0, 0, 0, 544, 0, 478, 453, 729, 0, 0, - 476, 421, 511, 464, 517, 498, 525, 470, 465, 316, - 499, 363, 434, 332, 334, 719, 365, 368, 372, 373, - 443, 444, 458, 483, 502, 503, 504, 362, 346, 477, - 347, 382, 348, 317, 354, 352, 355, 485, 356, 319, - 459, 508, 0, 378, 473, 429, 320, 428, 460, 507, - 506, 333, 534, 541, 542, 632, 0, 547, 730, 731, - 732, 556, 0, 466, 329, 328, 0, 0, 0, 358, - 461, 342, 344, 345, 343, 456, 457, 561, 562, 563, - 565, 0, 566, 567, 0, 0, 0, 0, 568, 633, - 649, 617, 586, 549, 641, 583, 587, 588, 399, 400, - 401, 652, 0, 0, 0, 540, 414, 415, 0, 370, - 369, 430, 321, 0, 0, 407, 398, 467, 327, 366, - 409, 403, 416, 417, 418, 376, 311, 312, 725, 359, - 449, 654, 689, 690, 579, 0, 642, 580, 589, 351, - 614, 626, 625, 445, 539, 0, 637, 640, 569, 724, - 0, 634, 648, 728, 647, 721, 455, 0, 482, 645, - 592, 0, 638, 611, 612, 0, 639, 607, 643, 0, - 581, 0, 550, 553, 582, 667, 668, 669, 318, 552, - 671, 672, 673, 674, 675, 676, 677, 670, 522, 615, - 591, 618, 531, 594, 593, 0, 0, 629, 548, 630, - 631, 439, 440, 441, 442, 380, 655, 340, 551, 469, - 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, - 621, 622, 619, 733, 0, 678, 679, 0, 0, 545, - 546, 375, 0, 564, 383, 339, 454, 377, 529, 406, - 0, 557, 623, 558, 471, 472, 681, 686, 682, 683, - 685, 705, 446, 397, 402, 486, 408, 422, 474, 528, - 452, 479, 337, 518, 488, 427, 608, 636, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 663, 662, 661, 660, 659, - 658, 657, 656, 0, 0, 605, 505, 353, 305, 349, - 350, 357, 722, 718, 723, 706, 709, 708, 684, 0, - 313, 585, 420, 468, 374, 650, 651, 0, 704, 259, - 260, 261, 262, 263, 264, 265, 266, 306, 267, 268, - 269, 270, 271, 272, 273, 276, 277, 278, 279, 280, - 281, 282, 283, 653, 274, 275, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 0, 0, 0, 0, 307, 710, 711, 712, 713, 714, - 0, 0, 308, 309, 310, 0, 0, 300, 496, 301, - 302, 303, 304, 0, 0, 535, 536, 537, 560, 0, - 538, 520, 584, 384, 314, 500, 527, 720, 0, 0, - 0, 0, 0, 0, 0, 635, 646, 680, 0, 692, - 693, 695, 697, 696, 699, 493, 494, 707, 0, 0, - 701, 702, 703, 700, 424, 480, 501, 487, 0, 726, - 575, 576, 727, 688, 315, 183, 223, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 451, 0, 0, 590, - 624, 613, 698, 578, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 367, 0, 0, 419, 628, 609, - 620, 610, 595, 596, 597, 604, 379, 598, 599, 600, - 570, 601, 571, 602, 603, 153, 627, 577, 489, 435, - 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, - 2937, 0, 245, 0, 0, 0, 0, 0, 0, 335, - 246, 572, 694, 574, 573, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, + 490, 519, 0, 532, 0, 404, 405, 0, 0, 0, + 0, 0, 0, 0, 322, 497, 516, 336, 484, 530, + 341, 492, 509, 331, 450, 481, 0, 0, 324, 514, + 491, 432, 323, 0, 475, 364, 381, 361, 448, 0, + 0, 513, 543, 360, 533, 0, 524, 326, 0, 523, + 447, 510, 515, 433, 426, 0, 325, 512, 431, 425, + 410, 371, 559, 411, 412, 385, 462, 423, 463, 386, + 437, 436, 438, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 0, 0, 0, 0, 0, 554, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 687, 0, 0, 691, 0, + 526, 0, 0, 0, 0, 0, 0, 495, 0, 0, + 413, 0, 0, 0, 544, 0, 478, 453, 729, 0, + 0, 476, 421, 511, 464, 517, 498, 525, 470, 465, + 316, 499, 363, 434, 332, 334, 719, 365, 368, 372, + 373, 443, 444, 458, 483, 502, 503, 504, 362, 346, + 477, 347, 382, 348, 317, 354, 352, 355, 485, 356, + 319, 459, 508, 0, 378, 473, 429, 320, 428, 460, + 507, 506, 333, 534, 541, 542, 632, 0, 547, 730, + 731, 732, 556, 0, 466, 329, 328, 0, 0, 0, + 358, 461, 342, 344, 345, 343, 456, 457, 561, 562, + 563, 565, 0, 566, 567, 0, 0, 0, 0, 568, + 633, 649, 617, 586, 549, 641, 583, 587, 588, 399, + 400, 401, 652, 0, 0, 0, 540, 414, 415, 0, + 370, 369, 430, 321, 0, 0, 407, 398, 467, 327, + 366, 409, 403, 416, 417, 418, 376, 311, 312, 725, + 359, 449, 654, 689, 690, 579, 0, 642, 580, 589, + 351, 614, 626, 625, 445, 539, 0, 637, 640, 569, + 724, 0, 634, 648, 728, 647, 721, 455, 0, 482, + 645, 592, 0, 638, 611, 612, 0, 639, 607, 643, + 0, 581, 0, 550, 553, 582, 667, 668, 669, 318, + 552, 671, 672, 673, 674, 675, 676, 677, 670, 522, + 615, 591, 618, 531, 594, 593, 0, 0, 629, 548, + 630, 631, 439, 440, 441, 442, 380, 655, 340, 551, + 469, 0, 616, 0, 0, 0, 0, 0, 0, 0, + 0, 621, 622, 619, 733, 0, 678, 679, 0, 0, + 545, 546, 375, 0, 564, 383, 339, 454, 377, 529, + 406, 0, 557, 623, 558, 471, 472, 681, 686, 682, + 683, 685, 705, 446, 397, 402, 486, 408, 422, 474, + 528, 452, 479, 337, 518, 488, 427, 608, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 663, 662, 661, 660, + 659, 658, 657, 656, 0, 0, 605, 505, 353, 305, + 349, 350, 357, 722, 718, 723, 706, 709, 708, 684, + 0, 313, 585, 420, 468, 374, 650, 651, 0, 704, + 259, 260, 261, 262, 263, 264, 265, 266, 306, 267, + 268, 269, 270, 271, 272, 273, 276, 277, 278, 279, + 280, 281, 282, 283, 653, 274, 275, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 0, 0, 0, 0, 307, 710, 711, 712, 713, + 714, 0, 0, 308, 309, 310, 0, 0, 300, 496, + 301, 302, 303, 304, 0, 0, 535, 536, 537, 560, + 0, 538, 520, 584, 384, 314, 500, 527, 720, 0, + 0, 0, 0, 0, 0, 0, 635, 646, 680, 0, + 692, 693, 695, 697, 696, 699, 493, 494, 707, 0, + 0, 701, 702, 703, 700, 424, 480, 501, 487, 0, + 726, 575, 576, 727, 688, 315, 183, 223, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 451, 0, 0, + 590, 624, 613, 698, 578, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 367, 0, 0, 419, 628, + 609, 620, 610, 595, 596, 597, 604, 379, 598, 599, + 600, 570, 601, 571, 602, 603, 153, 627, 577, 489, + 435, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 219, 2624, 0, 245, 0, 0, 0, 0, 0, 0, + 335, 246, 572, 694, 574, 573, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 490, 519, 0, 532, 0, 404, - 405, 0, 0, 0, 0, 0, 0, 0, 322, 497, - 516, 336, 484, 530, 341, 492, 509, 331, 450, 481, - 0, 0, 324, 514, 491, 432, 323, 0, 475, 364, - 381, 361, 448, 0, 0, 513, 543, 360, 533, 0, - 524, 326, 0, 523, 447, 510, 515, 433, 426, 0, - 325, 512, 431, 425, 410, 371, 559, 411, 412, 385, - 462, 423, 463, 386, 437, 436, 438, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 0, 0, 0, - 0, 0, 554, 555, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, - 0, 0, 691, 0, 526, 0, 0, 0, 0, 0, - 0, 495, 0, 0, 413, 0, 0, 0, 544, 0, - 478, 453, 729, 0, 0, 476, 421, 511, 464, 517, - 498, 525, 470, 465, 316, 499, 363, 434, 332, 334, - 719, 365, 368, 372, 373, 443, 444, 458, 483, 502, - 503, 504, 362, 346, 477, 347, 382, 348, 317, 354, - 352, 355, 485, 356, 319, 459, 508, 0, 378, 473, - 429, 320, 428, 460, 507, 506, 333, 534, 541, 542, - 632, 0, 547, 730, 731, 732, 556, 0, 466, 329, - 328, 0, 0, 0, 358, 461, 342, 344, 345, 343, - 456, 457, 561, 562, 563, 565, 0, 566, 567, 0, - 0, 0, 0, 568, 633, 649, 617, 586, 549, 641, - 583, 587, 588, 399, 400, 401, 652, 0, 0, 0, - 540, 414, 415, 0, 370, 369, 430, 321, 0, 0, - 407, 398, 467, 327, 366, 409, 403, 416, 417, 418, - 376, 311, 312, 725, 359, 449, 654, 689, 690, 579, - 0, 642, 580, 589, 351, 614, 626, 625, 445, 539, - 0, 637, 640, 569, 724, 0, 634, 648, 728, 647, - 721, 455, 0, 482, 645, 592, 0, 638, 611, 612, - 0, 639, 607, 643, 0, 581, 0, 550, 553, 582, - 667, 668, 669, 318, 552, 671, 672, 673, 674, 675, - 676, 677, 670, 522, 615, 591, 618, 531, 594, 593, - 0, 0, 629, 548, 630, 631, 439, 440, 441, 442, - 380, 655, 340, 551, 469, 0, 616, 0, 0, 0, - 0, 0, 0, 0, 0, 621, 622, 619, 733, 0, - 678, 679, 0, 0, 545, 546, 375, 0, 564, 383, - 339, 454, 377, 529, 406, 0, 557, 623, 558, 471, - 472, 681, 686, 682, 683, 685, 705, 446, 397, 402, - 486, 408, 422, 474, 528, 452, 479, 337, 518, 488, - 427, 608, 636, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 663, 662, 661, 660, 659, 658, 657, 656, 0, 0, - 605, 505, 353, 305, 349, 350, 357, 722, 718, 723, - 706, 709, 708, 684, 0, 313, 585, 420, 468, 374, - 650, 651, 0, 704, 259, 260, 261, 262, 263, 264, - 265, 266, 306, 267, 268, 269, 270, 271, 272, 273, - 276, 277, 278, 279, 280, 281, 282, 283, 653, 274, - 275, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 0, 0, 0, 0, 307, - 710, 711, 712, 713, 714, 0, 0, 308, 309, 310, - 0, 0, 300, 496, 301, 302, 303, 304, 0, 0, - 535, 536, 537, 560, 0, 538, 520, 584, 384, 314, - 500, 527, 720, 0, 0, 0, 0, 0, 0, 0, - 635, 646, 680, 0, 692, 693, 695, 697, 696, 699, - 493, 494, 707, 0, 0, 701, 702, 703, 700, 424, - 480, 501, 487, 0, 726, 575, 576, 727, 688, 315, - 183, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 451, 0, 0, 590, 624, 613, 698, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 490, 519, 0, 532, 0, + 404, 405, 0, 0, 0, 0, 0, 0, 0, 322, + 497, 516, 336, 484, 530, 341, 492, 509, 331, 450, + 481, 0, 0, 324, 514, 491, 432, 323, 0, 475, + 364, 381, 361, 448, 0, 0, 513, 543, 360, 533, + 0, 524, 326, 0, 523, 447, 510, 515, 433, 426, + 0, 325, 512, 431, 425, 410, 371, 559, 411, 412, + 385, 462, 423, 463, 386, 437, 436, 438, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 0, 0, + 0, 0, 0, 554, 555, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 687, 0, 0, 691, 0, 526, 0, 0, 0, 0, + 0, 0, 495, 0, 0, 413, 0, 0, 0, 544, + 0, 478, 453, 729, 0, 0, 476, 421, 511, 464, + 517, 498, 525, 470, 465, 316, 499, 363, 434, 332, + 334, 719, 365, 368, 372, 373, 443, 444, 458, 483, + 502, 503, 504, 362, 346, 477, 347, 382, 348, 317, + 354, 352, 355, 485, 356, 319, 459, 508, 0, 378, + 473, 429, 320, 428, 460, 507, 506, 333, 534, 541, + 542, 632, 0, 547, 730, 731, 732, 556, 0, 466, + 329, 328, 0, 0, 0, 358, 461, 342, 344, 345, + 343, 456, 457, 561, 562, 563, 565, 0, 566, 567, + 0, 0, 0, 0, 568, 633, 649, 617, 586, 549, + 641, 583, 587, 588, 399, 400, 401, 652, 0, 0, + 0, 540, 414, 415, 0, 370, 369, 430, 321, 0, + 0, 407, 398, 467, 327, 366, 409, 403, 416, 417, + 418, 376, 311, 312, 725, 359, 449, 654, 689, 690, + 579, 0, 642, 580, 589, 351, 614, 626, 625, 445, + 539, 0, 637, 640, 569, 724, 0, 634, 648, 728, + 647, 721, 455, 0, 482, 645, 592, 0, 638, 611, + 612, 0, 639, 607, 643, 0, 581, 0, 550, 553, + 582, 667, 668, 669, 318, 552, 671, 672, 673, 674, + 675, 676, 677, 670, 522, 615, 591, 618, 531, 594, + 593, 0, 0, 629, 548, 630, 631, 439, 440, 441, + 442, 380, 655, 340, 551, 469, 0, 616, 0, 0, + 0, 0, 0, 0, 0, 0, 621, 622, 619, 733, + 0, 678, 679, 0, 0, 545, 546, 375, 0, 564, + 383, 339, 454, 377, 529, 406, 0, 557, 623, 558, + 471, 472, 681, 686, 682, 683, 685, 705, 446, 397, + 402, 486, 408, 422, 474, 528, 452, 479, 337, 518, + 488, 427, 608, 636, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 663, 662, 661, 660, 659, 658, 657, 656, 0, + 0, 605, 505, 353, 305, 349, 350, 357, 722, 718, + 723, 706, 709, 708, 684, 0, 313, 585, 420, 468, + 374, 650, 651, 0, 704, 259, 260, 261, 262, 263, + 264, 265, 266, 306, 267, 268, 269, 270, 271, 272, + 273, 276, 277, 278, 279, 280, 281, 282, 283, 653, + 274, 275, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 0, 0, 0, 0, + 307, 710, 711, 712, 713, 714, 0, 0, 308, 309, + 310, 0, 0, 300, 496, 301, 302, 303, 304, 0, + 0, 535, 536, 537, 560, 0, 538, 520, 584, 384, + 314, 500, 527, 720, 0, 0, 0, 0, 0, 0, + 0, 635, 646, 680, 0, 692, 693, 695, 697, 696, + 699, 493, 494, 707, 0, 0, 701, 702, 703, 700, + 424, 480, 501, 487, 0, 726, 575, 576, 727, 688, + 315, 451, 0, 0, 590, 624, 613, 698, 578, 0, + 0, 0, 0, 0, 2358, 0, 0, 0, 0, 367, 0, 0, 419, 628, 609, 620, 610, 595, 596, 597, 604, 379, 598, 599, 600, 570, 601, 571, 602, 603, - 153, 627, 577, 489, 435, 0, 644, 0, 0, 0, + 0, 627, 577, 489, 435, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 219, 2624, 0, 245, 0, 0, - 0, 0, 0, 0, 335, 246, 572, 694, 574, 573, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, + 2359, 0, 0, 0, 335, 246, 572, 694, 574, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1381, 0, 1382, 1380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8912,32 +8912,32 @@ var yyAct = [...]int{ } var yyPact = [...]int{ - 4794, -1000, -1000, -1000, -399, 19222, -1000, -1000, -1000, -1000, + 4794, -1000, -1000, -1000, -401, 19222, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62129, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 546, 62129, -393, -1000, - 3385, 1216, -1000, -1000, -1000, 440, 60701, 21386, 62129, 760, - 759, 67841, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 532, 62129, -397, -1000, + 3385, 1214, -1000, -1000, -1000, 402, 60701, 21386, 62129, 715, + 711, 67841, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1145, -1000, 67127, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1031, - 5170, 66413, 14915, -270, -1000, 1775, -67, 3254, 508, 21, - 20, 738, 1435, 1440, 1497, 1506, 62129, 1376, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1159, -1000, 67127, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1023, + 5170, 66413, 14915, -277, -1000, 2191, -75, 3293, 635, 20, + -29, 697, 1422, 1431, 1487, 1181, 62129, 1383, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 4615, 36413, 61415, 1417, -1000, -1000, -1000, -1000, -1000, + -1000, 4615, 36413, 61415, 1258, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 5384, 514, 1141, 1417, 27120, 182, 180, 1775, 3451, - -89, 4164, -1000, 1945, 5094, 208, -1000, -1000, -1000, -1000, + -1000, 5384, 514, 1156, 1258, 27120, 147, 142, 2191, 3405, + -155, 648, -1000, 2268, 5094, 207, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14915, 14915, 19222, - -434, 19222, 14915, 62129, 62129, -1000, -1000, -1000, -1000, -393, - 60701, 1031, 5170, 14915, 3254, 508, 21, 20, 738, -1000, + -438, 19222, 14915, 62129, 62129, -1000, -1000, -1000, -1000, -397, + 60701, 1023, 5170, 14915, 3293, 635, 20, -29, 697, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -8945,7 +8945,7 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -89, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -155, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -8964,7 +8964,7 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 180, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 142, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -8983,479 +8983,479 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 363, -1000, 1983, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 363, -1000, 2096, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2850, 3807, 1982, 3236, -1000, -1000, - -1000, -1000, 1775, 4198, 59987, -1000, -1000, 4167, -1000, 62129, - 146, 62129, 320, 2407, -1000, 885, 1137, 659, 1192, 480, - 1977, -1000, -1000, -1000, -1000, -1000, -1000, 915, 4165, -1000, - 62129, 62129, 62129, 3822, 62129, -1000, 445, 954, -1000, 5562, - 4025, 1850, 1146, 3839, -1000, -1000, 3805, -1000, 494, 368, - 370, 653, 544, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 391, -1000, 4085, -1000, -1000, 475, -1000, -1000, 463, -1000, - -1000, -1000, 158, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -13, -1000, -1000, 1498, 2878, 14915, - 2593, -1000, 4606, 2028, -1000, -1000, -1000, 9896, 18495, 18495, - 18495, 18495, 62129, -1000, -1000, 3626, 14915, 3804, 3803, 3802, - 3801, -1000, -1000, -1000, -1000, -1000, -1000, 3800, 1969, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2530, -1000, - -1000, -1000, 17779, -1000, 3799, 3797, 3796, 3795, 3794, 3790, - 3788, 3787, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3486, - 20661, 3776, 3235, 3230, 3775, 3774, 3772, 3229, 3771, 3770, - 3768, 3486, 3486, 3767, 3766, 3764, 3763, 3760, 3759, 3758, - 3757, 3755, 3754, 3753, 3745, 3744, 3743, 3741, 3739, 3737, - 3735, 3728, 3727, 3726, 3725, 3723, 3720, 3704, 3695, 3692, - 3689, 3687, 3686, 3682, 3681, 3676, 3672, 3664, 3663, -1000, + -1000, -1000, -1000, -1000, 3003, 3670, 2089, 3292, -1000, -1000, + -1000, -1000, 2191, 4073, 59987, -1000, -1000, 4018, -1000, 62129, + 143, 62129, 280, 2351, -1000, 1683, 813, 659, 2005, 443, + 2087, -1000, -1000, -1000, -1000, -1000, -1000, 865, 4017, -1000, + 62129, 62129, 62129, 3686, 62129, -1000, 669, 900, -1000, 5562, + 3832, 1865, 1148, 3704, -1000, -1000, 3668, -1000, 452, 507, + 379, 678, 523, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 372, -1000, 3896, -1000, -1000, 432, -1000, -1000, 433, -1000, + -1000, -1000, 140, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -36, -1000, -1000, 1510, 2429, 14915, + 2591, -1000, 4605, 2119, -1000, -1000, -1000, 9896, 18495, 18495, + 18495, 18495, 62129, -1000, -1000, 3560, 14915, 3667, 3666, 3665, + 3664, -1000, -1000, -1000, -1000, -1000, -1000, 3663, 2086, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2589, -1000, + -1000, -1000, 17779, -1000, 3661, 3660, 3658, 3657, 3656, 3655, + 3654, 3647, 3646, 3645, 3644, 3643, 3641, 3640, 3639, 3462, + 20661, 3638, 3291, 3290, 3635, 3634, 3633, 3289, 3632, 3630, + 3629, 3462, 3462, 3628, 3626, 3621, 3618, 3616, 3615, 3614, + 3613, 3612, 3611, 3610, 3607, 3606, 3605, 3603, 3602, 3601, + 3600, 3599, 3594, 3593, 3592, 3590, 3588, 3587, 3586, 3584, + 3582, 3580, 3579, 3578, 3576, 3575, 3574, 3573, 3572, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1789, -1000, 3654, 4190, 3538, -1000, 4074, 4069, - 4060, 4058, -331, 3647, 2764, -1000, -1000, 96, 62129, 62129, - 299, 62129, -352, 438, 626, -156, -163, 625, -164, 1209, - -1000, 539, -1000, -1000, 1427, -1000, 1359, 65699, 1068, -1000, - -1000, 62129, 1021, 1021, 1021, 1021, 62129, 244, 1151, 1291, - 1021, 1021, 1021, 1021, 1072, 1021, 4101, 1130, 1129, 1128, - 1125, 1021, -50, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2405, 2401, 3912, 986, 59987, 62129, -1000, 1794, 62129, -1000, - 3582, 1278, -1000, -1000, -1000, -1000, 438, -1000, 90, -381, - 3836, 2332, 2332, 4149, 4149, 4099, 4098, 970, 961, 959, - 2332, 843, -1000, 2280, 2280, 2280, 2280, 2332, 607, 965, - 4102, 4102, 129, 2280, 140, 2332, 2332, 140, 2332, 2332, - 613, -1000, 2396, 619, 255, -339, -1000, -1000, -1000, -1000, - 2280, 2280, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 4079, - 4078, 1031, 1031, 62129, 1031, 62129, 351, 243, 62129, 1031, - 1031, 1031, 62129, 1034, -380, 99, 64985, 64271, 2864, 445, - 951, 950, 1798, 2317, -1000, 2181, 62129, 62129, 2181, 2181, - 30701, 29987, -1000, 62129, -1000, 4190, 3538, 3478, 2178, 3470, - 3538, -165, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 422, - 1031, 1031, 1031, 1031, 1031, 62129, 62129, 59273, 1031, 622, - 1031, 1031, 1031, 12760, 1945, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19222, 2495, - 2594, 207, -59, -374, 290, -1000, -1000, 62129, 3977, 2019, - -1000, -1000, -1000, 3580, 3561, -1000, 3565, 3565, 3565, 3565, + -1000, -1000, 1769, -1000, 3571, 4063, 3479, -1000, 3874, 3872, + 3870, 3865, -329, 3570, 2885, -1000, -1000, 91, 62129, 62129, + 296, 62129, -352, 405, 624, -169, -170, 622, -171, 1209, + -1000, 522, -1000, -1000, 1433, -1000, 1359, 65699, 1090, -1000, + -1000, 62129, 1017, 1017, 1017, 1017, 62129, 347, 1121, 1265, + 1017, 1017, 1017, 1017, 1098, 1017, 3921, 1153, 1151, 1147, + 1143, 1017, -99, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2350, 2343, 3412, 946, 59987, 62129, -1000, 1890, 62129, -1000, + 3534, 1334, -1000, -1000, -1000, -1000, 405, -1000, 8, -383, + 3703, 2186, 2186, 3992, 3992, 3918, 3916, 917, 915, 908, + 2186, 760, -1000, 2319, 2319, 2319, 2319, 2186, 573, 913, + 3924, 3924, 130, 2319, 108, 2186, 2186, 108, 2186, 2186, + 585, -1000, 2315, 608, 249, -336, -1000, -1000, -1000, -1000, + 2319, 2319, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3887, + 3886, 1023, 1023, 62129, 1023, 62129, 533, 180, 62129, 1023, + 1023, 1023, 62129, 1028, -387, 66, 64985, 64271, 2924, 669, + 894, 888, 1898, 2310, -1000, 2274, 62129, 62129, 2274, 2274, + 30701, 29987, -1000, 62129, -1000, 4063, 3479, 3456, 2172, 3455, + 3479, -173, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 398, + 1023, 1023, 1023, 1023, 1023, 62129, 62129, 59273, 1023, 615, + 1023, 1023, 1023, 12760, 2268, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19222, 2615, + 2560, 205, -57, -374, 273, -1000, -1000, 62129, 3812, 2135, + -1000, -1000, -1000, 3533, 3506, -1000, 3509, 3509, 3509, 3509, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 3565, 3565, 3579, 3641, -1000, -1000, 3563, 3563, 3563, 3561, + 3509, 3509, 3532, 3569, -1000, -1000, 3508, 3508, 3508, 3506, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1382, 3567, 3578, 3578, 3567, + -1000, -1000, -1000, -1000, -1000, 1443, 3510, 3527, 3527, 3510, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62129, 4186, - -1000, -1000, 14915, 62129, 4011, 4190, 3994, 4102, 4138, 986, - 2773, -1000, -1000, 62129, 330, -1000, 1966, 2762, 3226, -1000, - 480, -1000, 879, 480, -1000, 606, 606, 2283, -1000, 1715, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62129, -13, 745, - -1000, -1000, -1000, 3177, 3640, -1000, 822, 1767, 1801, -1000, - 345, 5945, 48557, 445, 48557, 62129, -1000, -1000, -1000, -1000, - -1000, -1000, 157, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62129, 4059, + -1000, -1000, 14915, 62129, 3825, 4063, 3820, 3924, 3983, 946, + 2619, -1000, -1000, 62129, 336, -1000, 2081, 2879, 3288, -1000, + 443, -1000, 1241, 443, -1000, 1702, 1702, 2223, -1000, 1569, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62129, -36, 534, + -1000, -1000, -1000, 3270, 3567, -1000, 807, 1680, 1904, -1000, + 513, 5945, 48557, 669, 48557, 62129, -1000, -1000, -1000, -1000, + -1000, -1000, 133, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 474, -1000, 14915, - 14915, 14915, 14915, 14915, -1000, 1011, 17063, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 18495, 18495, 18495, 18495, 18495, 18495, - 18495, 18495, 18495, 18495, 18495, 18495, 18495, 18495, 3621, 2357, - 18495, 18495, 18495, 18495, 260, 32843, 2178, 3721, 1796, 324, - 2028, 2028, 2028, 2028, 14915, -1000, 2419, 2878, 14915, 14915, - 14915, 14915, 39983, 62129, -1000, -1000, 9896, 6018, 14915, 14915, - 5459, 18495, 14915, 4056, 14915, 14915, 14915, 3461, 7726, 62129, - 14915, -1000, 3460, 3459, -1000, -1000, 2599, 14915, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 463, -1000, 14915, + 14915, 14915, 14915, -1000, 883, 17063, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 18495, 18495, 18495, 18495, 18495, 18495, 18495, + 18495, 18495, 18495, 18495, 18495, 18495, 18495, 18495, 3559, 2352, + 18495, 18495, 18495, 18495, 260, 32843, 2172, 3241, 1892, 319, + 2119, 2119, 2119, 2119, 14915, -1000, 2376, 2429, 14915, 14915, + 14915, 14915, 39983, 62129, -1000, -1000, 9896, 2465, 14915, 14915, + 4196, 18495, 14915, 3860, 14915, 14915, 14915, 3454, 7726, 62129, + 14915, -1000, 3451, 3450, -1000, -1000, 2715, 14915, -1000, -1000, 14915, -1000, -1000, 14915, 18495, 14915, -1000, 14915, 14915, 14915, - -1000, -1000, 1585, 1585, 1126, 4056, 4056, 4056, 2341, 14915, - 14915, 4056, 4056, 4056, 2281, 4056, 4056, 4056, 4056, 4056, - 4056, 4056, 4056, 4056, 4056, 4056, 3456, 3455, 3454, 3449, - 14915, 3447, 14915, 14915, 14915, 14915, 14915, 14199, 4102, -270, - -1000, 12044, 3994, 4102, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -333, 3639, 62129, 3225, 3222, -408, - -409, 1537, -409, 1952, -1000, -353, 1392, 286, 62129, -1000, - -1000, 62129, 3221, 2761, 62129, 3217, 2758, 268, 259, 62129, - 62129, 62129, 93, 1422, 1362, 1372, -1000, -1000, 62129, 63557, - -1000, 62129, 2434, 62129, 62129, 62129, 4050, -1000, 62129, 62129, - 1021, 1021, 1021, -1000, 56417, 3212, 48557, 62129, 62129, 445, - 62129, 62129, 62129, 1021, 1021, 1021, 1021, 62129, -1000, 3956, - 48557, 3916, 3734, 3630, 986, -1000, 62129, 1794, 4048, 62129, - 1034, -1000, -1000, -1000, 4097, -1000, -1000, -1000, 949, 4149, - 18495, 18495, -1000, -1000, 14915, -1000, 349, 58559, 2280, 2332, - 2332, -1000, -1000, 62129, -1000, -1000, -1000, 2280, 62129, 2280, - 2280, 4149, 2280, -1000, -1000, -1000, 2332, 2332, -1000, -1000, - 14915, -1000, -1000, 2280, 2280, -1000, -1000, 4149, 62129, 155, - 4149, 4149, 139, -1000, -1000, 62129, -1000, 2332, 3210, -1000, - 62129, 62129, 1021, 62129, -1000, 62129, 62129, -1000, -1000, 62129, - 62129, 5858, 62129, 478, 4019, 1259, 56417, 57845, 4077, -1000, - 48557, 62129, 62129, 1791, -1000, 1067, 43553, -1000, 62129, 1756, - -1000, 77, -1000, 63, 99, 2181, 99, 2181, 1065, -1000, - 807, 791, 28559, 757, 48557, 9169, -1000, -1000, 2181, 2181, - 9169, 9169, 2033, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1790, -1000, 308, 4102, -1000, -1000, -1000, -1000, -1000, 2755, - 57131, 62129, 62129, 56417, 48557, 445, 62129, 1031, 62129, 62129, - 62129, 62129, 62129, -1000, 3629, 1947, -1000, 4016, 62129, 1031, - 62129, 62129, 62129, 1797, -1000, -1000, 24956, 1946, -1000, -1000, - 2433, -1000, 14915, 19222, -317, 14915, 19222, 19222, 14915, 19222, - -1000, 14915, 1900, -1000, -1000, 492, -1000, -1000, 2753, -1000, - 2752, -1000, -1000, -1000, -1000, -1000, 3209, 3209, -1000, 2751, - -1000, -1000, -1000, -1000, 3567, 2746, -1000, -1000, 2745, -1000, - -1000, -1000, -1000, -196, 3446, 1498, -1000, 3206, 4102, -1000, - -278, 4135, 14915, 1631, 1031, -417, 2400, 2395, 2394, 4040, - 62129, -1000, 4096, -1000, -1000, 480, -1000, -1000, -1000, 606, - 704, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1943, -1000, + -1000, -1000, 3919, 3919, 1194, 3860, 3860, 3860, 2336, 14915, + 14915, 3860, 3860, 3860, 2280, 3860, 3860, 3860, 3860, 3860, + 3860, 3860, 3860, 3860, 3860, 3860, 3449, 3447, 3446, 3444, + 14915, 3441, 14915, 14915, 14915, 14915, 14915, 14199, 3924, -277, + -1000, 12044, 3820, 3924, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -331, 3565, 62129, 3286, 3285, -409, + -414, 1441, -414, 2073, -1000, -353, 1401, 284, 62129, -1000, + -1000, 62129, 3284, 2867, 62129, 3283, 2864, 241, 203, 62129, + 62129, 62129, -15, 1409, 1371, 1375, -1000, -1000, 62129, 63557, + -1000, 62129, 2387, 62129, 62129, 62129, 3855, -1000, 62129, 62129, + 1017, 1017, 1017, -1000, 56417, 3281, 48557, 62129, 62129, 669, + 62129, 62129, 62129, 1017, 1017, 1017, 1017, 62129, -1000, 3781, + 48557, 3772, 3377, 3563, 946, -1000, 62129, 1890, 3854, 62129, + 1028, -1000, -1000, -1000, 3915, -1000, -1000, -1000, 882, 3992, + 18495, 18495, -1000, -1000, 14915, -1000, 248, 58559, 2319, 2186, + 2186, -1000, -1000, 62129, -1000, -1000, -1000, 2319, 62129, 2319, + 2319, 3992, 2319, -1000, -1000, -1000, 2186, 2186, -1000, -1000, + 14915, -1000, -1000, 2319, 2319, -1000, -1000, 3992, 62129, 115, + 3992, 3992, 101, -1000, -1000, 62129, -1000, 2186, 3280, -1000, + 62129, 62129, 1017, 62129, -1000, 62129, 62129, -1000, -1000, 62129, + 62129, 5858, 62129, 413, 3831, 1201, 56417, 57845, 3885, -1000, + 48557, 62129, 62129, 1889, -1000, 1087, 43553, -1000, 62129, 1742, + -1000, -6, -1000, -25, 66, 2274, 66, 2274, 1077, -1000, + 804, 1022, 28559, 704, 48557, 9169, -1000, -1000, 2274, 2274, + 9169, 9169, 2150, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1848, -1000, 270, 3924, -1000, -1000, -1000, -1000, -1000, 2859, + 57131, 62129, 62129, 56417, 48557, 669, 62129, 1023, 62129, 62129, + 62129, 62129, 62129, -1000, 3561, 2072, -1000, 3830, 62129, 1023, + 62129, 62129, 62129, 1756, -1000, -1000, 26406, 2063, -1000, -1000, + 2416, -1000, 14915, 19222, -313, 14915, 19222, 19222, 14915, 19222, + -1000, 14915, 1929, -1000, -1000, 492, -1000, -1000, 2857, -1000, + 2853, -1000, -1000, -1000, -1000, -1000, 3279, 3279, -1000, 2850, + -1000, -1000, -1000, -1000, 3510, 2848, -1000, -1000, 2844, -1000, + -1000, -1000, -1000, -204, 3440, 1510, -1000, 3278, 3924, -1000, + -282, 3978, 14915, 2105, 1023, -419, 2340, 2338, 2332, 3901, + 62129, -1000, 3913, -1000, -1000, 443, -1000, -1000, -1000, 1702, + 527, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2045, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -90, -92, 1788, -1000, 62129, -1000, -1000, 345, 48557, - 52841, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1749, -1000, - -1000, 187, -1000, 1064, 375, 2279, -1000, -1000, 247, 223, - 335, 1238, 2878, -1000, 2455, 2455, 2468, -1000, 907, -1000, - -1000, -1000, -1000, 3626, -1000, -1000, -1000, 4100, 3219, -1000, - 2427, 2427, 2038, 2038, 2038, 2038, 2038, 2498, 2498, 2028, - 2028, -1000, -1000, -1000, 9896, 3621, 18495, 18495, 18495, 18495, - 1211, 1211, 5016, 5171, -1000, -1000, 1997, 1997, -1000, -1000, - -1000, -1000, 14915, 179, 2426, -1000, 14915, 3261, 2154, 3155, - 2016, 2277, -1000, 3561, 14915, 1937, 2902, -1000, -1000, -1000, + -1000, -156, -157, 1829, -1000, 62129, -1000, -1000, 513, 48557, + 52841, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1732, -1000, + -1000, 186, -1000, 1073, 337, 2220, -1000, -1000, 188, 220, + 290, 1228, 2429, -1000, 2401, 2437, -1000, 866, -1000, -1000, + -1000, -1000, 3560, -1000, -1000, -1000, 4617, 4101, 2440, -1000, + 2478, 2478, 2209, 2209, 2209, 2209, 2209, 2362, 2362, 2119, + 2119, -1000, -1000, -1000, 9896, 3559, 18495, 18495, 18495, 18495, + 1196, 1196, 5590, 5541, -1000, -1000, 2109, 2109, -1000, -1000, + -1000, -1000, 14915, 182, 2384, -1000, 14915, 3061, 2066, 2778, + 2016, 2213, -1000, 3506, 14915, 2043, 4698, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3441, 3440, 3054, - 4163, 4642, 3434, 14915, -1000, -1000, 2276, 2264, 2263, -1000, - 2861, 13483, -1000, -1000, -1000, 3433, 1927, 3424, -1000, -1000, - -1000, 3422, 2253, 1680, 3420, 2367, 3419, 3418, 3416, 3415, - 1787, 1784, 1782, -1000, -1000, -1000, -1000, 14915, 14915, 14915, - 14915, 3414, 2237, 2230, 14915, 14915, 14915, 14915, 3409, 14915, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3434, 3433, 2687, + 4015, 5414, 3432, 14915, -1000, -1000, 2207, 2206, 2205, -1000, + 2718, 13483, -1000, -1000, -1000, 3426, 2042, 3424, -1000, -1000, + -1000, 3422, 2202, 1562, 3420, 3457, 3419, 3418, 3416, 3415, + 1826, 1801, 1797, -1000, -1000, -1000, -1000, 14915, 14915, 14915, + 14915, 3414, 2178, 2175, 14915, 14915, 14915, 14915, 3410, 14915, 14915, 14915, 14915, 14915, 14915, 14915, 14915, 14915, 14915, 62129, - 137, 137, 137, 137, 3701, 137, 2326, 2161, 3684, 3678, - 2129, 1778, 1776, -1000, -1000, 2229, -1000, 2878, -1000, -1000, - 4135, -1000, 3618, 2740, 1769, -1000, -1000, -389, 3105, 1062, - 62129, -355, 62129, 1062, 62129, 62129, 2375, 1062, 62129, -357, - 3204, -1000, -1000, -1000, 3202, -1000, -1000, 62129, 62129, 62129, - 62129, -170, 4000, 3999, -1000, -1000, 1390, 1352, 1336, -1000, - 62129, -1000, 3201, 3990, 4092, 1158, -98, 62129, 3610, 3607, - 62129, 62129, 62129, 423, -1000, -1000, 62129, 1669, -1000, 375, - -29, 773, 1564, 3821, 1083, 4184, 62129, 62129, 62129, 62129, - 4047, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3835, - -273, -1000, 26406, 62129, 62129, 3734, -1000, 3606, 2226, -1000, - 55703, 4112, 62129, 445, -1000, 2028, 2028, 2878, 62129, 62129, - 62129, 3820, 62129, 62129, 4149, 4149, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2280, 4149, 4149, 1893, 2332, 2280, -1000, - -1000, 2280, -417, -1000, 2280, -1000, -1000, -1000, -417, 1922, - -417, 62129, -1000, -1000, -1000, 4046, 3582, 1759, -1000, -1000, - -1000, 4137, 2055, 1015, 1015, 1332, 796, 4136, 23528, -1000, - 2199, 1595, 1060, 3958, 491, -1000, 2199, -189, 991, 2199, - 2199, 2199, 2199, 2199, 2199, 2199, 904, 903, 2199, 2199, - 2199, 2199, 2199, 2199, 2199, 2199, 2199, 2199, 2199, 1430, - 2199, 2199, 2199, 2199, 2199, -1000, 2199, 3603, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 926, 857, -1000, -1000, 296, - 445, 1055, 110, 101, 420, 4072, 524, -1000, 518, 1669, - 835, 4068, 542, 62129, 62129, 1094, 1668, -1000, -1000, -1000, - -1000, -1000, 33557, 33557, 27845, 33557, -1000, 215, 2181, 99, - -10, -1000, -1000, 1756, 9169, 1756, 9169, 2738, -1000, -1000, - 1051, -1000, -1000, 1564, -1000, 62129, 62129, -1000, -1000, 3602, - 2374, -1000, -1000, 20661, -1000, 9169, 9169, -1000, -1000, 35699, - 62129, -1000, -16, -1000, -4, 4135, -1000, -364, -1000, -1000, - 62129, -1000, 1530, -1000, -1000, 1737, 1564, 3834, 62129, 1530, - 1530, 1530, -1000, -1000, 22100, 62129, 62129, -1000, 3199, -1000, - 4162, -364, 4149, 12760, -1000, 43553, -1000, -1000, 54983, -1000, - 54269, 2413, -1000, 19222, 2562, 202, -1000, 273, -378, 201, - 2429, 199, 2878, -1000, -1000, 3408, 3406, 3405, 2220, -1000, - 2216, 3400, -1000, 2215, 2213, 2736, -1000, 142, 4135, 3196, - 3994, -246, 1735, -1000, 2729, -1000, -273, -1000, 25681, -1000, - 62129, 62129, 3194, -1000, 14915, 53555, 14915, 1260, 1920, 319, - -1000, -1000, -1000, 62129, 3177, 2207, 52841, 1622, -1000, 1048, - 1914, 1905, -1000, 48557, 486, 48557, -1000, 48557, -1000, -1000, - 4120, -1000, 62129, 3995, -1000, -1000, -1000, 3105, 2371, -415, - 62129, -1000, -1000, -1000, -1000, -1000, 2206, -1000, 1211, 1211, - 5016, 5101, -1000, 18495, -1000, 18495, -1000, -1000, -1000, -1000, - 3670, -1000, 2412, -1000, 14915, 2552, 260, 14915, 260, 2551, - 32129, 39983, -171, 3987, 3637, 62129, 14915, -1000, -1000, 14915, - 14915, 18495, -1000, 3627, -1000, -1000, -1000, -1000, 14915, 14915, - 3002, -1000, 62129, -1000, -1000, -1000, -1000, 32129, -1000, 18495, - -1000, -1000, -1000, -1000, 14915, 14915, 14915, 1768, 1768, 3615, - 2205, 137, 137, 137, 3604, 3583, 3545, 2201, 137, 3541, - 3504, 3463, 3444, 3439, 3374, 3358, 3317, 3302, 3266, 2175, - -1000, 3601, -1000, -1000, -1000, 137, -1000, 137, 14915, 137, - 14915, 137, 137, 14915, 2556, 16347, 12044, -1000, 3994, 318, - 1732, 2735, 3173, 133, -1000, 2360, -1000, 541, -1000, 62129, - 4160, -1000, 1904, 3172, 52127, -1000, 1342, 62129, -1000, -1000, - 4159, 4158, -1000, -1000, 62129, 62129, 62129, -1000, -1000, -1000, - 1312, -1000, 3171, -1000, 412, 409, 2656, 2418, 3170, 447, - 1584, 22100, 3582, 3600, 3582, 293, 2199, 693, 800, 48557, - 938, -1000, 51413, 2516, 2359, 3833, 1143, 3965, 62129, 50699, - 3599, 1276, 3598, 3593, 4045, 719, 492, -1000, 3979, 1527, - -1000, 3592, -1000, 2170, 3909, -1000, 1692, -1000, 2343, 2139, - -1000, -1000, 5094, -1000, 62129, 62129, 1785, -1000, 1901, -1000, - 2733, -1000, -1000, -1000, -1000, 62129, -1000, 445, -1000, 2332, - -1000, -1000, 4149, -1000, -1000, 14915, 14915, 4149, 2332, 2332, - -1000, 2280, -1000, 62129, -1000, -417, 719, 492, 4041, 6016, - 842, 2903, -1000, 62129, -1000, -1000, -1000, 1189, -1000, 1241, - 1021, 62129, 2482, 1241, 2480, 3590, -1000, -1000, 62129, 62129, + 137, 137, 137, 137, 3201, 137, 1981, 1940, 3197, 3182, + 2030, 1796, 1790, -1000, -1000, 2161, -1000, 2429, -1000, -1000, + 3978, -1000, 3557, 2840, 1784, -1000, -1000, -394, 3176, 1070, + 62129, -357, 62129, 1070, 62129, 62129, 2331, 1070, 62129, -359, + 3277, -1000, -1000, -1000, 3276, -1000, -1000, 62129, 62129, 62129, + 62129, -177, 3824, 3823, -1000, -1000, 1392, 1352, 1348, -1000, + 62129, -1000, 3275, 3829, 3910, 1101, -163, 62129, 3556, 3554, + 62129, 62129, 62129, 386, -1000, -1000, 62129, 1660, -1000, 337, + -50, 722, 1550, 3685, 1031, 4057, 62129, 62129, 62129, 62129, + 3853, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3702, + -278, -1000, 25692, 62129, 62129, 3377, -1000, 3553, 2160, -1000, + 55703, 3925, 62129, 669, -1000, 2119, 2119, 2429, 62129, 62129, + 62129, 3684, 62129, 62129, 3992, 3992, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 2319, 3992, 3992, 1663, 2186, 2319, -1000, + -1000, 2319, -419, -1000, 2319, -1000, -1000, -1000, -419, 2035, + -419, 62129, -1000, -1000, -1000, 3847, 3534, 1760, -1000, -1000, + -1000, 3981, 1893, 991, 991, 1248, 830, 3979, 23528, -1000, + 2256, 1601, 1061, 3800, 446, -1000, 2256, -200, 957, 2256, + 2256, 2256, 2256, 2256, 2256, 2256, 845, 843, 2256, 2256, + 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 1430, + 2256, 2256, 2256, 2256, 2256, -1000, 2256, 3551, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 886, 806, -1000, -1000, 291, + 669, 1060, 28, 27, 382, 3884, 482, -1000, 477, 1660, + 757, 3883, 516, 62129, 62129, 1415, 1662, -1000, -1000, -1000, + -1000, -1000, 33557, 33557, 27845, 33557, -1000, 191, 2274, 66, + -12, -1000, -1000, 1742, 9169, 1742, 9169, 2819, -1000, -1000, + 1053, -1000, -1000, 1550, -1000, 62129, 62129, -1000, -1000, 3550, + 2324, -1000, -1000, 20661, -1000, 9169, 9169, -1000, -1000, 35699, + 62129, -1000, -45, -1000, -19, 3978, -1000, -370, -1000, -1000, + 62129, -1000, 1534, -1000, -1000, 1729, 1550, 3701, 62129, 1534, + 1534, 1534, -1000, -1000, 22100, 62129, 62129, -1000, 3274, -1000, + 4011, -370, 3992, 12760, -1000, 43553, -1000, -1000, 54983, -1000, + 54269, 2369, -1000, 19222, 2550, 202, -1000, 269, -378, 201, + 2419, 198, 2429, -1000, -1000, 3409, 3408, 3406, 2159, -1000, + 2158, 3401, -1000, 2155, 2153, 2818, -1000, 93, 3978, 3273, + 3820, -253, 1724, -1000, 2599, -1000, -278, -1000, 24967, -1000, + 62129, 62129, 3272, -1000, 14915, 53555, 14915, 1294, 2034, 258, + -1000, -1000, -1000, 62129, 3270, 2149, 52841, 1585, -1000, 1046, + 2021, 1985, -1000, 48557, 440, 48557, -1000, 48557, -1000, -1000, + 3949, -1000, 62129, 3822, -1000, -1000, -1000, 3176, 2322, -416, + 62129, -1000, -1000, -1000, -1000, -1000, 2148, -1000, 1196, 1196, + 5590, 4970, -1000, 18495, -1000, 18495, -1000, -1000, -1000, -1000, + 3169, -1000, 2368, -1000, 14915, 2453, 260, 14915, 260, 2013, + 32129, 39983, -178, 3819, 3161, 62129, 14915, -1000, -1000, 14915, + 14915, 18495, -1000, 3145, -1000, -1000, -1000, -1000, 14915, 14915, + 2636, -1000, 62129, -1000, -1000, -1000, -1000, 32129, -1000, 18495, + -1000, -1000, -1000, -1000, 14915, 14915, 14915, 1755, 1755, 3121, + 2144, 137, 137, 137, 3112, 3106, 3071, 2139, 137, 3054, + 3049, 3043, 3009, 2998, 2989, 2976, 2952, 2921, 2913, 2137, + -1000, 3549, -1000, -1000, -1000, 137, -1000, 137, 14915, 137, + 14915, 137, 137, 14915, 2513, 16347, 12044, -1000, 3820, 310, + 1718, 2810, 3262, 132, -1000, 2321, -1000, 510, -1000, 62129, + 4010, -1000, 1977, 3258, 52127, -1000, 1353, 62129, -1000, -1000, + 4009, 4008, -1000, -1000, 62129, 62129, 62129, -1000, -1000, -1000, + 1340, -1000, 3257, -1000, 401, 399, 2683, 2373, 3255, 408, + 1546, 22100, 3534, 3548, 3534, 286, 2256, 640, 832, 48557, + 875, -1000, 51413, 2602, 2320, 3698, 1591, 3811, 62129, 50699, + 3546, 1995, 3545, 3542, 3846, 649, 492, -1000, 3815, 1528, + -1000, 3539, -1000, 2116, 3761, -1000, 1698, -1000, 2318, 2113, + -1000, -1000, 5094, -1000, 62129, 62129, 1743, -1000, 1937, -1000, + 2809, -1000, -1000, -1000, -1000, 62129, -1000, 669, -1000, 2186, + -1000, -1000, 3992, -1000, -1000, 14915, 14915, 3992, 2186, 2186, + -1000, 2319, -1000, 62129, -1000, -419, 649, 492, 3845, 6016, + 776, 3378, -1000, 62129, -1000, -1000, -1000, 1071, -1000, 1295, + 1017, 62129, 2483, 1295, 2475, 3538, -1000, -1000, 62129, 62129, 62129, 62129, -1000, -1000, 62129, -1000, 62129, 62129, 62129, 62129, - 62129, 49985, -1000, 62129, 62129, -1000, 62129, 2479, 62129, 2478, - 4029, -1000, 2199, 2199, 1235, -1000, -1000, 792, -1000, 49985, - 2723, 2718, 2716, 2715, 3167, 3165, 3159, 2199, 2199, 2714, - 3153, 49271, 3152, 1574, 2712, 2710, 2707, 2694, 3141, 1375, - -1000, 3140, 2662, 2641, 2640, 62129, 3588, 2988, -1000, -1000, - 2656, 3139, 3587, 2706, 3138, 1165, 445, 3133, 3832, 293, - 2199, 522, 62129, 2338, 2331, 800, 768, 768, 758, -39, + 62129, 49985, -1000, 62129, 62129, -1000, 62129, 2472, 62129, 2471, + 3789, -1000, 2256, 2256, 1259, -1000, -1000, 797, -1000, 49985, + 2786, 2781, 2780, 2779, 3254, 3234, 3230, 2256, 2256, 2774, + 3217, 49271, 3212, 1485, 2770, 2769, 2768, 2723, 3208, 1519, + -1000, 3205, 2705, 2649, 2640, 62129, 3537, 3092, -1000, -1000, + 2683, 3200, 3536, 2762, 3199, 1179, 669, 3195, 3695, 286, + 2256, 481, 62129, 2314, 2313, 832, 752, 752, 721, -51, 29273, -1000, -1000, -1000, 62129, 43553, 43553, 43553, 43553, 43553, - 43553, -1000, 3878, 3854, 3586, -1000, 3871, 3868, 3859, 675, - 3877, 3690, 62129, 43553, 3582, -1000, 49271, -1000, -1000, -1000, - 2178, 2136, 720, 1220, 14915, 9169, -1000, -1000, 14, -5, - -1000, -1000, -1000, -1000, 48557, 3127, 757, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3994, -1000, -1000, 62129, 62129, 1037, - 3393, 1729, -1000, -1000, -1000, 492, 3580, 3565, 3565, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3565, 3565, - 3579, -1000, -1000, 3563, 3563, 3563, 3561, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1382, 3567, 3578, 3578, - 3567, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 43553, -1000, 3743, 3719, 3535, -1000, 3724, 3723, 3721, 593, + 3740, 3282, 62129, 43553, 3534, -1000, 49271, -1000, -1000, -1000, + 2172, 2107, 1202, 1246, 14915, 9169, -1000, -1000, -8, -32, + -1000, -1000, -1000, -1000, 48557, 3190, 704, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 3820, -1000, -1000, 62129, 62129, 975, + 3400, 1715, -1000, -1000, -1000, 492, 3533, 3509, 3509, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3509, 3509, + 3532, -1000, -1000, 3508, 3508, 3508, 3506, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1443, 3510, 3527, 3527, + 3510, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 62129, -1000, 4146, -1000, 1721, -1000, -1000, 1899, - -1000, 2430, -401, 19222, 2284, 2141, -1000, 14915, 19222, 14915, - -318, 504, -322, -1000, -1000, -1000, -1000, 3125, -1000, -1000, - -1000, 2705, -1000, 2703, -1000, 258, 303, 3994, 325, -1000, - 4183, 14915, 3955, -1000, -1000, 1527, 2134, 3908, 1692, 4190, - -1000, 174, -425, -426, 170, 3110, 62129, 2701, -1000, -1000, - -1000, 4157, 48557, 445, 2061, 47843, -1000, 472, -1000, 1733, - 793, 3109, -1000, 1124, 132, 3108, 3105, -1000, -1000, -1000, - -1000, 18495, 2028, -1000, -1000, -1000, 2878, 14915, 3392, 3021, - 3391, 3389, -1000, 3565, 3565, -1000, 3561, 3563, 3561, 1997, - 1997, 3383, -1000, 3560, -1000, 3987, -1000, 2126, 2717, 3168, - 4849, -1000, 3161, 3121, 14915, -1000, 3382, 4558, 1964, 1940, - 3112, -54, -230, 137, 137, -1000, -1000, -1000, -1000, 137, + -1000, -1000, 62129, -1000, 3988, -1000, 1714, -1000, -1000, 1925, + -1000, 2378, -404, 19222, 2284, 2240, -1000, 14915, 19222, 14915, + -317, 460, -320, -1000, -1000, -1000, -1000, 3184, -1000, -1000, + -1000, 2757, -1000, 2755, -1000, 239, 281, 3820, 283, -1000, + 4054, 14915, 3780, -1000, -1000, 1528, 2102, 3759, 1698, 4063, + -1000, 174, -428, -430, 170, 3180, 62129, 2753, -1000, -1000, + -1000, 4005, 48557, 669, 2166, 47843, -1000, 428, -1000, 1646, + 750, 3179, -1000, 1133, 128, 3178, 3176, -1000, -1000, -1000, + -1000, 18495, 2119, -1000, -1000, -1000, 2429, 14915, 3394, 2632, + 3393, 3389, -1000, 3509, 3509, -1000, 3506, 3508, 3506, 2109, + 2109, 3388, -1000, 3505, -1000, 3819, -1000, 2099, 2641, 2903, + 5171, -1000, 2898, 2890, 14915, -1000, 3387, 5102, 1847, 1778, + 2878, -110, -235, 137, 137, -1000, -1000, -1000, -1000, 137, 137, 137, 137, -1000, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 988, -1000, -1000, 1980, -1000, - 1912, -1000, -1000, 3106, -140, -344, -142, -347, -1000, -1000, - 3380, 1679, -1000, -1000, -1000, -1000, -1000, 5459, 1663, 783, - 783, 3105, 3083, 62129, 3074, -359, 62129, -1000, -427, -428, - -360, 62129, 3073, 62129, 62129, 125, 2363, 2512, -1000, 3071, - -1000, -1000, 47129, 62129, 62129, 62843, 854, 62129, 62129, 3069, - -1000, -197, 3558, -139, 3064, 3379, 1662, -1000, -1000, 62129, - -1000, -1000, -1000, 3378, 4039, 22814, 4037, 2780, -1000, -1000, - -1000, 34985, 62129, 768, -1000, -1000, -1000, 916, 510, 2700, - 755, -1000, 62129, 688, 537, 3922, 2330, 3051, 62129, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3965, - -1000, 1113, -417, 62129, 690, 42125, 19947, -1000, 3411, 62129, - -1000, 62129, 46409, 22814, 22814, 3411, 699, 2266, -1000, 2476, - -273, 12044, 3396, 62129, -273, 62129, 12044, -1000, 62129, 3369, - -1000, 986, 1660, 138, 43553, 62129, -1000, 44267, -1000, -1000, - 1564, 4149, -1000, 2878, 2878, -417, 4149, 4149, 2332, -1000, - -1000, 699, -1000, 3411, -1000, 1439, 24242, 795, 577, 575, - -1000, 861, -1000, -1000, 983, 3948, 492, -1000, 62129, -1000, - 62129, -1000, 62129, 62129, 1021, 14915, 3948, 62129, 1045, -1000, - 1389, 597, 662, 1070, 1070, 1659, -1000, 3987, -1000, -1000, - 1637, -1000, -1000, -1000, -1000, 62129, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 32129, 32129, 4065, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3048, - 3047, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 137, 137, 137, 137, 137, 953, -1000, -1000, 1912, -1000, + 1843, -1000, -1000, 2866, -101, -347, -142, -348, -1000, -1000, + 3386, 1678, -1000, -1000, -1000, -1000, -1000, 4196, 1651, 745, + 745, 3176, 3175, 62129, 3173, -360, 62129, -1000, -431, -433, + -362, 62129, 3172, 62129, 62129, 88, 2359, 2479, -1000, 3171, + -1000, -1000, 47129, 62129, 62129, 62843, 799, 62129, 62129, 3165, + -1000, -205, 3503, -165, 3159, 3383, 1620, -1000, -1000, 62129, + -1000, -1000, -1000, 3382, 3844, 22814, 3840, 2852, -1000, -1000, + -1000, 34985, 62129, 752, -1000, -1000, -1000, 872, 407, 2752, + 729, -1000, 62129, 644, 508, 3774, 2312, 3152, 62129, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3811, + -1000, 1108, -419, 62129, 637, 42125, 19947, -1000, 3392, 62129, + -1000, 62129, 46409, 22814, 22814, 3392, 642, 2325, -1000, 2467, + -278, 12044, 3403, 62129, -278, 62129, 12044, -1000, 62129, 3379, + -1000, 946, 1555, 136, 43553, 62129, -1000, 44267, -1000, -1000, + 1550, 3992, -1000, 2429, 2429, -419, 3992, 3992, 2186, -1000, + -1000, 642, -1000, 3392, -1000, 1953, 24242, 761, 560, 553, + -1000, 844, -1000, -1000, 941, 3797, 492, -1000, 62129, -1000, + 62129, -1000, 62129, 62129, 1017, 14915, 3797, 62129, 1044, -1000, + 1423, 597, 739, 1015, 1015, 1610, -1000, 3819, -1000, -1000, + 1604, -1000, -1000, -1000, -1000, 62129, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 32129, 32129, 3879, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3144, + 3141, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 62129, 2124, -1000, 2324, 3040, -139, 8453, -1000, -1000, 1043, - -1000, 3828, 1114, 2780, 34985, 2322, 2181, 3039, 3033, 768, - -1000, 3032, 3030, -1000, 2516, 2310, 1097, 62129, -1000, 1562, - 62129, 62129, -1000, 1703, -1000, 2300, 3811, 3825, 3811, -1000, - 3811, -1000, -1000, -1000, -1000, 3874, 3013, -1000, 3857, -1000, - 3855, -1000, 3562, -1000, -1000, -1000, -1000, 1670, -1000, -1000, - -1000, -1000, -1000, 1220, -1000, 4091, 1241, 1241, 1241, 3368, - -1000, -1000, -1000, -1000, 1622, 3365, -1000, -1000, 4090, -1000, - -1000, -1000, -1000, -1000, -1000, 22100, 3963, 689, 4144, 4134, - 45695, -1000, -401, 2399, -1000, 2513, 197, 2364, 62129, -1000, - -1000, -1000, 3363, 3360, -285, 312, 4133, 4132, 4090, -299, - 3011, 471, -1000, -1000, 3942, 1714, -273, 4102, -1000, -1000, - -1000, -1000, -431, -1000, -1000, 445, -1000, 1698, -1000, -1000, - -1000, -1000, -1000, -1000, 346, -1000, 62129, -1000, 1620, 127, - -1000, 2878, -1000, 260, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3010, -1000, -1000, -1000, 14915, -1000, - -1000, -1000, -1000, 3043, -1000, -1000, 14915, 14915, -1000, 3352, - 3009, 3351, 3008, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 62129, 2084, -1000, 2308, 3139, -165, 8453, -1000, -1000, 1041, + -1000, 3693, 1125, 2852, 34985, 2307, 2274, 3138, 3135, 752, + -1000, 3133, 3129, -1000, 2602, 2302, 1114, 62129, -1000, 1536, + 62129, 62129, -1000, 1639, -1000, 2300, 3674, 3692, 3674, -1000, + 3674, -1000, -1000, -1000, -1000, 3739, 3125, -1000, 3736, -1000, + 3731, -1000, 3725, -1000, -1000, -1000, -1000, 1703, -1000, -1000, + -1000, -1000, -1000, 1246, -1000, 3909, 1295, 1295, 1295, 3371, + -1000, -1000, -1000, -1000, 1585, 3370, -1000, -1000, 3904, -1000, + -1000, -1000, -1000, -1000, -1000, 22100, 3810, 634, 3985, 3975, + 45695, -1000, -404, 2355, -1000, 2434, 196, 2412, 62129, -1000, + -1000, -1000, 3369, 3368, -285, 262, 3973, 3968, 3904, -298, + 3110, 418, -1000, -1000, 3803, 1468, -278, 3924, -1000, -1000, + -1000, -1000, -436, -1000, -1000, 669, -1000, 1641, -1000, -1000, + -1000, -1000, -1000, -1000, 325, -1000, 62129, -1000, 1582, 117, + -1000, 2429, -1000, 260, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 3109, -1000, -1000, -1000, 14915, -1000, + -1000, -1000, -1000, 2862, -1000, -1000, 14915, 14915, -1000, 3365, + 3108, 3363, 3105, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 4190, -1000, 4131, 137, 14915, 137, 14915, 137, 2117, 3340, - 3339, 2113, 3333, 3328, -1000, 14915, 3326, 5459, 1247, 3005, - 1247, -1000, -1000, -1000, -1000, 62129, -1000, -1000, -1000, 62129, - 4156, 34271, 1042, -417, 723, 3557, -1000, 731, 2363, 1384, - 3556, 3004, -1000, 62129, 4155, 62129, 2656, 851, 2656, 890, - 62129, -364, -149, 2699, 8453, -1000, 3003, -1000, -175, 1584, - 492, 1095, 3411, 3325, 1591, -1000, -1000, -1000, -1000, 3411, - -1000, 3000, 373, -1000, -1000, -1000, 610, -1000, 2697, -1000, - -1000, 2613, 1861, 402, -1000, -1000, -1000, -1000, -1000, -1000, - 2776, 62129, 44981, 2776, 2779, 2291, -419, -1000, 3554, -1000, - 2199, 2199, 2199, 1042, 683, 62129, 2108, -1000, 2199, 2199, - 3324, -1000, -1000, 3934, 62129, 3323, 3318, 4181, 995, 2358, - 2325, -1000, 2696, 1288, -1000, 3303, 1576, -273, -1000, -1000, - 1527, -1000, -1000, -1000, -1000, 33557, 43553, 44267, 1627, -1000, - 1866, -1000, -1000, -1000, -1000, -1000, 4149, 995, -1000, 790, - 2686, 18495, 3553, 18495, 3551, 816, 3550, 2102, -1000, 62129, - -1000, -1000, 62129, 4740, 3549, -1000, 3548, 3819, 781, 3547, - 3543, 62129, 2998, -1000, 3948, 62129, 942, 3962, -1000, 563, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 859, -1000, - 62129, -1000, 62129, -1000, 2011, -1000, 32129, -1000, -1000, 2084, - -1000, 2988, 2984, -1000, -1000, 3299, 2878, -1000, 1775, 445, - 1080, 62129, -1000, 373, 2983, 9169, -1000, -1000, -1000, -1000, - -1000, 3922, 2977, 2776, 62129, -1000, 62129, 1562, 1562, 4190, - 43553, 62129, 12044, -1000, -1000, 14915, 3539, -1000, 14915, -1000, - -1000, -1000, 3298, -1000, -1000, -1000, -1000, -1000, -1000, 3536, - 3930, -1000, -1000, -1000, -1000, -1000, -1000, 4174, -1000, 2110, - 62129, -1000, 14915, 15631, -1000, 1020, 19222, -323, 503, -1000, - -1000, -1000, -287, 2976, -1000, -1000, 4130, 2972, 2798, -1000, - 142, 2971, -1000, 14915, -1000, -1000, -1000, -273, -1000, 1527, - -1000, -1000, 1564, -1000, -1000, 1330, 914, -1000, 3297, 2248, - -1000, 2992, -1000, 2974, 2910, 137, -1000, 137, -1000, 334, - 14915, -1000, 2897, -1000, 2887, -1000, -1000, 2967, -1000, -1000, - -1000, 2966, -1000, -1000, 2865, -1000, 3271, -1000, 2949, -1000, - -1000, 2945, 2943, -361, -1000, -1000, 533, 1042, -1000, 397, - 62129, 778, -1000, 42839, 8453, -420, 640, 62129, 4154, 2941, - 2656, 2940, 2656, 62129, 847, -1000, 4036, 2938, -1000, 3270, - -1000, 2937, 2936, -1000, -1000, 492, 4179, 4181, 22814, 4179, - -1000, -1000, 4114, -1000, 1716, 529, -1000, -1000, 2589, 825, - -1000, -1000, 2931, 782, -1000, 1562, -1000, -1000, 2289, 2545, - 2828, 39983, 32129, 32843, 2926, -1000, 62129, -1000, -1000, 42125, - 2110, 2110, 6351, 1042, 4084, 639, 474, 6639, -1000, 3527, - 1450, 2309, -1000, 2684, -1000, 2683, -1000, 62129, -1000, -1000, - 1527, 4149, 1627, 136, -1000, -1000, 2045, -1000, 1450, 2903, - 4129, -1000, 4208, 62129, 3457, 62129, 3510, 2288, 18495, -1000, - 983, 3902, -1000, -1000, 4740, -1000, -1000, 2458, 18495, -1000, - -1000, 2925, 32843, 1172, 2282, 2255, 1210, 3509, -1000, 872, - 4173, 2682, -1000, -1000, -1000, 1228, 3508, -1000, -311, 3506, - 2475, 2474, -1000, 62129, -1000, 39983, 39983, 1093, 1093, 39983, - 39983, 3503, 1070, -1000, -1000, 18495, -1000, -1000, -1000, 2241, - 1826, 1826, 1826, 1826, -1000, -1000, -1000, 2199, 1988, -1000, - -1000, -1000, -1000, -1000, 62129, 1859, -1000, -1000, -1000, 2779, - -1000, -1000, 1530, -1000, 4102, 1627, -1000, -1000, 2878, 62129, - 2878, -1000, 41411, -1000, 4128, 4126, -1000, -1000, -1000, 2878, - 1634, 265, 3502, 3501, -1000, -401, 62129, 62129, -292, 2678, - -1000, 2923, 307, -1000, -1000, 258, -1000, 1498, 1527, -294, - 139, 32129, 2227, -1000, 3268, 362, -180, -1000, -1000, -1000, - -1000, -1000, 3265, -1000, 1019, -1000, -1000, -1000, 1498, 137, - 137, 3263, 3260, -1000, -1000, -1000, -1000, -1000, 62129, 62129, - -1000, 62129, 2915, 2669, -1000, -1000, 2079, -1000, -1000, -1000, - 2466, 2452, 1975, 3224, 2817, 62129, 630, 62129, -364, 2914, - -364, 2908, 836, 2656, -336, -1000, -1000, -1000, -1000, -177, - -1000, -1000, 477, -1000, -1000, -1000, 789, 2789, 2668, -1000, - -1000, 528, -1000, -1000, -1000, 2776, 2898, -1000, -1000, 126, - -1000, 2211, 1973, -1000, -1000, -1000, 610, -1000, -1000, -1000, - 982, -1000, 3411, 6517, -1000, 1595, -1000, -1000, 62129, -1000, - 1330, 982, 38555, 895, 2247, -1000, 2660, -1000, -1000, 1494, - 4190, -1000, 889, -1000, 809, -1000, 1972, -1000, 1918, 40697, - 2658, 3036, -1000, 6402, 1134, -1000, -1000, 5016, -1000, -1000, - -1000, -1000, -1000, -1000, 2894, 2891, -1000, -1000, -1000, -1000, - -1000, 2657, 3499, 68, -1000, 4063, 2871, 4033, 14915, -1000, - -1000, 3497, 1910, 1896, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1894, 1889, 39983, -1000, - -1000, 5016, 1826, 2534, -1000, 2199, 2199, 2870, 2868, 609, - -1000, -1000, 2199, 2199, 2199, 2199, 2199, 2199, 3496, 2867, - 2863, 2199, 2199, 2199, 2199, -1000, -1000, 2210, 2199, 2199, - 32129, 2199, 1830, 62129, -1000, -1000, -1000, 1860, 1842, -1000, - -1000, -1000, -1000, -1000, -375, 3495, 14915, 14915, -1000, -1000, - -1000, 3490, -1000, -1000, 4125, -285, -297, 2858, 256, 355, - -1000, 2857, -1000, -178, 3897, -185, -1000, -1000, 947, -276, - 239, 234, 232, -1000, -1000, -1000, 14915, -1000, -1000, -1000, - -1000, 2854, -1000, -1000, -1000, -1000, -1000, 62129, 2841, -1000, - -1000, 107, -1000, 2208, -1000, 62129, 629, -1000, -364, -1000, - -364, 2656, 2829, -1000, 62129, 869, -1000, -1000, -1000, -1000, - 343, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2828, 2820, - -1000, -1000, 785, 4124, -1000, 6639, -1000, 2199, 610, -1000, - 785, 1805, -1000, 2199, 2199, -1000, 717, -1000, 2104, -1000, - 2650, -1000, 4102, -1000, 715, -1000, 794, -1000, -1000, -1000, - 1803, -1000, -1000, -1000, 6402, 799, -1000, 974, 3488, -1000, - -1000, 3117, 14915, 3486, 2199, 3059, 3483, 2783, -167, 39983, - 3816, 3815, 3814, 3617, 1766, -1000, -1000, 2649, 2635, -1000, - -1000, 62129, 2633, 2631, 2630, 2629, 2627, 2614, 62129, -1000, - -1000, 2592, 2579, 2572, 2568, 2529, 2563, 2537, -1000, 32129, - 62129, -1000, -1000, -1000, 39269, -1000, 3482, 1728, 1724, 62129, - 2798, -287, -1000, 2819, -1000, 1033, 297, 355, -1000, 4123, - 302, 4121, 4119, 1489, 3894, -1000, -1000, 2450, -1000, 263, - 261, 236, -1000, -1000, -1000, -1000, -1000, 2448, 2448, -364, - 2817, 2816, -1000, 62129, -1000, -1000, 2814, -364, 748, -1000, - 469, -1000, -1000, -1000, 1826, -1000, 4117, 842, -1000, 32129, - -1000, -1000, -1000, 38555, 2110, 2110, -1000, -1000, 2523, -1000, - -1000, -1000, -1000, 2501, -1000, -1000, -1000, 1723, -1000, 62129, - 1200, 11328, -1000, 2778, -1000, 62129, -1000, 14915, -306, 3824, - -1000, 442, 1701, 1826, 1093, 1826, 1093, 1826, 1093, 1826, - 1093, 459, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1667, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1655, 14915, -1000, -1000, 1641, -1000, - -1000, -292, -1000, 3481, 2494, 312, 291, 4116, -1000, 2798, - 4115, 2798, 2798, -1000, 250, 4178, 947, -1000, -1000, -1000, - -1000, 2363, -1000, 2363, -1000, -1000, -1000, -1000, -364, -1000, - 2813, -1000, -1000, -1000, 37841, 795, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 799, 6639, -1000, 11328, 1636, -1000, 2878, - -1000, 1070, -1000, 2772, -1000, -1000, -1000, -1000, 3673, 3544, - 4153, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 3174, 3007, -1000, 62129, -1000, 4055, 31415, 287, - -1000, -1000, -1000, 2811, -1000, 2798, -1000, -1000, 2194, -181, - -1000, -1000, -1000, -1000, -341, -1000, 62129, 790, -1000, 6639, - 1625, -1000, 11328, -1000, -306, -1000, 4166, -1000, 4171, 1186, - 1186, 1826, 1826, 1826, 1826, 14915, -1000, -1000, -1000, 62129, - -1000, 1580, -1000, -1000, -1000, 1827, -1000, -1000, -1000, -1000, - 2787, -186, -1000, -1000, 2785, 1571, 2903, -1000, -1000, -1000, - -1000, -1000, -1000, 2557, 864, -1000, 2979, 1458, -1000, 2193, + 4063, -1000, 3967, 137, 14915, 137, 14915, 137, 2067, 3360, + 3358, 2065, 3348, 3347, -1000, 14915, 3344, 4196, 1292, 3099, + 1292, -1000, -1000, -1000, -1000, 62129, -1000, -1000, -1000, 62129, + 4004, 34271, 1038, -419, 662, 3502, -1000, 680, 2359, 1390, + 3501, 3098, -1000, 62129, 4003, 62129, 2683, 790, 2683, 852, + 62129, -370, -167, 2751, 8453, -1000, 3097, -1000, -181, 1546, + 492, 1160, 3392, 3343, 1581, -1000, -1000, -1000, -1000, 3392, + -1000, 3094, 317, -1000, -1000, -1000, 594, -1000, 2745, -1000, + -1000, 2583, 1905, 349, -1000, -1000, -1000, -1000, -1000, -1000, + 2660, 62129, 44981, 2660, 2724, 2297, -421, -1000, 3499, -1000, + 2256, 2256, 2256, 1038, 633, 62129, 2053, -1000, 2256, 2256, + 3341, -1000, -1000, 3790, 62129, 3340, 3339, 4053, 971, 2269, + 2262, -1000, 2742, 1280, -1000, 3337, 1573, -278, -1000, -1000, + 1528, -1000, -1000, -1000, -1000, 33557, 43553, 44267, 1692, -1000, + 1919, -1000, -1000, -1000, -1000, -1000, 3992, 971, -1000, 753, + 2740, 18495, 3497, 18495, 3496, 765, 3495, 2049, -1000, 62129, + -1000, -1000, 62129, 841, 3494, -1000, 3493, 3683, 741, 3492, + 3491, 62129, 2846, -1000, 3797, 62129, 947, 3804, -1000, 550, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 809, -1000, + 62129, -1000, 62129, -1000, 2122, -1000, 32129, -1000, -1000, 2027, + -1000, 3092, 3091, -1000, -1000, 3336, 2429, -1000, 2191, 669, + 1103, 62129, -1000, 317, 3090, 9169, -1000, -1000, -1000, -1000, + -1000, 3774, 3089, 2660, 62129, -1000, 62129, 1536, 1536, 4063, + 43553, 62129, 12044, -1000, -1000, 14915, 3490, -1000, 14915, -1000, + -1000, -1000, 3333, -1000, -1000, -1000, -1000, -1000, -1000, 3488, + 3792, -1000, -1000, -1000, -1000, -1000, -1000, 4038, -1000, 2543, + 62129, -1000, 14915, 15631, -1000, 1011, 19222, -321, 459, -1000, + -1000, -1000, -287, 3088, -1000, -1000, 3964, 3087, 2905, -1000, + 93, 3077, -1000, 14915, -1000, -1000, -1000, -278, -1000, 1528, + -1000, -1000, 1550, -1000, -1000, 1405, 856, -1000, 3332, 2305, + -1000, 2792, -1000, 2773, 2761, 137, -1000, 137, -1000, 343, + 14915, -1000, 2749, -1000, 2729, -1000, -1000, 3069, -1000, -1000, + -1000, 3051, -1000, -1000, 2672, -1000, 3326, -1000, 3048, -1000, + -1000, 3047, 3045, -366, -1000, -1000, 502, 1038, -1000, 497, + 62129, 744, -1000, 42839, 8453, -422, 631, 62129, 4002, 3040, + 2683, 3037, 2683, 62129, 786, -1000, 3838, 3036, -1000, 3325, + -1000, 3030, 3027, -1000, -1000, 492, 4050, 4053, 22814, 4050, + -1000, -1000, 3939, -1000, 1704, 489, -1000, -1000, 2558, 805, + -1000, -1000, 3026, 751, -1000, 1536, -1000, -1000, 2291, 2570, + 2940, 39983, 32129, 32843, 3025, -1000, 62129, -1000, -1000, 42125, + 2543, 2543, 6351, 1038, 3894, 630, 463, 6593, -1000, 3483, + 1439, 2239, -1000, 2738, -1000, 2736, -1000, 62129, -1000, -1000, + 1528, 3992, 1692, 134, -1000, -1000, 2157, -1000, 1439, 3378, + 3954, -1000, 5016, 62129, 4895, 62129, 3482, 2290, 18495, -1000, + 941, 3758, -1000, -1000, 841, -1000, -1000, 2484, 18495, -1000, + -1000, 3024, 32843, 1131, 2288, 2286, 1140, 3481, -1000, 815, + 4036, 2735, -1000, -1000, -1000, 1256, 3475, -1000, -303, 3474, + 2464, 2449, -1000, 62129, -1000, 39983, 39983, 1413, 1413, 39983, + 39983, 3473, 1015, -1000, -1000, 18495, -1000, -1000, -1000, 2283, + 4593, 4593, 4593, 4593, -1000, -1000, -1000, 2256, 2008, -1000, + -1000, -1000, -1000, -1000, 62129, 1914, -1000, -1000, -1000, 2724, + -1000, -1000, 1534, -1000, 3924, 1692, -1000, -1000, 2429, 62129, + 2429, -1000, 41411, -1000, 3953, 3952, -1000, -1000, -1000, 2429, + 1622, 261, 3472, 3471, -1000, -404, 62129, 62129, -289, 2731, + -1000, 3021, 267, -1000, -1000, 239, -1000, 1510, 1528, -293, + 101, 32129, 2281, -1000, 3324, 356, -186, -1000, -1000, -1000, + -1000, -1000, 3323, -1000, 1050, -1000, -1000, -1000, 1510, 137, + 137, 3321, 3301, -1000, -1000, -1000, -1000, -1000, 62129, 62129, + -1000, 62129, 3017, 2716, -1000, -1000, 2015, -1000, -1000, -1000, + 2424, 2422, 1992, 3299, 2930, 62129, 628, 62129, -370, 3016, + -370, 3015, 785, 2683, -333, -1000, -1000, -1000, -1000, -183, + -1000, -1000, 454, -1000, -1000, -1000, 758, 2909, 2710, -1000, + -1000, 487, -1000, -1000, -1000, 2660, 3010, -1000, -1000, 113, + -1000, 2273, 1973, -1000, -1000, -1000, 594, -1000, -1000, -1000, + 930, -1000, 3392, 6509, -1000, 1601, -1000, -1000, 62129, -1000, + 1405, 930, 38555, 899, 2356, -1000, 2707, -1000, -1000, 1494, + 4063, -1000, 838, -1000, 759, -1000, 1935, -1000, 1922, 40697, + 2706, 4558, -1000, 6402, 1109, -1000, -1000, 5590, -1000, -1000, + -1000, -1000, -1000, -1000, 3008, 3007, -1000, -1000, -1000, -1000, + -1000, 2697, 3470, 71, -1000, 3868, 3002, 3837, 14915, -1000, + -1000, 3469, 1910, 1883, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1860, 1858, 39983, -1000, + -1000, 5590, 4593, 2546, -1000, 2256, 2256, 2996, 2988, 580, + -1000, -1000, 2256, 2256, 2256, 2256, 2256, 2256, 3467, 2987, + 2983, 2256, 2256, 2256, 2256, -1000, -1000, 2261, 2256, 2256, + 32129, 2256, 1909, 62129, -1000, -1000, -1000, 1853, 1849, -1000, + -1000, -1000, -1000, -1000, -377, 3465, 14915, 14915, -1000, -1000, + -1000, 3464, -1000, -1000, 3951, -285, -295, 2982, 237, 328, + -1000, 2979, -1000, -184, 3752, -193, -1000, -1000, 1158, -279, + 169, 163, 153, -1000, -1000, -1000, 14915, -1000, -1000, -1000, + -1000, 2972, -1000, -1000, -1000, -1000, -1000, 62129, 2969, -1000, + -1000, 107, -1000, 2260, -1000, 62129, 598, -1000, -370, -1000, + -370, 2683, 2941, -1000, 62129, 814, -1000, -1000, -1000, -1000, + 311, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2940, 2934, + -1000, -1000, 730, 3950, -1000, 6593, -1000, 2256, 594, -1000, + 730, 1842, -1000, 2256, 2256, -1000, 658, -1000, 2238, -1000, + 2678, -1000, 3924, -1000, 651, -1000, 746, -1000, -1000, -1000, + 1838, -1000, -1000, -1000, 6402, 754, -1000, 921, 3463, -1000, + -1000, 3126, 14915, 3462, 2256, 3117, 3461, 2654, -175, 39983, + 3682, 3678, 3675, 3395, 1766, -1000, -1000, 2665, 2662, -1000, + -1000, 62129, 2634, 2625, 2609, 2607, 2606, 2584, 62129, -1000, + -1000, 2573, 2556, 2544, 2537, 2533, 2509, 2504, -1000, 32129, + 62129, -1000, -1000, -1000, 39269, -1000, 3460, 1744, 1737, 62129, + 2905, -287, -1000, 2933, -1000, 1026, 263, 328, -1000, 3943, + 253, 3942, 3936, 1473, 3747, -1000, -1000, 2415, -1000, 236, + 234, 159, -1000, -1000, -1000, -1000, -1000, 2443, 2443, -370, + 2930, 2926, -1000, 62129, -1000, -1000, 2919, -370, 667, -1000, + 416, -1000, -1000, -1000, 4593, -1000, 3929, 776, -1000, 32129, + -1000, -1000, -1000, 38555, 2543, 2543, -1000, -1000, 2501, -1000, + -1000, -1000, -1000, 2490, -1000, -1000, -1000, 1728, -1000, 62129, + 1173, 11328, -1000, 2646, -1000, 62129, -1000, 14915, -306, 3689, + -1000, 308, 1727, 4593, 1413, 4593, 1413, 4593, 1413, 4593, + 1413, 411, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 1665, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1655, 14915, -1000, -1000, 1636, -1000, + -1000, -289, -1000, 3458, 2454, 262, 250, 3928, -1000, 2905, + 3922, 2905, 2905, -1000, 187, 4044, 1158, -1000, -1000, -1000, + -1000, 2359, -1000, 2359, -1000, -1000, -1000, -1000, -370, -1000, + 2917, -1000, -1000, -1000, 37841, 761, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 754, 6593, -1000, 11328, 1576, -1000, 2429, + -1000, 1015, -1000, 2496, -1000, -1000, -1000, -1000, 3688, 3052, + 3996, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 3404, 3059, -1000, 62129, -1000, 3863, 31415, 252, + -1000, -1000, -1000, 2911, -1000, 2905, -1000, -1000, 2247, -190, + -1000, -1000, -1000, -1000, -343, -1000, 62129, 753, -1000, 6593, + 1556, -1000, 11328, -1000, -306, -1000, 4025, -1000, 4023, 1163, + 1163, 4593, 4593, 4593, 4593, 14915, -1000, -1000, -1000, 62129, + -1000, 1539, -1000, -1000, -1000, 1907, -1000, -1000, -1000, -1000, + 2901, -197, -1000, -1000, 2739, 1533, 3378, -1000, -1000, -1000, + -1000, -1000, -1000, 2536, 819, -1000, 3014, 1458, -1000, 2221, -1000, 37127, 62129, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 62129, 10612, -1000, 1632, -1000, -1000, 2878, 62129, + -1000, -1000, 62129, 10612, -1000, 1901, -1000, -1000, 2429, 62129, -1000, } var yyPgo = [...]int{ - 0, 191, 60, 258, 197, 4889, 103, 274, 327, 3963, - 322, 273, 269, 4888, 4885, 4881, 3959, 3953, 4880, 4879, - 4878, 4877, 4876, 4875, 4874, 4872, 4871, 4870, 4868, 4867, - 4866, 4865, 4863, 4862, 4861, 4859, 4857, 4856, 4853, 4852, - 4851, 4850, 4848, 4847, 4846, 4845, 4844, 4843, 4842, 4841, - 4840, 4837, 4836, 256, 4834, 4830, 4829, 4827, 4826, 4824, - 4823, 4822, 4820, 4818, 4817, 4816, 4815, 4814, 4813, 4807, - 4806, 4805, 4804, 4803, 4802, 4801, 4800, 4783, 4781, 4780, - 4779, 4777, 4775, 4774, 4773, 4772, 4771, 4770, 4769, 4768, - 4766, 4765, 285, 4763, 3952, 4747, 4743, 4738, 4737, 4736, - 4735, 4734, 4733, 4732, 4730, 4725, 4724, 342, 4723, 4722, - 4720, 4719, 4718, 4717, 4716, 4699, 4698, 4697, 4696, 4693, - 4692, 337, 4691, 4690, 4689, 4688, 278, 4687, 277, 4684, - 188, 150, 4681, 4680, 4679, 4678, 4677, 4675, 112, 136, - 4671, 4668, 4667, 4666, 4665, 4664, 4663, 4662, 4661, 4660, - 4658, 4657, 4656, 4655, 252, 173, 81, 4653, 57, 4652, - 260, 223, 4650, 232, 4649, 164, 4645, 156, 4639, 4638, - 4636, 4635, 4634, 4633, 4632, 4631, 4630, 4629, 4628, 4626, - 4623, 4622, 4621, 4620, 4619, 4614, 4613, 4611, 4610, 4607, - 4605, 4603, 4601, 4600, 4598, 4597, 4596, 4594, 58, 4591, - 272, 4590, 84, 4588, 190, 4587, 91, 4585, 4583, 85, - 4579, 28, 37, 4578, 49, 243, 121, 265, 3983, 271, - 4577, 212, 4576, 4575, 261, 187, 4574, 4573, 270, 4570, - 194, 239, 175, 93, 134, 4569, 163, 4568, 275, 53, - 71, 257, 207, 145, 4558, 4556, 65, 172, 153, 4555, - 205, 109, 4553, 4551, 4550, 130, 4549, 4548, 122, 4547, - 249, 199, 4546, 125, 4544, 4543, 4542, 22, 4541, 4540, - 222, 208, 4539, 4537, 110, 4536, 4535, 74, 147, 4533, - 88, 160, 185, 157, 4531, 3281, 141, 107, 4530, 143, - 117, 4529, 124, 4527, 4525, 4523, 4521, 193, 4517, 4515, - 166, 4514, 70, 4513, 4512, 4511, 76, 4510, 90, 4509, - 31, 4508, 66, 4505, 4504, 4501, 4500, 4499, 4497, 4495, - 4490, 4489, 4488, 4487, 4485, 40, 4484, 4482, 4479, 4477, - 7, 12, 15, 4473, 30, 4472, 182, 4471, 4469, 179, - 4468, 214, 4463, 4459, 111, 100, 4458, 104, 4457, 178, - 4455, 11, 32, 87, 4453, 4451, 4450, 217, 4449, 4448, - 4447, 304, 4446, 4443, 4442, 176, 4441, 4440, 4439, 559, - 4430, 4428, 4427, 4426, 4425, 4423, 94, 4422, 1, 230, - 35, 4421, 158, 161, 4419, 46, 33, 4417, 54, 133, - 220, 154, 118, 4416, 4413, 4412, 695, 218, 123, 38, - 0, 113, 231, 171, 4411, 4409, 4408, 259, 4407, 247, - 263, 255, 299, 283, 284, 4404, 4403, 69, 4399, 177, - 41, 63, 159, 106, 24, 219, 4397, 2013, 10, 209, - 4396, 225, 4395, 8, 16, 377, 146, 4394, 4388, 42, - 276, 4387, 4386, 4385, 149, 4384, 4383, 201, 86, 4381, - 4380, 4379, 4378, 4377, 59, 4376, 203, 19, 4373, 126, - 4372, 267, 101, 241, 169, 202, 196, 174, 234, 246, - 95, 83, 4371, 2207, 170, 119, 17, 4369, 9, 236, - 4368, 200, 195, 4349, 139, 4345, 254, 282, 226, 4344, - 204, 13, 55, 44, 34, 51, 14, 312, 80, 4343, - 4342, 25, 62, 4341, 56, 4339, 23, 4338, 4336, 48, - 45, 4335, 72, 5, 4334, 4333, 20, 18, 4332, 43, - 224, 186, 144, 108, 73, 4331, 4328, 162, 151, 4327, - 155, 165, 168, 4326, 47, 4325, 4324, 4322, 4320, 813, - 262, 4319, 4318, 4317, 4316, 4315, 4314, 4313, 4312, 221, - 4311, 89, 52, 4309, 4307, 4306, 4304, 96, 148, 4302, - 4301, 4300, 4299, 36, 92, 4298, 21, 4295, 26, 29, - 39, 4294, 64, 4292, 4291, 4290, 3, 210, 4289, 4287, - 4, 4286, 4283, 2, 4282, 4281, 137, 4280, 105, 27, - 180, 128, 4279, 4275, 102, 206, 142, 4274, 4273, 116, - 253, 4272, 227, 4271, 114, 248, 268, 4270, 229, 4268, - 4267, 4266, 4265, 4263, 1421, 4261, 4260, 238, 75, 98, - 4259, 233, 132, 4257, 4243, 99, 181, 135, 138, 67, - 97, 4242, 131, 228, 4241, 215, 4240, 235, 4239, 4238, - 4237, 4236, 129, 4235, 4233, 4232, 4230, 211, 4229, 4228, - 213, 237, 4227, 4224, 302, 4222, 4221, 4220, 4219, 4218, - 4217, 4216, 4215, 4214, 4212, 264, 280, 4211, 4210, + 0, 191, 60, 257, 197, 4723, 103, 273, 327, 3819, + 322, 269, 259, 4720, 4719, 4718, 3818, 3817, 4717, 4716, + 4699, 4698, 4697, 4696, 4693, 4692, 4690, 4689, 4688, 4687, + 4684, 4681, 4680, 4679, 4678, 4677, 4671, 4668, 4667, 4666, + 4665, 4664, 4663, 4662, 4661, 4660, 4658, 4657, 4656, 4655, + 4653, 4652, 4650, 256, 4649, 4646, 4645, 4639, 4636, 4635, + 4629, 4628, 4623, 4622, 4621, 4620, 4614, 4613, 4611, 4610, + 4608, 4605, 4603, 4601, 4600, 4598, 4597, 4596, 4594, 4591, + 4590, 4588, 4587, 4585, 4584, 4583, 4579, 4578, 4577, 4576, + 4575, 4574, 295, 4573, 3816, 4570, 4569, 4568, 4558, 4556, + 4555, 4553, 4551, 4550, 4549, 4548, 4547, 337, 4546, 4545, + 4544, 4543, 4542, 4541, 4540, 4539, 4538, 4537, 4536, 4535, + 4533, 277, 4531, 4530, 4529, 4527, 235, 4525, 285, 4523, + 188, 150, 4521, 4517, 4516, 4505, 4504, 4501, 111, 135, + 4500, 4499, 4497, 4495, 4490, 4489, 4488, 4487, 4485, 4484, + 4482, 4479, 4477, 4473, 250, 163, 81, 4472, 57, 4471, + 260, 223, 4469, 232, 4468, 164, 4465, 156, 4463, 4461, + 4459, 4458, 4457, 4455, 4453, 4451, 4450, 4449, 4448, 4447, + 4446, 4443, 4442, 4441, 4440, 4439, 4437, 4436, 4435, 4434, + 4433, 4430, 4428, 4427, 4426, 4425, 4423, 4422, 58, 4421, + 272, 4419, 84, 4417, 190, 4416, 91, 4413, 4412, 85, + 4411, 28, 37, 4409, 49, 100, 121, 265, 3983, 270, + 4408, 212, 4407, 4404, 263, 187, 4399, 4397, 271, 4396, + 196, 239, 175, 93, 137, 4395, 161, 4394, 274, 53, + 71, 255, 207, 145, 4388, 4387, 65, 203, 153, 4386, + 205, 113, 4385, 4384, 4383, 132, 4381, 4380, 129, 4379, + 249, 194, 4378, 125, 4377, 4376, 4373, 22, 4372, 4371, + 222, 208, 4369, 4368, 110, 4364, 4363, 74, 149, 4362, + 88, 157, 185, 154, 4360, 3281, 147, 107, 4359, 143, + 122, 4358, 124, 4352, 4351, 4348, 4345, 193, 4344, 4343, + 166, 4341, 70, 4339, 4338, 4336, 76, 4335, 90, 4334, + 31, 4333, 66, 4332, 4331, 4328, 4327, 4326, 4325, 4324, + 4322, 4320, 4319, 4318, 4317, 40, 4316, 4315, 4314, 4313, + 7, 12, 15, 4312, 30, 4311, 182, 4309, 4307, 179, + 4306, 214, 4304, 4302, 112, 104, 4301, 109, 4300, 178, + 4299, 11, 32, 87, 4298, 4297, 4295, 217, 4294, 4292, + 4291, 297, 4290, 4289, 4287, 176, 4286, 4283, 4282, 559, + 4281, 4280, 4279, 4275, 4274, 4273, 94, 4272, 1, 230, + 35, 4271, 158, 159, 4270, 46, 33, 4268, 54, 133, + 220, 160, 118, 4267, 4266, 4265, 695, 218, 123, 38, + 0, 117, 231, 173, 4264, 4263, 4261, 276, 4260, 246, + 262, 247, 299, 283, 284, 4259, 4243, 69, 4242, 177, + 41, 63, 168, 106, 24, 219, 4241, 2013, 10, 209, + 4240, 224, 4239, 8, 16, 377, 146, 4238, 4237, 42, + 275, 4236, 4235, 4233, 155, 4232, 4230, 201, 86, 4229, + 4228, 4227, 4224, 4222, 59, 4221, 199, 19, 4220, 126, + 4219, 261, 101, 241, 169, 202, 200, 171, 234, 243, + 97, 83, 4217, 2203, 174, 119, 17, 4216, 9, 236, + 4215, 267, 195, 4214, 139, 4212, 254, 282, 226, 4211, + 204, 13, 55, 44, 34, 51, 14, 312, 80, 4210, + 4209, 25, 62, 4207, 56, 4206, 23, 4205, 4204, 48, + 45, 4201, 72, 5, 4200, 4198, 20, 18, 4197, 43, + 225, 186, 144, 108, 73, 4195, 4193, 162, 151, 4192, + 170, 165, 172, 4191, 47, 4190, 4189, 4186, 4184, 813, + 258, 4183, 4182, 4181, 4179, 4178, 4177, 4176, 4175, 221, + 4174, 89, 52, 4173, 4171, 4170, 4169, 95, 148, 4167, + 4166, 4161, 4160, 36, 92, 4159, 21, 4158, 26, 29, + 39, 4157, 64, 4156, 4155, 4154, 3, 210, 4153, 4152, + 4, 4151, 4149, 2, 4148, 4147, 141, 4146, 105, 27, + 180, 128, 4144, 4143, 102, 206, 142, 4142, 4140, 116, + 253, 4139, 227, 4138, 114, 248, 268, 4137, 229, 4136, + 4134, 4128, 4127, 4125, 1475, 4124, 4123, 252, 75, 98, + 4122, 233, 134, 4118, 4117, 99, 181, 136, 138, 67, + 96, 4116, 131, 228, 4115, 215, 4114, 237, 4113, 4112, + 4111, 4110, 130, 4109, 4106, 4105, 4104, 211, 4102, 4099, + 213, 238, 4097, 4096, 296, 4095, 4094, 4093, 4092, 4091, + 4089, 4088, 4086, 4085, 4083, 264, 280, 4077, 4075, } -//line mysql_sql.y:14561 +//line mysql_sql.y:14567 type yySymType struct { union interface{} id int @@ -10697,33 +10697,33 @@ var yyR1 = [...]int{ 328, 328, 328, 328, 455, 455, 324, 324, 314, 314, 314, 313, 313, 313, 520, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 423, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, - 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, - 425, 425, 425, 425, 425, 425, 425, 425, 329, 374, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 329, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, - 374, 374, 374, 374, 375, 375, 375, 375, 375, 375, - 375, 375, 426, 426, 432, 432, 603, 603, 602, 290, - 290, 290, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 300, 300, 300, 501, 501, 501, 501, 502, 502, - 502, 502, 503, 503, 503, 499, 499, 500, 500, 437, - 438, 438, 547, 547, 548, 548, 497, 497, 498, 373, + 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, + 375, 375, 375, 426, 426, 432, 432, 603, 603, 602, + 290, 290, 290, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 300, 300, 300, 501, 501, 501, 501, 502, + 502, 502, 502, 503, 503, 503, 499, 499, 500, 500, + 437, 438, 438, 547, 547, 548, 548, 497, 497, 498, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, - 373, 373, 555, 555, 555, 370, 370, 370, 370, 370, + 373, 373, 373, 555, 555, 555, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 370, 370, 370, 613, 613, 613, 598, 598, 598, 599, + 370, 370, 370, 370, 613, 613, 613, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 601, 601, - 601, 601, 372, 372, 372, 372, 372, 371, 371, 371, + 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, + 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, + 601, 601, 601, 372, 372, 372, 372, 372, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 439, 439, 440, 440, 552, - 552, 552, 552, 552, 552, 553, 553, 554, 554, 554, - 554, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 371, 371, 371, 371, 371, 371, 439, 439, 440, 440, + 552, 552, 552, 552, 552, 552, 553, 553, 554, 554, + 554, 554, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, - 424, 369, 369, 369, 441, 433, 433, 434, 434, 435, - 435, 427, 427, 427, 427, 427, 427, 428, 428, 430, + 546, 424, 369, 369, 369, 441, 433, 433, 434, 434, + 435, 435, 427, 427, 427, 427, 427, 428, 428, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 429, 429, 431, 431, 443, 443, 443, 442, 442, @@ -10956,34 +10956,34 @@ var yyR2 = [...]int{ 1, 2, 2, 2, 0, 1, 2, 2, 2, 0, 4, 7, 3, 3, 0, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, - 1, 1, 1, 3, 5, 2, 2, 2, 2, 4, - 1, 1, 2, 5, 6, 8, 6, 3, 6, 6, - 1, 1, 1, 1, 1, 1, 3, 9, 1, 4, - 4, 4, 4, 5, 4, 5, 7, 9, 5, 7, - 9, 5, 5, 7, 7, 9, 7, 7, 7, 9, - 7, 7, 0, 2, 0, 1, 1, 2, 4, 1, - 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, - 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 1, 2, 5, 0, 1, 3, - 0, 1, 0, 2, 0, 2, 0, 1, 6, 8, - 8, 6, 6, 5, 5, 5, 6, 6, 6, 6, - 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 1, 1, 1, 4, 6, 4, 6, 8, - 6, 6, 4, 5, 4, 4, 4, 3, 4, 6, - 6, 7, 4, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 3, 5, 2, 2, 2, 2, + 4, 1, 1, 2, 5, 6, 8, 6, 3, 6, + 6, 1, 1, 1, 1, 1, 1, 3, 9, 1, + 4, 4, 4, 4, 5, 4, 5, 7, 9, 5, + 7, 9, 5, 5, 7, 7, 9, 7, 7, 7, + 9, 7, 7, 0, 2, 0, 1, 1, 2, 4, + 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, + 2, 2, 0, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 2, 5, 0, 1, + 3, 0, 1, 0, 2, 0, 2, 0, 1, 6, + 8, 8, 6, 6, 5, 5, 5, 6, 6, 6, + 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 1, 1, 1, 4, 6, 4, 6, + 8, 6, 6, 4, 5, 4, 4, 4, 3, 4, + 6, 6, 7, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 8, 8, 6, 4, 2, 3, - 2, 4, 2, 2, 4, 6, 2, 2, 4, 6, - 4, 2, 4, 4, 4, 0, 1, 2, 3, 1, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, + 1, 1, 1, 2, 2, 8, 8, 6, 4, 2, + 3, 2, 4, 2, 2, 4, 6, 2, 2, 4, + 6, 4, 2, 4, 4, 4, 0, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 0, 1, 1, 3, 1, - 3, 3, 3, 3, 3, 2, 1, 1, 1, 3, + 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, + 1, 3, 3, 3, 3, 2, 1, 1, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 1, 3, 4, 4, 5, 4, 5, 3, 4, 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, @@ -11188,8 +11188,8 @@ var yyChk = [...]int{ 563, 270, 459, 273, 301, 460, 420, 482, 270, 273, 563, 301, 420, 270, 273, 482, 301, 460, 420, 522, 523, 273, 30, 450, 453, 454, 523, -560, 559, 174, - 119, 116, 117, 118, -427, 137, -442, 130, 131, 132, - 133, 134, 135, 136, 144, 143, 156, 149, 150, 151, + 119, 116, 118, -427, 137, -442, 130, 131, 132, 133, + 134, 135, 136, 144, 143, 156, 117, 149, 150, 151, 152, 153, 154, 155, 145, 146, 147, 148, 140, 120, 138, 142, 139, 122, 161, 160, -218, -427, -435, 64, -425, -425, -425, -425, -400, -520, -432, -427, 88, 88, @@ -11238,8 +11238,8 @@ var yyChk = [...]int{ -214, 606, 608, -579, -577, 88, 35, 491, 85, 19, -488, 270, 563, 444, 297, 273, 420, -486, -468, -465, -463, -399, -461, -464, -463, -491, -376, 523, -156, 506, - 505, 351, -427, -427, -427, -427, -427, 109, 120, 399, - 110, 111, -422, -443, 35, 347, 348, -423, -423, -423, + 505, 351, -427, -427, -427, -427, 109, 120, 399, 110, + 111, -422, -443, 35, 347, 348, -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, -425, -425, -431, -441, -520, 88, 140, 138, 142, 139, 122, -425, -425, -423, -423, -290, -292, 163, 164, -312, -399, @@ -11606,23 +11606,23 @@ var yyDef = [...]int{ 0, 0, 0, 240, 241, 244, 245, 246, 247, 248, 0, 252, 0, 254, 257, 0, 259, 260, 0, 263, 264, 265, 0, 275, 276, 277, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 1246, -2, 150, 1099, 2045, 1929, 0, - 1936, 1949, 1960, 1669, 1670, 1671, 1672, 0, 0, 0, - 0, 0, 0, 1680, 1681, 0, 1724, 2519, 2562, 2563, - 0, 1690, 1691, 1692, 1693, 1694, 1695, 0, 161, 173, + 1243, 1244, 1245, 1246, -2, 150, 1099, 2045, 1930, 0, + 1936, 1949, 1960, 1670, 1671, 1672, 1673, 0, 0, 0, + 0, 0, 0, 1681, 1682, 0, 1725, 2519, 2562, 2563, + 0, 1691, 1692, 1693, 1694, 1695, 1696, 0, 161, 173, 174, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 0, 1990, 1991, 1992, 0, 1654, 1575, 0, 2528, 2536, 0, 2550, - 2557, 2558, 2559, 2560, 2549, 0, 0, 1885, 0, 1875, + 2557, 2558, 2559, 2560, 2549, 0, 0, 1886, 0, 1876, 0, 0, -2, -2, 0, 0, 2335, -2, 2564, 2565, 2566, 2525, 2546, 2554, 2555, 2556, 2529, 2530, 2553, 2521, 2522, 2523, 2516, 2517, 2518, 2520, 2532, 2534, 2545, 0, 2541, 2551, 2552, 2443, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 2501, 2502, 2503, 2504, 2505, 2487, 175, 176, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, 1896, -2, 1898, - -2, 1900, -2, 1902, -2, -2, -2, -2, 1907, 1908, - -2, 1910, -2, -2, -2, -2, -2, -2, -2, 1887, - 1888, 1889, 1890, 1879, 1880, 1881, 1882, 1883, 1884, -2, + -2, -2, -2, -2, -2, -2, -2, 1897, -2, 1899, + -2, 1901, -2, 1903, -2, -2, -2, -2, 1908, 1909, + -2, 1911, -2, -2, -2, -2, -2, -2, -2, 1888, + 1889, 1890, 1891, 1880, 1881, 1882, 1883, 1884, 1885, -2, -2, -2, 913, 1008, 0, 913, 0, 886, 935, 938, 941, 944, 889, 0, 0, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11653,7 +11653,7 @@ var yyDef = [...]int{ 2010, 2011, 2012, 2013, 2014, 2076, 2076, 2079, 2079, 2076, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 0, 454, - 452, 453, 1925, 0, 0, 913, -2, 0, 0, 851, + 452, 453, 1926, 0, 0, 913, -2, 0, 0, 851, 0, 742, 1518, 0, 0, 413, 1580, 0, 0, 417, 0, 418, 0, 0, 420, 0, 0, 0, 442, 0, 445, 428, 429, 430, 431, 432, 424, 0, 201, 0, @@ -11662,18 +11662,18 @@ var yyDef = [...]int{ 249, 256, 0, 268, 270, 273, 229, 237, 242, 243, 250, 271, 230, 233, 234, 238, 272, 274, 231, 251, 255, 269, 253, 258, 261, 262, 267, 0, 202, 0, - 0, 0, 0, 0, 1935, 0, 0, 1968, 1969, 1970, - 1971, 1972, 1973, 1974, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2, 1929, 0, 0, - 1675, 1676, 1677, 1678, 0, 1682, 0, 1725, 0, 0, - 0, 0, 0, 0, 1989, 1993, 0, 0, 1925, 1925, - 0, 0, 1925, 1921, 0, 0, 0, 0, 0, 0, - 1925, 1858, 0, 0, 1860, 1876, 0, 0, 1862, 1863, - 0, 1866, 1867, 1925, 0, 1925, 1871, 1925, 1925, 1925, - 1852, 1853, 0, 0, 0, 1921, 1921, 1921, 1921, 0, - 0, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - 1921, 1921, 1921, 1921, 1921, 1921, 0, 0, 0, 0, + 0, 0, 0, 1935, 0, 0, 1968, 1969, 1970, 1971, + 1972, 1973, 1974, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2, 1930, 0, 0, + 1676, 1677, 1678, 1679, 0, 1683, 0, 1726, 0, 0, + 0, 0, 0, 0, 1989, 1993, 0, 0, 1926, 1926, + 0, 0, 1926, 1922, 0, 0, 0, 0, 0, 0, + 1926, 1859, 0, 0, 1861, 1877, 0, 0, 1863, 1864, + 0, 1867, 1868, 1926, 0, 1926, 1872, 1926, 1926, 1926, + 1853, 1854, 0, 0, 0, 1922, 1922, 1922, 1922, 0, + 0, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, + 1922, 1922, 1922, 1922, 1922, 1922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 906, 0, 914, 0, -2, 0, 932, 934, 936, 937, 939, 940, 942, 943, 945, 946, 891, 0, 0, 125, 0, 0, @@ -11704,7 +11704,7 @@ var yyDef = [...]int{ 335, 0, 2085, 2083, 2084, 0, 1999, 2070, 0, 2026, 0, 2027, 2028, 2029, 2040, 2041, 0, 0, 2022, 0, 2023, 2024, 2025, 2015, 2076, 0, 2017, 2018, 0, 2019, - 2020, 333, 451, 0, 0, 1926, 1102, 0, 906, 883, + 2020, 333, 451, 0, 0, 1927, 1102, 0, 906, 883, 0, 911, 0, 0, 577, 1520, 0, 0, 0, 0, 0, 414, 0, 425, 419, 0, 426, 421, 422, 0, 0, 444, 446, 447, 448, 449, 433, 434, 739, 398, @@ -11712,20 +11712,20 @@ var yyDef = [...]int{ 397, 0, 0, 403, 171, 0, 368, 369, 0, 0, 0, 215, 216, 217, 218, 219, 220, 222, 206, 767, 769, 1225, 1237, 0, 1228, 0, 225, 266, 198, 0, - 0, 0, 1930, 1931, 1932, 1933, 1934, 1939, 0, 1941, - 1943, 1945, 1947, 0, 1965, -2, -2, 1655, 1656, 1657, - 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, - 1668, 1950, 1963, 1964, 0, 0, 0, 0, 0, 0, - 1961, 1961, 1956, 0, 1687, 1729, 1741, 1741, 1696, 1514, - 1515, 1673, 0, 0, 1722, 1726, 0, 0, 0, 0, - 0, 0, 1280, 2069, 0, 162, 1960, 1920, 1819, 1820, - 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, - 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, - 1841, 1842, 1843, 1844, 1845, 1846, 1847, 0, 0, 1929, - 0, 0, 0, 0, 1922, 1923, 0, 0, 0, 1807, - 0, 0, 1813, 1814, 1815, 0, 838, 0, 1886, 1859, - 1877, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1848, 1849, 1850, 1851, 0, 0, 0, + 0, 0, 1931, 1932, 1933, 1934, 1939, 0, 1941, 1943, + 1945, 1947, 0, 1965, -2, -2, 1655, 1656, 1657, 1658, + 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1950, 1963, 1964, 0, 0, 0, 0, 0, 0, + 1961, 1961, 1956, 0, 1688, 1730, 1742, 1742, 1697, 1514, + 1515, 1674, 0, 0, 1723, 1727, 0, 0, 0, 0, + 0, 0, 1280, 2069, 0, 162, 1960, 1921, 1820, 1821, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, + 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, + 1842, 1843, 1844, 1845, 1846, 1847, 1848, 0, 0, 1930, + 0, 0, 0, 0, 1923, 1924, 0, 0, 0, 1808, + 0, 0, 1814, 1815, 1816, 0, 838, 0, 1887, 1860, + 1878, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1849, 1850, 1851, 1852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11769,15 +11769,15 @@ var yyDef = [...]int{ 210, 214, 204, 0, 0, 0, 1227, 0, 1224, 1229, 0, 224, 0, 0, 199, 200, 1364, 1373, 0, 0, 0, 1940, 1942, 1944, 1946, 1948, 0, 1951, 1961, 1961, - 1957, 0, 1952, 0, 1954, 0, 1730, 1742, 1743, 1731, - 1930, 1679, 0, 1727, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 919, 0, 0, 0, 1795, 1797, 0, - 0, 0, 1802, 0, 1804, 1805, 1806, 1808, 0, 0, - 0, 1812, 0, 1857, 1878, 1861, 1864, 0, 1868, 0, - 1870, 1872, 1873, 1874, 0, 0, 0, 913, 913, 0, - 0, 1766, 1766, 1766, 0, 0, 0, 0, 1766, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1699, 0, 1700, 1701, 1702, 0, 1704, 0, 0, 0, + 1957, 0, 1952, 0, 1954, 0, 1731, 1743, 1744, 1732, + 1931, 1680, 0, 1728, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 919, 0, 0, 0, 1796, 1798, 0, + 0, 0, 1803, 0, 1805, 1806, 1807, 1809, 0, 0, + 0, 1813, 0, 1858, 1879, 1862, 1865, 0, 1869, 0, + 1871, 1873, 1874, 1875, 0, 0, 0, 913, 913, 0, + 0, 1767, 1767, 1767, 0, 0, 0, 0, 1767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1700, 0, 1701, 1702, 1703, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 857, 0, 0, 0, 0, 0, 1371, 0, 102, 0, 107, 0, 0, 103, 108, 0, 0, 105, 0, 0, 114, 84, @@ -11804,7 +11804,7 @@ var yyDef = [...]int{ 0, 474, 475, 545, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 904, 1051, 0, 1053, 1054, 1028, - -2, 0, 986, 1033, 1925, 0, 291, 292, 0, 0, + -2, 0, 986, 1033, 1926, 0, 291, 292, 0, 0, 297, 315, 317, 289, 0, 0, 0, 316, 318, 322, 323, 382, 385, 387, 857, 76, 1304, 0, 0, 1407, 0, 1119, 1120, 1122, 1123, 0, 2096, -2, -2, -2, @@ -11820,15 +11820,15 @@ var yyDef = [...]int{ 0, 0, 922, 920, 921, 808, 0, 0, 815, 913, 1211, 0, 0, 0, 0, 0, 0, 0, 740, 172, 450, 0, 0, 0, 0, 0, 768, 0, 1226, 206, - 0, 0, 226, 0, 0, 0, 1373, 1368, 1924, 1953, - 1955, 0, 1962, 1958, 1674, 1683, 1723, 0, 0, 0, - 0, 0, 1732, 2073, 2073, 1735, 2069, 2071, 2069, 1741, - 1741, 0, 1281, 0, 1282, 919, 163, 0, 0, 0, - 0, 1803, 0, 0, 0, 839, 0, 0, 0, 0, - 0, 1762, 1764, 1766, 1766, 1773, 1767, 1774, 1775, 1766, - 1766, 1766, 1766, 1780, 1766, 1766, 1766, 1766, 1766, 1766, - 1766, 1766, 1766, 1766, 1766, 1760, 1703, 1705, 0, 1708, - 0, 1711, 1712, 0, 0, 0, 1983, 1984, 848, 881, + 0, 0, 226, 0, 0, 0, 1373, 1368, 1925, 1953, + 1955, 0, 1962, 1958, 1675, 1684, 1724, 0, 0, 0, + 0, 0, 1733, 2073, 2073, 1736, 2069, 2071, 2069, 1742, + 1742, 0, 1281, 0, 1282, 919, 163, 0, 0, 0, + 0, 1804, 0, 0, 0, 839, 0, 0, 0, 0, + 0, 1763, 1765, 1767, 1767, 1774, 1768, 1775, 1776, 1767, + 1767, 1767, 1767, 1781, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1761, 1704, 1706, 0, 1709, + 0, 1712, 1713, 0, 0, 0, 1983, 1984, 848, 881, 0, 0, 894, 895, 896, 897, 898, 0, 0, 65, 65, 1373, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 1333, 1341, 0, 356, 0, @@ -11867,12 +11867,12 @@ var yyDef = [...]int{ 0, 0, 917, 918, 0, 0, 843, 906, 1521, 1522, 1523, 1524, 0, 1582, 415, 0, 1223, 206, 211, 212, 213, 207, 205, 1230, 0, 1232, 0, 1366, 0, 0, - 1959, 1728, 1684, 0, 1686, 1688, 1733, 1734, 1736, 1737, - 1738, 1739, 1740, 1689, 0, 1283, 1796, 1798, 0, 1800, - 1801, 1809, 1810, 0, 1865, 1869, 0, 0, 1856, 0, - 0, 0, 0, 1771, 1772, 1776, 1777, 1778, 1779, 1781, - 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, - 913, 1761, 0, 0, 0, 0, 0, 0, 0, 0, + 1959, 1729, 1685, 0, 1687, 1689, 1734, 1735, 1737, 1738, + 1739, 1740, 1741, 1690, 0, 1283, 1797, 1799, 0, 1801, + 1802, 1810, 1811, 0, 1866, 1870, 0, 0, 1857, 0, + 0, 0, 0, 1772, 1773, 1777, 1778, 1779, 1780, 1782, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 913, 1762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 892, 0, 0, 0, 67, 0, 67, 1372, 1374, 113, 115, 0, 109, 110, 111, 0, 0, 1055, 1347, 1520, 1335, 0, 1327, 0, 1341, 0, @@ -11902,9 +11902,9 @@ var yyDef = [...]int{ 2078, 2081, 871, 0, 868, 187, 0, 0, 0, 882, 863, 0, 860, 0, 923, 924, 810, 843, 814, 813, 816, 1525, 208, 203, 1231, 1376, 0, 1367, 0, 1639, - 1698, 0, 1811, 0, 0, 1766, 1763, 1766, 1765, 1757, - 0, 1706, 0, 1709, 0, 1713, 1714, 0, 1716, 1717, - 1718, 0, 1720, 1721, 0, 890, 0, 63, 0, 66, + 1699, 0, 1812, 0, 0, 1767, 1764, 1767, 1766, 1758, + 0, 1707, 0, 1710, 0, 1714, 1715, 0, 1717, 1718, + 1719, 0, 1721, 1722, 0, 890, 0, 63, 0, 66, 64, 0, 0, 0, 119, 1322, 0, 1347, 1326, 0, 0, 0, 1328, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 99, 0, 0, 1094, 0, @@ -11927,8 +11927,8 @@ var yyDef = [...]int{ 1012, 1014, 1045, 1042, 0, 0, 926, 1125, 1213, 963, 971, 2492, 2494, 2491, 136, 141, 0, 0, 873, 0, 870, 0, 864, 866, 197, 867, 862, 912, 812, 157, - 189, 0, 0, 1685, 0, 0, 0, 1799, 1854, 1855, - 1769, 1770, 0, 1758, 0, 1752, 1753, 1754, 1759, 0, + 189, 0, 0, 1686, 0, 0, 0, 1800, 1855, 1856, + 1770, 1771, 0, 1759, 0, 1753, 1754, 1755, 1760, 0, 0, 0, 0, 893, 888, 68, 117, 116, 0, 0, 1323, 0, 0, 0, 1339, 1340, 0, 1342, 1343, 1344, 0, 0, 0, 0, 72, 0, 0, 0, 1303, 0, @@ -11950,9 +11950,9 @@ var yyDef = [...]int{ 0, 2090, 0, 0, 1195, 372, 374, 0, 0, 1046, 1048, 1043, 1044, 965, 0, 0, 0, 0, 131, 133, 148, 0, 872, 188, 0, 869, 159, 0, 180, 0, - 1377, 0, 1697, 0, 0, 0, 1768, 1755, 0, 0, - 0, 0, 0, 1979, 1980, 1981, 0, 1707, 1710, 1715, - 1719, 0, 1348, 1336, 1337, 1338, 1334, 0, 0, 1345, + 1377, 0, 1698, 0, 0, 0, 1769, 1756, 0, 0, + 0, 0, 0, 1979, 1980, 1981, 0, 1708, 1711, 1716, + 1720, 0, 1348, 1336, 1337, 1338, 1334, 0, 0, 1345, 1346, 0, 70, 0, 93, 0, 0, 94, 1303, 95, 1303, 0, 0, 1084, 0, 0, 1150, 1151, 1159, 1160, 0, 1162, 1163, 1183, 590, 1172, 1181, 1187, 1190, 0, @@ -11960,14 +11960,14 @@ var yyDef = [...]int{ 1412, 0, 1457, 2090, 2090, 1378, 0, 1390, 0, 1402, 0, 1396, 906, 468, 0, 1399, 1435, 1440, 1442, 1444, 0, 1448, 1446, 1421, -2, 0, 1429, 0, 0, 1595, - 1596, 0, 0, 1875, 2090, 0, 0, 0, 1634, 0, + 1596, 0, 0, 1876, 2090, 0, 0, 0, 1634, 0, 1252, 1252, 1252, 1252, 0, 563, 564, 0, 0, 1256, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 1268, 1269, 0, 0, 0, 0, 0, 0, 0, 512, 0, 0, 490, 1023, 1037, 0, 972, 0, 0, 0, 0, 0, 871, 149, 0, 158, 177, 0, 190, 191, 0, - 0, 0, 0, 1369, 0, 1642, 1643, 0, 1744, 0, - 0, 0, 1748, 1749, 1750, 1751, 118, 1341, 1341, 1303, + 0, 0, 0, 1369, 0, 1642, 1643, 0, 1745, 0, + 0, 0, 1749, 1750, 1751, 1752, 118, 1341, 1341, 1303, 72, 0, 92, 0, 96, 97, 0, 1303, 0, 1126, 0, 1161, 1189, 1191, 1251, 1351, 0, 1449, 1464, 0, 1362, 1353, 1456, 0, 0, 0, 1389, 1401, 0, 1404, @@ -11976,21 +11976,21 @@ var yyDef = [...]int{ 1635, 0, 0, 1535, 0, 1537, 0, 1541, 0, 1543, 0, 0, 1254, 1255, 1258, 1261, 1262, 1263, 1264, 1265, 1266, 0, 1270, 1271, 1272, 1273, 1276, 1277, 1278, 1279, - 514, 489, 1047, 1049, 0, 1925, 967, 968, 0, 875, + 514, 489, 1047, 1049, 0, 1926, 967, 968, 0, 875, 865, 873, 160, 164, 0, 186, 183, 0, 192, 0, - 0, 0, 0, 1365, 0, 1640, 0, 1745, 1746, 1747, + 0, 0, 0, 1365, 0, 1640, 0, 1746, 1747, 1748, 1329, 1341, 1330, 1341, 69, 71, 73, 91, 1303, 98, 0, 1128, 1129, 1143, 0, 1437, 1469, 1458, 1459, 1460, - 1403, 1436, 1424, 0, -2, 1432, 0, 0, 1927, 1937, + 1403, 1436, 1424, 0, -2, 1432, 0, 0, 1928, 1937, 1938, 1600, 1607, 0, 1611, 1613, 1614, 1621, 1623, 1624, 0, 1636, 1637, 1638, 1645, 1252, 1252, 1252, 1252, 1545, 1267, 966, 0, 0, 874, 0, 858, 151, 0, 0, 181, 182, 184, 0, 193, 0, 195, 196, 0, 0, - 1756, 1331, 1332, 100, 1130, 1413, 0, 1415, 1426, -2, + 1757, 1331, 1332, 100, 1130, 1413, 0, 1415, 1426, -2, 0, 1434, 0, 1601, 1612, 1625, 0, 1626, 0, 0, - 0, 1536, 1538, 1542, 1544, 1925, 969, 876, 1375, 0, + 0, 1536, 1538, 1542, 1544, 1926, 969, 876, 1375, 0, 165, 0, 167, 169, 170, 1572, 178, 179, 185, 194, - 0, 0, 1115, 1131, 0, 0, 1417, 1433, 1928, 1610, + 0, 0, 1115, 1131, 0, 0, 1417, 1433, 1929, 1610, 1627, 1629, 1630, 0, 0, 1628, 0, 152, 153, 0, 166, 0, 0, 1370, 1641, 1132, 1414, 1411, 1631, 1633, 1632, 970, 0, 0, 168, 1573, 154, 155, 156, 0, @@ -12485,13 +12485,13 @@ yydefault: case 2: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:933 +//line mysql_sql.y:935 { yylex.(*Lexer).AppendStmt(yyDollar[1].statementUnion()) } case 4: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:940 +//line mysql_sql.y:942 { if yyDollar[1].statementUnion() != nil { yylex.(*Lexer).AppendStmt(yyDollar[1].statementUnion()) @@ -12499,7 +12499,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:946 +//line mysql_sql.y:948 { if yyDollar[3].statementUnion() != nil { yylex.(*Lexer).AppendStmt(yyDollar[3].statementUnion()) @@ -12508,7 +12508,7 @@ yydefault: case 6: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:954 +//line mysql_sql.y:956 { yyLOCAL = tree.NewCompoundStmt(yyDollar[2].statementsUnion()) } @@ -12516,7 +12516,7 @@ yydefault: case 7: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Statement -//line mysql_sql.y:960 +//line mysql_sql.y:962 { yyLOCAL = []tree.Statement{yyDollar[1].statementUnion()} } @@ -12524,7 +12524,7 @@ yydefault: case 8: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Statement -//line mysql_sql.y:964 +//line mysql_sql.y:966 { yyLOCAL = append(yyDollar[1].statementsUnion(), yyDollar[3].statementUnion()) } @@ -12532,7 +12532,7 @@ yydefault: case 18: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:979 +//line mysql_sql.y:981 { yyLOCAL = yyDollar[1].statementUnion() } @@ -12540,7 +12540,7 @@ yydefault: case 19: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:983 +//line mysql_sql.y:985 { yyLOCAL = tree.Statement(nil) } @@ -12548,7 +12548,7 @@ yydefault: case 20: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:989 +//line mysql_sql.y:991 { yyLOCAL = yyDollar[1].statementUnion() } @@ -12556,7 +12556,7 @@ yydefault: case 22: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:994 +//line mysql_sql.y:996 { yyLOCAL = yyDollar[1].statementUnion() } @@ -12564,7 +12564,7 @@ yydefault: case 23: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:998 +//line mysql_sql.y:1000 { yyLOCAL = tree.Statement(nil) } @@ -12572,7 +12572,7 @@ yydefault: case 52: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1032 +//line mysql_sql.y:1034 { yyLOCAL = yyDollar[1].selectUnion() } @@ -12580,7 +12580,7 @@ yydefault: case 63: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1048 +//line mysql_sql.y:1050 { var timestamp = yyDollar[2].str var isS3 = false @@ -12595,7 +12595,7 @@ yydefault: case 64: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1059 +//line mysql_sql.y:1061 { var timestamp = yyDollar[2].str var isS3 = true @@ -12609,32 +12609,32 @@ yydefault: yyVAL.union = yyLOCAL case 65: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:1071 +//line mysql_sql.y:1073 { yyVAL.str = "" } case 66: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:1075 +//line mysql_sql.y:1077 { yyVAL.str = yyDollar[2].str } case 67: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:1080 +//line mysql_sql.y:1082 { yyVAL.str = "" } case 68: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:1084 +//line mysql_sql.y:1086 { yyVAL.str = yyDollar[2].str } case 69: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1090 +//line mysql_sql.y:1092 { yyLOCAL = &tree.CreateCDC{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12651,7 +12651,7 @@ yydefault: case 70: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:1105 +//line mysql_sql.y:1107 { yyLOCAL = yyDollar[1].strsUnion() } @@ -12659,7 +12659,7 @@ yydefault: case 71: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:1109 +//line mysql_sql.y:1111 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } @@ -12667,7 +12667,7 @@ yydefault: case 72: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:1113 +//line mysql_sql.y:1115 { yyLOCAL = []string{} } @@ -12675,7 +12675,7 @@ yydefault: case 73: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:1117 +//line mysql_sql.y:1119 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) @@ -12684,7 +12684,7 @@ yydefault: case 74: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1124 +//line mysql_sql.y:1126 { yyLOCAL = &tree.ShowCDC{ Option: yyDollar[3].allCDCOptionUnion(), @@ -12694,7 +12694,7 @@ yydefault: case 75: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1132 +//line mysql_sql.y:1134 { yyLOCAL = &tree.PauseCDC{ Option: yyDollar[3].allCDCOptionUnion(), @@ -12704,7 +12704,7 @@ yydefault: case 76: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1140 +//line mysql_sql.y:1142 { yyLOCAL = tree.NewDropCDC(yyDollar[4].allCDCOptionUnion(), yyDollar[3].boolValUnion(), yyDollar[5].boolValUnion()) } @@ -12712,7 +12712,7 @@ yydefault: case 77: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1145 +//line mysql_sql.y:1147 { yyLOCAL = &tree.AllOrNotCDC{ All: true, @@ -12723,7 +12723,7 @@ yydefault: case 78: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1152 +//line mysql_sql.y:1154 { yyLOCAL = yyDollar[1].allCDCOptionUnion() } @@ -12731,7 +12731,7 @@ yydefault: case 79: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1158 +//line mysql_sql.y:1160 { yyLOCAL = yyDollar[1].allCDCOptionUnion() } @@ -12739,7 +12739,7 @@ yydefault: case 80: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1163 +//line mysql_sql.y:1165 { yyLOCAL = &tree.AllOrNotCDC{ All: false, @@ -12750,7 +12750,7 @@ yydefault: case 81: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1172 +//line mysql_sql.y:1174 { yyLOCAL = &tree.AllOrNotCDC{ All: true, @@ -12761,7 +12761,7 @@ yydefault: case 82: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AllOrNotCDC -//line mysql_sql.y:1179 +//line mysql_sql.y:1181 { yyLOCAL = &tree.AllOrNotCDC{ All: false, @@ -12772,7 +12772,7 @@ yydefault: case 83: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1188 +//line mysql_sql.y:1190 { yyLOCAL = &tree.ResumeCDC{ TaskName: tree.Identifier(yyDollar[4].cstrUnion().Compare()), @@ -12782,7 +12782,7 @@ yydefault: case 84: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1196 +//line mysql_sql.y:1198 { yyLOCAL = &tree.RestartCDC{ TaskName: tree.Identifier(yyDollar[4].cstrUnion().Compare()), @@ -12792,7 +12792,7 @@ yydefault: case 85: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1204 +//line mysql_sql.y:1206 { yyLOCAL = &tree.CreateSnapShot{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12804,7 +12804,7 @@ yydefault: case 86: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1214 +//line mysql_sql.y:1216 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELCLUSTER, @@ -12818,7 +12818,7 @@ yydefault: case 87: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1224 +//line mysql_sql.y:1226 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELACCOUNT, @@ -12832,7 +12832,7 @@ yydefault: case 88: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1234 +//line mysql_sql.y:1236 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELACCOUNT, @@ -12846,7 +12846,7 @@ yydefault: case 89: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1244 +//line mysql_sql.y:1246 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELDATABASE, @@ -12860,7 +12860,7 @@ yydefault: case 90: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1254 +//line mysql_sql.y:1256 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELTABLE, @@ -12874,7 +12874,7 @@ yydefault: case 91: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1264 +//line mysql_sql.y:1266 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELTABLE, @@ -12890,7 +12890,7 @@ yydefault: case 92: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1276 +//line mysql_sql.y:1278 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELDATABASE, @@ -12906,7 +12906,7 @@ yydefault: case 93: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ObjectInfo -//line mysql_sql.y:1288 +//line mysql_sql.y:1290 { spLevel := tree.SnapshotLevelType{ Level: tree.SNAPSHOTLEVELACCOUNT, @@ -12921,7 +12921,7 @@ yydefault: case 94: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1301 +//line mysql_sql.y:1303 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12936,7 +12936,7 @@ yydefault: case 95: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1312 +//line mysql_sql.y:1314 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12951,7 +12951,7 @@ yydefault: case 96: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1323 +//line mysql_sql.y:1325 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12967,7 +12967,7 @@ yydefault: case 97: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1335 +//line mysql_sql.y:1337 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -12983,7 +12983,7 @@ yydefault: case 98: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1347 +//line mysql_sql.y:1349 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -13000,7 +13000,7 @@ yydefault: case 99: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1360 +//line mysql_sql.y:1362 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -13015,7 +13015,7 @@ yydefault: case 100: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1371 +//line mysql_sql.y:1373 { yyLOCAL = &tree.CreatePitr{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -13032,7 +13032,7 @@ yydefault: case 101: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:1386 +//line mysql_sql.y:1388 { yyLOCAL = yyDollar[1].item.(int64) } @@ -13040,7 +13040,7 @@ yydefault: case 102: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1393 +//line mysql_sql.y:1395 { var account tree.Identifier var database tree.Identifier @@ -13076,7 +13076,7 @@ yydefault: case 103: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1425 +//line mysql_sql.y:1427 { var account tree.Identifier var database tree.Identifier @@ -13117,7 +13117,7 @@ yydefault: case 104: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1462 +//line mysql_sql.y:1464 { yyLOCAL = &tree.RestoreSnapShot{ Level: tree.RESTORELEVELCLUSTER, @@ -13128,7 +13128,7 @@ yydefault: case 105: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1469 +//line mysql_sql.y:1471 { result := &tree.RestoreSnapShot{ Level: tree.RESTORELEVELACCOUNT, @@ -13146,7 +13146,7 @@ yydefault: case 106: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:1485 +//line mysql_sql.y:1487 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } @@ -13154,7 +13154,7 @@ yydefault: case 107: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:1489 +//line mysql_sql.y:1491 { yyLOCAL = tree.IdentifierList{ tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13165,7 +13165,7 @@ yydefault: case 108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:1498 +//line mysql_sql.y:1500 { yyLOCAL = tree.IdentifierList{ tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13176,7 +13176,7 @@ yydefault: case 109: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:1505 +//line mysql_sql.y:1507 { yyLOCAL = tree.IdentifierList{ tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13187,32 +13187,32 @@ yydefault: yyVAL.union = yyLOCAL case 110: yyDollar = yyS[yypt-5 : yypt+1] -//line mysql_sql.y:1515 +//line mysql_sql.y:1517 { yyVAL.str = yyDollar[4].cstrUnion().Compare() } case 111: yyDollar = yyS[yypt-5 : yypt+1] -//line mysql_sql.y:1519 +//line mysql_sql.y:1521 { yyVAL.str = strings.ToLower(yyDollar[4].str) } case 112: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:1524 +//line mysql_sql.y:1526 { yyVAL.str = "" } case 113: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:1528 +//line mysql_sql.y:1530 { yyVAL.str = yyDollar[3].cstrUnion().Compare() } case 114: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1534 +//line mysql_sql.y:1536 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELACCOUNT, @@ -13224,7 +13224,7 @@ yydefault: case 115: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1542 +//line mysql_sql.y:1544 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELDATABASE, @@ -13237,7 +13237,7 @@ yydefault: case 116: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1551 +//line mysql_sql.y:1553 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELDATABASE, @@ -13251,7 +13251,7 @@ yydefault: case 117: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1561 +//line mysql_sql.y:1563 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELTABLE, @@ -13265,7 +13265,7 @@ yydefault: case 118: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1571 +//line mysql_sql.y:1573 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELTABLE, @@ -13280,7 +13280,7 @@ yydefault: case 119: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1582 +//line mysql_sql.y:1584 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELACCOUNT, @@ -13294,7 +13294,7 @@ yydefault: case 120: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1592 +//line mysql_sql.y:1594 { yyLOCAL = &tree.RestorePitr{ Level: tree.RESTORELEVELCLUSTER, @@ -13306,7 +13306,7 @@ yydefault: case 121: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1602 +//line mysql_sql.y:1604 { var connectionId uint64 switch v := yyDollar[3].item.(type) { @@ -13329,7 +13329,7 @@ yydefault: case 122: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.KillOption -//line mysql_sql.y:1622 +//line mysql_sql.y:1624 { yyLOCAL = tree.KillOption{ Exist: false, @@ -13339,7 +13339,7 @@ yydefault: case 123: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.KillOption -//line mysql_sql.y:1628 +//line mysql_sql.y:1630 { yyLOCAL = tree.KillOption{ Exist: true, @@ -13350,7 +13350,7 @@ yydefault: case 124: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.KillOption -//line mysql_sql.y:1635 +//line mysql_sql.y:1637 { yyLOCAL = tree.KillOption{ Exist: true, @@ -13361,7 +13361,7 @@ yydefault: case 125: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StatementOption -//line mysql_sql.y:1643 +//line mysql_sql.y:1645 { yyLOCAL = tree.StatementOption{ Exist: false, @@ -13371,7 +13371,7 @@ yydefault: case 126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.StatementOption -//line mysql_sql.y:1649 +//line mysql_sql.y:1651 { yyLOCAL = tree.StatementOption{ Exist: true, @@ -13382,7 +13382,7 @@ yydefault: case 127: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1658 +//line mysql_sql.y:1660 { yyLOCAL = &tree.CallStmt{ Name: yyDollar[2].procNameUnion(), @@ -13393,7 +13393,7 @@ yydefault: case 128: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1667 +//line mysql_sql.y:1669 { yyLOCAL = &tree.LeaveStmt{ Name: tree.Identifier(yyDollar[2].cstrUnion().Compare()), @@ -13403,7 +13403,7 @@ yydefault: case 129: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1675 +//line mysql_sql.y:1677 { yyLOCAL = &tree.IterateStmt{ Name: tree.Identifier(yyDollar[2].cstrUnion().Compare()), @@ -13413,7 +13413,7 @@ yydefault: case 130: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1683 +//line mysql_sql.y:1685 { yyLOCAL = &tree.WhileStmt{ Name: "", @@ -13425,7 +13425,7 @@ yydefault: case 131: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1691 +//line mysql_sql.y:1693 { yyLOCAL = &tree.WhileStmt{ Name: tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13437,7 +13437,7 @@ yydefault: case 132: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1701 +//line mysql_sql.y:1703 { yyLOCAL = &tree.RepeatStmt{ Name: "", @@ -13449,7 +13449,7 @@ yydefault: case 133: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1709 +//line mysql_sql.y:1711 { yyLOCAL = &tree.RepeatStmt{ Name: tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13461,7 +13461,7 @@ yydefault: case 134: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1719 +//line mysql_sql.y:1721 { yyLOCAL = &tree.LoopStmt{ Name: "", @@ -13472,7 +13472,7 @@ yydefault: case 135: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1726 +//line mysql_sql.y:1728 { yyLOCAL = &tree.LoopStmt{ Name: tree.Identifier(yyDollar[1].cstrUnion().Compare()), @@ -13483,7 +13483,7 @@ yydefault: case 136: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1735 +//line mysql_sql.y:1737 { yyLOCAL = &tree.IfStmt{ Cond: yyDollar[2].exprUnion(), @@ -13496,7 +13496,7 @@ yydefault: case 137: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.ElseIfStmt -//line mysql_sql.y:1745 +//line mysql_sql.y:1747 { yyLOCAL = nil } @@ -13504,7 +13504,7 @@ yydefault: case 138: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ElseIfStmt -//line mysql_sql.y:1749 +//line mysql_sql.y:1751 { yyLOCAL = yyDollar[1].elseIfClauseListUnion() } @@ -13512,7 +13512,7 @@ yydefault: case 139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ElseIfStmt -//line mysql_sql.y:1755 +//line mysql_sql.y:1757 { yyLOCAL = []*tree.ElseIfStmt{yyDollar[1].elseIfClauseUnion()} } @@ -13520,7 +13520,7 @@ yydefault: case 140: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.ElseIfStmt -//line mysql_sql.y:1759 +//line mysql_sql.y:1761 { yyLOCAL = append(yyDollar[1].elseIfClauseListUnion(), yyDollar[2].elseIfClauseUnion()) } @@ -13528,7 +13528,7 @@ yydefault: case 141: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.ElseIfStmt -//line mysql_sql.y:1765 +//line mysql_sql.y:1767 { yyLOCAL = &tree.ElseIfStmt{ Cond: yyDollar[2].exprUnion(), @@ -13539,7 +13539,7 @@ yydefault: case 142: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1774 +//line mysql_sql.y:1776 { yyLOCAL = &tree.CaseStmt{ Expr: yyDollar[2].exprUnion(), @@ -13551,7 +13551,7 @@ yydefault: case 143: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.WhenStmt -//line mysql_sql.y:1784 +//line mysql_sql.y:1786 { yyLOCAL = []*tree.WhenStmt{yyDollar[1].whenClause2Union()} } @@ -13559,7 +13559,7 @@ yydefault: case 144: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.WhenStmt -//line mysql_sql.y:1788 +//line mysql_sql.y:1790 { yyLOCAL = append(yyDollar[1].whenClauseList2Union(), yyDollar[2].whenClause2Union()) } @@ -13567,7 +13567,7 @@ yydefault: case 145: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.WhenStmt -//line mysql_sql.y:1794 +//line mysql_sql.y:1796 { yyLOCAL = &tree.WhenStmt{ Cond: yyDollar[2].exprUnion(), @@ -13578,7 +13578,7 @@ yydefault: case 146: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.Statement -//line mysql_sql.y:1803 +//line mysql_sql.y:1805 { yyLOCAL = nil } @@ -13586,7 +13586,7 @@ yydefault: case 147: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.Statement -//line mysql_sql.y:1807 +//line mysql_sql.y:1809 { yyLOCAL = yyDollar[2].statementsUnion() } @@ -13594,7 +13594,7 @@ yydefault: case 148: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1813 +//line mysql_sql.y:1815 { ep := &tree.ExportParam{ Outfile: true, @@ -13614,7 +13614,7 @@ yydefault: case 149: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1831 +//line mysql_sql.y:1833 { yyLOCAL = &tree.Load{ Local: yyDollar[3].boolValUnion(), @@ -13630,7 +13630,7 @@ yydefault: case 150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1845 +//line mysql_sql.y:1847 { yyLOCAL = &tree.LoadExtension{ Name: tree.Identifier(yyDollar[2].str), @@ -13640,7 +13640,7 @@ yydefault: case 151: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1852 +//line mysql_sql.y:1854 { yyLOCAL = nil } @@ -13648,7 +13648,7 @@ yydefault: case 152: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1856 +//line mysql_sql.y:1858 { yyLOCAL = yyDollar[2].updateExprsUnion() } @@ -13656,7 +13656,7 @@ yydefault: case 153: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1862 +//line mysql_sql.y:1864 { yyLOCAL = tree.UpdateExprs{yyDollar[1].updateExprUnion()} } @@ -13664,7 +13664,7 @@ yydefault: case 154: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1866 +//line mysql_sql.y:1868 { yyLOCAL = append(yyDollar[1].updateExprsUnion(), yyDollar[3].updateExprUnion()) } @@ -13672,7 +13672,7 @@ yydefault: case 155: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UpdateExpr -//line mysql_sql.y:1872 +//line mysql_sql.y:1874 { yyLOCAL = &tree.UpdateExpr{ Names: []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()}, @@ -13683,7 +13683,7 @@ yydefault: case 156: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UpdateExpr -//line mysql_sql.y:1879 +//line mysql_sql.y:1881 { yyLOCAL = &tree.UpdateExpr{ Names: []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()}, @@ -13694,7 +13694,7 @@ yydefault: case 157: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1887 +//line mysql_sql.y:1889 { yyLOCAL = false } @@ -13702,7 +13702,7 @@ yydefault: case 158: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1891 +//line mysql_sql.y:1893 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -13718,7 +13718,7 @@ yydefault: case 159: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1903 +//line mysql_sql.y:1905 { yyLOCAL = true } @@ -13726,7 +13726,7 @@ yydefault: case 160: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1907 +//line mysql_sql.y:1909 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -13742,7 +13742,7 @@ yydefault: case 161: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:1921 +//line mysql_sql.y:1923 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } @@ -13750,7 +13750,7 @@ yydefault: case 162: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:1925 +//line mysql_sql.y:1927 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) @@ -13759,7 +13759,7 @@ yydefault: case 163: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:1930 +//line mysql_sql.y:1932 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) @@ -13769,7 +13769,7 @@ yydefault: case 164: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.LoadColumn -//line mysql_sql.y:1937 +//line mysql_sql.y:1939 { yyLOCAL = nil } @@ -13777,7 +13777,7 @@ yydefault: case 165: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.LoadColumn -//line mysql_sql.y:1941 +//line mysql_sql.y:1943 { yyLOCAL = nil } @@ -13785,7 +13785,7 @@ yydefault: case 166: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.LoadColumn -//line mysql_sql.y:1945 +//line mysql_sql.y:1947 { yyLOCAL = yyDollar[2].loadColumnsUnion() } @@ -13793,7 +13793,7 @@ yydefault: case 167: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.LoadColumn -//line mysql_sql.y:1951 +//line mysql_sql.y:1953 { switch yyDollar[1].loadColumnUnion().(type) { case *tree.UnresolvedName: @@ -13806,7 +13806,7 @@ yydefault: case 168: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.LoadColumn -//line mysql_sql.y:1960 +//line mysql_sql.y:1962 { switch yyDollar[3].loadColumnUnion().(type) { case *tree.UnresolvedName: @@ -13819,7 +13819,7 @@ yydefault: case 169: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.LoadColumn -//line mysql_sql.y:1971 +//line mysql_sql.y:1973 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } @@ -13827,7 +13827,7 @@ yydefault: case 170: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.LoadColumn -//line mysql_sql.y:1975 +//line mysql_sql.y:1977 { yyLOCAL = yyDollar[1].varExprUnion() } @@ -13835,7 +13835,7 @@ yydefault: case 171: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.VarExpr -//line mysql_sql.y:1981 +//line mysql_sql.y:1983 { yyLOCAL = []*tree.VarExpr{yyDollar[1].varExprUnion()} } @@ -13843,7 +13843,7 @@ yydefault: case 172: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.VarExpr -//line mysql_sql.y:1985 +//line mysql_sql.y:1987 { yyLOCAL = append(yyDollar[1].varExprsUnion(), yyDollar[3].varExprUnion()) } @@ -13851,7 +13851,7 @@ yydefault: case 173: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.VarExpr -//line mysql_sql.y:1991 +//line mysql_sql.y:1993 { yyLOCAL = yyDollar[1].varExprUnion() } @@ -13859,7 +13859,7 @@ yydefault: case 174: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.VarExpr -//line mysql_sql.y:1995 +//line mysql_sql.y:1997 { yyLOCAL = yyDollar[1].varExprUnion() } @@ -13867,7 +13867,7 @@ yydefault: case 175: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.VarExpr -//line mysql_sql.y:2001 +//line mysql_sql.y:2003 { v := strings.ToLower(yyDollar[1].str) var isGlobal bool @@ -13889,7 +13889,7 @@ yydefault: case 176: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.VarExpr -//line mysql_sql.y:2021 +//line mysql_sql.y:2023 { // vs := strings.Split($1, ".") // var r string @@ -13911,7 +13911,7 @@ yydefault: case 177: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2040 +//line mysql_sql.y:2042 { yyLOCAL = 0 } @@ -13919,7 +13919,7 @@ yydefault: case 178: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2044 +//line mysql_sql.y:2046 { yyLOCAL = yyDollar[2].item.(int64) } @@ -13927,7 +13927,7 @@ yydefault: case 179: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2048 +//line mysql_sql.y:2050 { yyLOCAL = yyDollar[2].item.(int64) } @@ -13935,7 +13935,7 @@ yydefault: case 180: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2053 +//line mysql_sql.y:2055 { yyLOCAL = nil } @@ -13943,7 +13943,7 @@ yydefault: case 181: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2057 +//line mysql_sql.y:2059 { yyLOCAL = &tree.Lines{ StartingBy: yyDollar[2].str, @@ -13956,7 +13956,7 @@ yydefault: case 182: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2066 +//line mysql_sql.y:2068 { yyLOCAL = &tree.Lines{ StartingBy: yyDollar[3].str, @@ -13968,32 +13968,32 @@ yydefault: yyVAL.union = yyLOCAL case 183: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2076 +//line mysql_sql.y:2078 { yyVAL.str = "" } case 185: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:2083 +//line mysql_sql.y:2085 { yyVAL.str = yyDollar[3].str } case 186: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2088 +//line mysql_sql.y:2090 { yyVAL.str = "\n" } case 188: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:2095 +//line mysql_sql.y:2097 { yyVAL.str = yyDollar[3].str } case 189: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2100 +//line mysql_sql.y:2102 { yyLOCAL = nil } @@ -14001,7 +14001,7 @@ yydefault: case 190: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2104 +//line mysql_sql.y:2106 { res := &tree.Fields{ Terminated: &tree.Terminated{ @@ -14031,7 +14031,7 @@ yydefault: case 191: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Fields -//line mysql_sql.y:2132 +//line mysql_sql.y:2134 { yyLOCAL = []*tree.Fields{yyDollar[1].fieldsUnion()} } @@ -14039,7 +14039,7 @@ yydefault: case 192: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.Fields -//line mysql_sql.y:2136 +//line mysql_sql.y:2138 { yyLOCAL = append(yyDollar[1].fieldsListUnion(), yyDollar[2].fieldsUnion()) } @@ -14047,7 +14047,7 @@ yydefault: case 193: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2142 +//line mysql_sql.y:2144 { yyLOCAL = &tree.Fields{ Terminated: &tree.Terminated{ @@ -14059,7 +14059,7 @@ yydefault: case 194: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2150 +//line mysql_sql.y:2152 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -14083,7 +14083,7 @@ yydefault: case 195: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2170 +//line mysql_sql.y:2172 { str := yyDollar[3].str if str != "\\" && len(str) > 1 { @@ -14106,7 +14106,7 @@ yydefault: case 196: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2189 +//line mysql_sql.y:2191 { str := yyDollar[3].str if str != "\\" && len(str) > 1 { @@ -14129,7 +14129,7 @@ yydefault: case 198: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:2214 +//line mysql_sql.y:2216 { yyLOCAL = &tree.DuplicateKeyError{} } @@ -14137,7 +14137,7 @@ yydefault: case 199: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:2218 +//line mysql_sql.y:2220 { yyLOCAL = &tree.DuplicateKeyIgnore{} } @@ -14145,7 +14145,7 @@ yydefault: case 200: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:2222 +//line mysql_sql.y:2224 { yyLOCAL = &tree.DuplicateKeyReplace{} } @@ -14153,7 +14153,7 @@ yydefault: case 201: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2227 +//line mysql_sql.y:2229 { yyLOCAL = false } @@ -14161,7 +14161,7 @@ yydefault: case 202: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2231 +//line mysql_sql.y:2233 { yyLOCAL = true } @@ -14169,7 +14169,7 @@ yydefault: case 203: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2237 +//line mysql_sql.y:2239 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypePrivilege, @@ -14186,7 +14186,7 @@ yydefault: case 204: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2250 +//line mysql_sql.y:2252 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypeRole, @@ -14201,7 +14201,7 @@ yydefault: case 205: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2261 +//line mysql_sql.y:2263 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypeProxy, @@ -14217,7 +14217,7 @@ yydefault: case 206: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2274 +//line mysql_sql.y:2276 { yyLOCAL = false } @@ -14225,7 +14225,7 @@ yydefault: case 207: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2278 +//line mysql_sql.y:2280 { yyLOCAL = true } @@ -14233,7 +14233,7 @@ yydefault: case 208: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2288 +//line mysql_sql.y:2290 { yyLOCAL = &tree.Revoke{ Typ: tree.RevokeTypePrivilege, @@ -14250,7 +14250,7 @@ yydefault: case 209: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2301 +//line mysql_sql.y:2303 { yyLOCAL = &tree.Revoke{ Typ: tree.RevokeTypeRole, @@ -14265,7 +14265,7 @@ yydefault: case 210: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:2314 +//line mysql_sql.y:2316 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_STAR, @@ -14275,7 +14275,7 @@ yydefault: case 211: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:2320 +//line mysql_sql.y:2322 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_STAR_STAR, @@ -14285,7 +14285,7 @@ yydefault: case 212: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:2326 +//line mysql_sql.y:2328 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) yyLOCAL = &tree.PrivilegeLevel{ @@ -14297,7 +14297,7 @@ yydefault: case 213: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:2334 +//line mysql_sql.y:2336 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -14311,7 +14311,7 @@ yydefault: case 214: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:2344 +//line mysql_sql.y:2346 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) yyLOCAL = &tree.PrivilegeLevel{ @@ -14323,7 +14323,7 @@ yydefault: case 215: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2354 +//line mysql_sql.y:2356 { yyLOCAL = tree.OBJECT_TYPE_TABLE } @@ -14331,7 +14331,7 @@ yydefault: case 216: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2358 +//line mysql_sql.y:2360 { yyLOCAL = tree.OBJECT_TYPE_DATABASE } @@ -14339,7 +14339,7 @@ yydefault: case 217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2362 +//line mysql_sql.y:2364 { yyLOCAL = tree.OBJECT_TYPE_FUNCTION } @@ -14347,7 +14347,7 @@ yydefault: case 218: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2366 +//line mysql_sql.y:2368 { yyLOCAL = tree.OBJECT_TYPE_PROCEDURE } @@ -14355,7 +14355,7 @@ yydefault: case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2370 +//line mysql_sql.y:2372 { yyLOCAL = tree.OBJECT_TYPE_VIEW } @@ -14363,7 +14363,7 @@ yydefault: case 220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:2374 +//line mysql_sql.y:2376 { yyLOCAL = tree.OBJECT_TYPE_ACCOUNT } @@ -14371,7 +14371,7 @@ yydefault: case 221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Privilege -//line mysql_sql.y:2380 +//line mysql_sql.y:2382 { yyLOCAL = []*tree.Privilege{yyDollar[1].privilegeUnion()} } @@ -14379,7 +14379,7 @@ yydefault: case 222: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Privilege -//line mysql_sql.y:2384 +//line mysql_sql.y:2386 { yyLOCAL = append(yyDollar[1].privilegesUnion(), yyDollar[3].privilegeUnion()) } @@ -14387,7 +14387,7 @@ yydefault: case 223: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Privilege -//line mysql_sql.y:2390 +//line mysql_sql.y:2392 { yyLOCAL = &tree.Privilege{ Type: yyDollar[1].privilegeTypeUnion(), @@ -14398,7 +14398,7 @@ yydefault: case 224: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Privilege -//line mysql_sql.y:2397 +//line mysql_sql.y:2399 { yyLOCAL = &tree.Privilege{ Type: yyDollar[1].privilegeTypeUnion(), @@ -14409,7 +14409,7 @@ yydefault: case 225: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.UnresolvedName -//line mysql_sql.y:2406 +//line mysql_sql.y:2408 { yyLOCAL = []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()} } @@ -14417,7 +14417,7 @@ yydefault: case 226: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.UnresolvedName -//line mysql_sql.y:2410 +//line mysql_sql.y:2412 { yyLOCAL = append(yyDollar[1].unresolveNamesUnion(), yyDollar[3].unresolvedNameUnion()) } @@ -14425,7 +14425,7 @@ yydefault: case 227: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2416 +//line mysql_sql.y:2418 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALL } @@ -14433,7 +14433,7 @@ yydefault: case 228: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2420 +//line mysql_sql.y:2422 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ACCOUNT } @@ -14441,7 +14441,7 @@ yydefault: case 229: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2424 +//line mysql_sql.y:2426 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_ACCOUNT } @@ -14449,7 +14449,7 @@ yydefault: case 230: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2428 +//line mysql_sql.y:2430 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_ACCOUNT } @@ -14457,7 +14457,7 @@ yydefault: case 231: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2432 +//line mysql_sql.y:2434 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_UPGRADE_ACCOUNT } @@ -14465,7 +14465,7 @@ yydefault: case 232: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2436 +//line mysql_sql.y:2438 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALL } @@ -14473,7 +14473,7 @@ yydefault: case 233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2440 +//line mysql_sql.y:2442 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_TABLE } @@ -14481,7 +14481,7 @@ yydefault: case 234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2444 +//line mysql_sql.y:2446 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_VIEW } @@ -14489,7 +14489,7 @@ yydefault: case 235: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2448 +//line mysql_sql.y:2450 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE } @@ -14497,7 +14497,7 @@ yydefault: case 236: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2452 +//line mysql_sql.y:2454 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_USER } @@ -14505,7 +14505,7 @@ yydefault: case 237: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2456 +//line mysql_sql.y:2458 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_USER } @@ -14513,7 +14513,7 @@ yydefault: case 238: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2460 +//line mysql_sql.y:2462 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_USER } @@ -14521,7 +14521,7 @@ yydefault: case 239: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2464 +//line mysql_sql.y:2466 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TABLESPACE } @@ -14529,7 +14529,7 @@ yydefault: case 240: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2468 +//line mysql_sql.y:2470 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_TRIGGER } @@ -14537,7 +14537,7 @@ yydefault: case 241: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2472 +//line mysql_sql.y:2474 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DELETE } @@ -14545,7 +14545,7 @@ yydefault: case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2476 +//line mysql_sql.y:2478 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_TABLE } @@ -14553,7 +14553,7 @@ yydefault: case 243: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2480 +//line mysql_sql.y:2482 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_VIEW } @@ -14561,7 +14561,7 @@ yydefault: case 244: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2484 +//line mysql_sql.y:2486 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EXECUTE } @@ -14569,7 +14569,7 @@ yydefault: case 245: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2488 +//line mysql_sql.y:2490 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INDEX } @@ -14577,7 +14577,7 @@ yydefault: case 246: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2492 +//line mysql_sql.y:2494 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INSERT } @@ -14585,7 +14585,7 @@ yydefault: case 247: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2496 +//line mysql_sql.y:2498 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SELECT } @@ -14593,7 +14593,7 @@ yydefault: case 248: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2500 +//line mysql_sql.y:2502 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SUPER } @@ -14601,7 +14601,7 @@ yydefault: case 249: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2504 +//line mysql_sql.y:2506 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_DATABASE } @@ -14609,7 +14609,7 @@ yydefault: case 250: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2508 +//line mysql_sql.y:2510 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_DATABASE } @@ -14617,7 +14617,7 @@ yydefault: case 251: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2512 +//line mysql_sql.y:2514 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_DATABASES } @@ -14625,7 +14625,7 @@ yydefault: case 252: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2516 +//line mysql_sql.y:2518 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CONNECT } @@ -14633,7 +14633,7 @@ yydefault: case 253: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2520 +//line mysql_sql.y:2522 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_MANAGE_GRANTS } @@ -14641,7 +14641,7 @@ yydefault: case 254: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2524 +//line mysql_sql.y:2526 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_OWNERSHIP } @@ -14649,7 +14649,7 @@ yydefault: case 255: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2528 +//line mysql_sql.y:2530 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_TABLES } @@ -14657,7 +14657,7 @@ yydefault: case 256: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2532 +//line mysql_sql.y:2534 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TABLE } @@ -14665,7 +14665,7 @@ yydefault: case 257: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2536 +//line mysql_sql.y:2538 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_UPDATE } @@ -14673,7 +14673,7 @@ yydefault: case 258: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2540 +//line mysql_sql.y:2542 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_GRANT_OPTION } @@ -14681,7 +14681,7 @@ yydefault: case 259: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2544 +//line mysql_sql.y:2546 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REFERENCES } @@ -14689,7 +14689,7 @@ yydefault: case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2548 +//line mysql_sql.y:2550 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REFERENCE } @@ -14697,7 +14697,7 @@ yydefault: case 261: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2552 +//line mysql_sql.y:2554 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_SLAVE } @@ -14705,7 +14705,7 @@ yydefault: case 262: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2556 +//line mysql_sql.y:2558 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_CLIENT } @@ -14713,7 +14713,7 @@ yydefault: case 263: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2560 +//line mysql_sql.y:2562 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_USAGE } @@ -14721,7 +14721,7 @@ yydefault: case 264: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2564 +//line mysql_sql.y:2566 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_RELOAD } @@ -14729,7 +14729,7 @@ yydefault: case 265: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2568 +//line mysql_sql.y:2570 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_FILE } @@ -14737,7 +14737,7 @@ yydefault: case 266: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2572 +//line mysql_sql.y:2574 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TEMPORARY_TABLES } @@ -14745,7 +14745,7 @@ yydefault: case 267: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2576 +//line mysql_sql.y:2578 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_LOCK_TABLES } @@ -14753,7 +14753,7 @@ yydefault: case 268: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2580 +//line mysql_sql.y:2582 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_VIEW } @@ -14761,7 +14761,7 @@ yydefault: case 269: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2584 +//line mysql_sql.y:2586 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_VIEW } @@ -14769,7 +14769,7 @@ yydefault: case 270: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2588 +//line mysql_sql.y:2590 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROLE } @@ -14777,7 +14777,7 @@ yydefault: case 271: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2592 +//line mysql_sql.y:2594 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_ROLE } @@ -14785,7 +14785,7 @@ yydefault: case 272: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2596 +//line mysql_sql.y:2598 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_ROLE } @@ -14793,7 +14793,7 @@ yydefault: case 273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2600 +//line mysql_sql.y:2602 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROUTINE } @@ -14801,7 +14801,7 @@ yydefault: case 274: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2604 +//line mysql_sql.y:2606 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_ROUTINE } @@ -14809,7 +14809,7 @@ yydefault: case 275: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2608 +//line mysql_sql.y:2610 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EVENT } @@ -14817,7 +14817,7 @@ yydefault: case 276: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2612 +//line mysql_sql.y:2614 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHUTDOWN } @@ -14825,7 +14825,7 @@ yydefault: case 277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:2616 +//line mysql_sql.y:2618 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_TRUNCATE } @@ -14833,7 +14833,7 @@ yydefault: case 285: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2631 +//line mysql_sql.y:2633 { yyLOCAL = &tree.SetLogserviceSettings{ Name: yyDollar[4].str, @@ -14844,7 +14844,7 @@ yydefault: case 286: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2640 +//line mysql_sql.y:2642 { yyLOCAL = &tree.SetTransaction{ Global: false, @@ -14855,7 +14855,7 @@ yydefault: case 287: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2647 +//line mysql_sql.y:2649 { yyLOCAL = &tree.SetTransaction{ Global: true, @@ -14866,7 +14866,7 @@ yydefault: case 288: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2654 +//line mysql_sql.y:2656 { yyLOCAL = &tree.SetTransaction{ Global: false, @@ -14877,7 +14877,7 @@ yydefault: case 289: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2663 +//line mysql_sql.y:2665 { var connID uint32 switch v := yyDollar[5].item.(type) { @@ -14897,7 +14897,7 @@ yydefault: case 290: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.TransactionCharacteristic -//line mysql_sql.y:2681 +//line mysql_sql.y:2683 { yyLOCAL = []*tree.TransactionCharacteristic{yyDollar[1].transactionCharacteristicUnion()} } @@ -14905,7 +14905,7 @@ yydefault: case 291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.TransactionCharacteristic -//line mysql_sql.y:2685 +//line mysql_sql.y:2687 { yyLOCAL = append(yyDollar[1].transactionCharacteristicListUnion(), yyDollar[3].transactionCharacteristicUnion()) } @@ -14913,7 +14913,7 @@ yydefault: case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.TransactionCharacteristic -//line mysql_sql.y:2691 +//line mysql_sql.y:2693 { yyLOCAL = &tree.TransactionCharacteristic{ IsLevel: true, @@ -14924,7 +14924,7 @@ yydefault: case 293: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.TransactionCharacteristic -//line mysql_sql.y:2698 +//line mysql_sql.y:2700 { yyLOCAL = &tree.TransactionCharacteristic{ Access: yyDollar[1].accessModeUnion(), @@ -14934,7 +14934,7 @@ yydefault: case 294: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IsolationLevelType -//line mysql_sql.y:2706 +//line mysql_sql.y:2708 { yyLOCAL = tree.ISOLATION_LEVEL_REPEATABLE_READ } @@ -14942,7 +14942,7 @@ yydefault: case 295: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IsolationLevelType -//line mysql_sql.y:2710 +//line mysql_sql.y:2712 { yyLOCAL = tree.ISOLATION_LEVEL_READ_COMMITTED } @@ -14950,7 +14950,7 @@ yydefault: case 296: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IsolationLevelType -//line mysql_sql.y:2714 +//line mysql_sql.y:2716 { yyLOCAL = tree.ISOLATION_LEVEL_READ_UNCOMMITTED } @@ -14958,7 +14958,7 @@ yydefault: case 297: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IsolationLevelType -//line mysql_sql.y:2718 +//line mysql_sql.y:2720 { yyLOCAL = tree.ISOLATION_LEVEL_SERIALIZABLE } @@ -14966,7 +14966,7 @@ yydefault: case 298: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccessModeType -//line mysql_sql.y:2724 +//line mysql_sql.y:2726 { yyLOCAL = tree.ACCESS_MODE_READ_WRITE } @@ -14974,7 +14974,7 @@ yydefault: case 299: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccessModeType -//line mysql_sql.y:2728 +//line mysql_sql.y:2730 { yyLOCAL = tree.ACCESS_MODE_READ_ONLY } @@ -14982,7 +14982,7 @@ yydefault: case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2734 +//line mysql_sql.y:2736 { yyLOCAL = &tree.SetRole{ SecondaryRole: false, @@ -14993,7 +14993,7 @@ yydefault: case 301: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2741 +//line mysql_sql.y:2743 { yyLOCAL = &tree.SetRole{ SecondaryRole: true, @@ -15004,7 +15004,7 @@ yydefault: case 302: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2748 +//line mysql_sql.y:2750 { yyLOCAL = &tree.SetRole{ SecondaryRole: true, @@ -15015,7 +15015,7 @@ yydefault: case 303: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2757 +//line mysql_sql.y:2759 { dr := yyDollar[4].setDefaultRoleUnion() dr.Users = yyDollar[6].usersUnion() @@ -15025,7 +15025,7 @@ yydefault: case 304: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:2787 +//line mysql_sql.y:2789 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_NONE, Roles: nil} } @@ -15033,7 +15033,7 @@ yydefault: case 305: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:2791 +//line mysql_sql.y:2793 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_ALL, Roles: nil} } @@ -15041,7 +15041,7 @@ yydefault: case 306: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:2795 +//line mysql_sql.y:2797 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_NORMAL, Roles: yyDollar[1].rolesUnion()} } @@ -15049,7 +15049,7 @@ yydefault: case 307: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2801 +//line mysql_sql.y:2803 { yyLOCAL = &tree.SetVar{Assignments: yyDollar[2].varAssignmentExprsUnion()} } @@ -15057,7 +15057,7 @@ yydefault: case 308: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2807 +//line mysql_sql.y:2809 { yyLOCAL = &tree.SetPassword{Password: yyDollar[4].str} } @@ -15065,21 +15065,21 @@ yydefault: case 309: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2811 +//line mysql_sql.y:2813 { yyLOCAL = &tree.SetPassword{User: yyDollar[4].userUnion(), Password: yyDollar[6].str} } yyVAL.union = yyLOCAL case 311: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:2818 +//line mysql_sql.y:2820 { yyVAL.str = yyDollar[3].str } case 312: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.VarAssignmentExpr -//line mysql_sql.y:2824 +//line mysql_sql.y:2826 { yyLOCAL = []*tree.VarAssignmentExpr{yyDollar[1].varAssignmentExprUnion()} } @@ -15087,7 +15087,7 @@ yydefault: case 313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.VarAssignmentExpr -//line mysql_sql.y:2828 +//line mysql_sql.y:2830 { yyLOCAL = append(yyDollar[1].varAssignmentExprsUnion(), yyDollar[3].varAssignmentExprUnion()) } @@ -15095,7 +15095,7 @@ yydefault: case 314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2834 +//line mysql_sql.y:2836 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -15107,7 +15107,7 @@ yydefault: case 315: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2842 +//line mysql_sql.y:2844 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -15120,7 +15120,7 @@ yydefault: case 316: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2851 +//line mysql_sql.y:2853 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -15133,7 +15133,7 @@ yydefault: case 317: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2860 +//line mysql_sql.y:2862 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -15145,7 +15145,7 @@ yydefault: case 318: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2868 +//line mysql_sql.y:2870 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -15157,7 +15157,7 @@ yydefault: case 319: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2876 +//line mysql_sql.y:2878 { vs := strings.Split(yyDollar[1].str, ".") var isGlobal bool @@ -15184,7 +15184,7 @@ yydefault: case 320: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2899 +//line mysql_sql.y:2901 { v := strings.ToLower(yyDollar[1].str) var isGlobal bool @@ -15207,7 +15207,7 @@ yydefault: case 321: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2918 +//line mysql_sql.y:2920 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15218,7 +15218,7 @@ yydefault: case 322: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2925 +//line mysql_sql.y:2927 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15229,7 +15229,7 @@ yydefault: case 323: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2932 +//line mysql_sql.y:2934 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15241,7 +15241,7 @@ yydefault: case 324: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2940 +//line mysql_sql.y:2942 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15252,7 +15252,7 @@ yydefault: case 325: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2947 +//line mysql_sql.y:2949 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15263,7 +15263,7 @@ yydefault: case 326: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:2954 +//line mysql_sql.y:2956 { yyLOCAL = &tree.VarAssignmentExpr{ Name: strings.ToLower(yyDollar[1].str), @@ -15274,7 +15274,7 @@ yydefault: case 327: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:2963 +//line mysql_sql.y:2965 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } @@ -15282,7 +15282,7 @@ yydefault: case 328: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:2967 +//line mysql_sql.y:2969 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } @@ -15290,39 +15290,39 @@ yydefault: case 329: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:2971 +//line mysql_sql.y:2973 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:2977 +//line mysql_sql.y:2979 { yyVAL.str = string(yyDollar[1].str) } case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:2981 +//line mysql_sql.y:2983 { yyVAL.str = yyDollar[1].str } case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:2987 +//line mysql_sql.y:2989 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } case 333: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:2991 +//line mysql_sql.y:2993 { yyVAL.str = yyDollar[1].cstrUnion().Compare() + "." + yyDollar[3].cstrUnion().Compare() } case 334: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2997 +//line mysql_sql.y:2999 { yyLOCAL = []string{yyDollar[1].str} } @@ -15330,7 +15330,7 @@ yydefault: case 335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:3001 +//line mysql_sql.y:3003 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } @@ -15338,7 +15338,7 @@ yydefault: case 342: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3015 +//line mysql_sql.y:3017 { yyLOCAL = &tree.SavePoint{Name: tree.Identifier(yyDollar[2].cstrUnion().Compare())} } @@ -15346,7 +15346,7 @@ yydefault: case 343: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3021 +//line mysql_sql.y:3023 { yyLOCAL = &tree.ReleaseSavePoint{Name: tree.Identifier(yyDollar[3].cstrUnion().Compare())} } @@ -15354,7 +15354,7 @@ yydefault: case 344: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3027 +//line mysql_sql.y:3029 { yyLOCAL = &tree.RollbackToSavePoint{Name: tree.Identifier(yyDollar[3].cstrUnion().Compare())} } @@ -15362,7 +15362,7 @@ yydefault: case 345: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3032 +//line mysql_sql.y:3034 { yyLOCAL = &tree.RollbackToSavePoint{Name: tree.Identifier(yyDollar[4].cstrUnion().Compare())} } @@ -15370,7 +15370,7 @@ yydefault: case 346: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3037 +//line mysql_sql.y:3039 { yyLOCAL = &tree.RollbackToSavePoint{Name: tree.Identifier(yyDollar[5].cstrUnion().Compare())} } @@ -15378,7 +15378,7 @@ yydefault: case 347: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3042 +//line mysql_sql.y:3044 { yyLOCAL = &tree.RollbackToSavePoint{Name: tree.Identifier(yyDollar[4].cstrUnion().Compare())} } @@ -15386,7 +15386,7 @@ yydefault: case 348: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3048 +//line mysql_sql.y:3050 { yyLOCAL = &tree.RollbackTransaction{Type: yyDollar[2].completionTypeUnion()} } @@ -15394,7 +15394,7 @@ yydefault: case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3054 +//line mysql_sql.y:3056 { yyLOCAL = &tree.CommitTransaction{Type: yyDollar[2].completionTypeUnion()} } @@ -15402,7 +15402,7 @@ yydefault: case 350: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3059 +//line mysql_sql.y:3061 { yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } @@ -15410,7 +15410,7 @@ yydefault: case 351: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3063 +//line mysql_sql.y:3065 { yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } @@ -15418,7 +15418,7 @@ yydefault: case 352: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3067 +//line mysql_sql.y:3069 { yyLOCAL = tree.COMPLETION_TYPE_CHAIN } @@ -15426,7 +15426,7 @@ yydefault: case 353: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3071 +//line mysql_sql.y:3073 { yyLOCAL = tree.COMPLETION_TYPE_CHAIN } @@ -15434,7 +15434,7 @@ yydefault: case 354: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3075 +//line mysql_sql.y:3077 { yyLOCAL = tree.COMPLETION_TYPE_RELEASE } @@ -15442,7 +15442,7 @@ yydefault: case 355: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3079 +//line mysql_sql.y:3081 { yyLOCAL = tree.COMPLETION_TYPE_RELEASE } @@ -15450,7 +15450,7 @@ yydefault: case 356: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3083 +//line mysql_sql.y:3085 { yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } @@ -15458,7 +15458,7 @@ yydefault: case 357: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3087 +//line mysql_sql.y:3089 { yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } @@ -15466,7 +15466,7 @@ yydefault: case 358: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.CompletionType -//line mysql_sql.y:3091 +//line mysql_sql.y:3093 { yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } @@ -15474,7 +15474,7 @@ yydefault: case 359: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3097 +//line mysql_sql.y:3099 { yyLOCAL = &tree.BeginTransaction{} } @@ -15482,7 +15482,7 @@ yydefault: case 360: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3101 +//line mysql_sql.y:3103 { yyLOCAL = &tree.BeginTransaction{} } @@ -15490,7 +15490,7 @@ yydefault: case 361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3105 +//line mysql_sql.y:3107 { yyLOCAL = &tree.BeginTransaction{} } @@ -15498,7 +15498,7 @@ yydefault: case 362: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3109 +//line mysql_sql.y:3111 { m := tree.MakeTransactionModes(tree.READ_WRITE_MODE_READ_WRITE) yyLOCAL = &tree.BeginTransaction{Modes: m} @@ -15507,7 +15507,7 @@ yydefault: case 363: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3114 +//line mysql_sql.y:3116 { m := tree.MakeTransactionModes(tree.READ_WRITE_MODE_READ_ONLY) yyLOCAL = &tree.BeginTransaction{Modes: m} @@ -15516,7 +15516,7 @@ yydefault: case 364: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3119 +//line mysql_sql.y:3121 { yyLOCAL = &tree.BeginTransaction{} } @@ -15524,7 +15524,7 @@ yydefault: case 365: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3125 +//line mysql_sql.y:3127 { name := yyDollar[2].cstrUnion() secondaryRole := false @@ -15541,7 +15541,7 @@ yydefault: case 366: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3138 +//line mysql_sql.y:3140 { name := yylex.(*Lexer).GetDbOrTblNameCStr("") secondaryRole := false @@ -15558,7 +15558,7 @@ yydefault: case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3151 +//line mysql_sql.y:3153 { name := yylex.(*Lexer).GetDbOrTblNameCStr("") secondaryRole := false @@ -15575,7 +15575,7 @@ yydefault: case 368: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3164 +//line mysql_sql.y:3166 { name := yylex.(*Lexer).GetDbOrTblNameCStr("") secondaryRole := true @@ -15592,7 +15592,7 @@ yydefault: case 369: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3177 +//line mysql_sql.y:3179 { name := yylex.(*Lexer).GetDbOrTblNameCStr("") secondaryRole := true @@ -15609,7 +15609,7 @@ yydefault: case 371: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3193 +//line mysql_sql.y:3195 { yyDollar[2].statementUnion().(*tree.Update).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() @@ -15618,7 +15618,7 @@ yydefault: case 372: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3200 +//line mysql_sql.y:3202 { // Single-table syntax yyLOCAL = &tree.Update{ @@ -15633,7 +15633,7 @@ yydefault: case 373: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3211 +//line mysql_sql.y:3213 { // Multiple-table syntax yyLOCAL = &tree.Update{ @@ -15646,7 +15646,7 @@ yydefault: case 374: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3220 +//line mysql_sql.y:3222 { // PostgreSQL-style UPDATE target SET ... FROM source_tables WHERE ... // The target table is kept in Tables; FROM-clause sources are stored @@ -15663,7 +15663,7 @@ yydefault: case 375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:3235 +//line mysql_sql.y:3237 { yyLOCAL = tree.UpdateExprs{yyDollar[1].updateExprUnion()} } @@ -15671,7 +15671,7 @@ yydefault: case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:3239 +//line mysql_sql.y:3241 { yyLOCAL = append(yyDollar[1].updateExprsUnion(), yyDollar[3].updateExprUnion()) } @@ -15679,7 +15679,7 @@ yydefault: case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UpdateExpr -//line mysql_sql.y:3245 +//line mysql_sql.y:3247 { yyLOCAL = &tree.UpdateExpr{Names: []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()}, Expr: yyDollar[3].exprUnion()} } @@ -15687,7 +15687,7 @@ yydefault: case 380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3255 +//line mysql_sql.y:3257 { yyLOCAL = &tree.LockTableStmt{TableLocks: yyDollar[3].tableLocksUnion()} } @@ -15695,7 +15695,7 @@ yydefault: case 381: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableLock -//line mysql_sql.y:3261 +//line mysql_sql.y:3263 { yyLOCAL = []tree.TableLock{yyDollar[1].tableLockUnion()} } @@ -15703,7 +15703,7 @@ yydefault: case 382: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableLock -//line mysql_sql.y:3265 +//line mysql_sql.y:3267 { yyLOCAL = append(yyDollar[1].tableLocksUnion(), yyDollar[3].tableLockUnion()) } @@ -15711,7 +15711,7 @@ yydefault: case 383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableLock -//line mysql_sql.y:3271 +//line mysql_sql.y:3273 { yyLOCAL = tree.TableLock{Table: *yyDollar[1].tableNameUnion(), LockType: yyDollar[2].tableLockTypeUnion()} } @@ -15719,7 +15719,7 @@ yydefault: case 384: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableLockType -//line mysql_sql.y:3277 +//line mysql_sql.y:3279 { yyLOCAL = tree.TableLockRead } @@ -15727,7 +15727,7 @@ yydefault: case 385: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableLockType -//line mysql_sql.y:3281 +//line mysql_sql.y:3283 { yyLOCAL = tree.TableLockReadLocal } @@ -15735,7 +15735,7 @@ yydefault: case 386: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableLockType -//line mysql_sql.y:3285 +//line mysql_sql.y:3287 { yyLOCAL = tree.TableLockWrite } @@ -15743,7 +15743,7 @@ yydefault: case 387: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableLockType -//line mysql_sql.y:3289 +//line mysql_sql.y:3291 { yyLOCAL = tree.TableLockLowPriorityWrite } @@ -15751,7 +15751,7 @@ yydefault: case 388: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3295 +//line mysql_sql.y:3297 { yyLOCAL = &tree.UnLockTableStmt{} } @@ -15759,7 +15759,7 @@ yydefault: case 397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3309 +//line mysql_sql.y:3311 { yyLOCAL = yyDollar[1].selectUnion() } @@ -15767,7 +15767,7 @@ yydefault: case 398: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3315 +//line mysql_sql.y:3317 { yyLOCAL = tree.NewPrepareStmt(tree.Identifier(yyDollar[2].str), yyDollar[4].statementUnion()) } @@ -15775,7 +15775,7 @@ yydefault: case 399: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3319 +//line mysql_sql.y:3321 { yyLOCAL = tree.NewPrepareString(tree.Identifier(yyDollar[2].str), yyDollar[4].str) } @@ -15783,7 +15783,7 @@ yydefault: case 400: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3323 +//line mysql_sql.y:3325 { yyLOCAL = tree.NewPrepareVar(tree.Identifier(yyDollar[2].str), yyDollar[4].varExprUnion()) } @@ -15791,7 +15791,7 @@ yydefault: case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3329 +//line mysql_sql.y:3331 { yyLOCAL = &tree.ExecuteSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -15801,7 +15801,7 @@ yydefault: case 402: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3335 +//line mysql_sql.y:3337 { yyLOCAL = tree.NewExecute(tree.Identifier(yyDollar[2].str)) } @@ -15809,7 +15809,7 @@ yydefault: case 403: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3339 +//line mysql_sql.y:3341 { yyLOCAL = tree.NewExecuteWithVariables(tree.Identifier(yyDollar[2].str), yyDollar[4].varExprsUnion()) } @@ -15817,7 +15817,7 @@ yydefault: case 404: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3345 +//line mysql_sql.y:3347 { yyLOCAL = tree.NewDeallocate(tree.Identifier(yyDollar[3].str), false) } @@ -15825,7 +15825,7 @@ yydefault: case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3351 +//line mysql_sql.y:3353 { yyLOCAL = tree.NewReset(tree.Identifier(yyDollar[3].str)) } @@ -15833,7 +15833,7 @@ yydefault: case 411: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3362 +//line mysql_sql.y:3364 { yyLOCAL = yyDollar[1].selectUnion() } @@ -15841,7 +15841,7 @@ yydefault: case 412: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3368 +//line mysql_sql.y:3370 { yyLOCAL = &tree.ShowColumns{Table: yyDollar[2].unresolvedObjectNameUnion()} } @@ -15849,7 +15849,7 @@ yydefault: case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3372 +//line mysql_sql.y:3374 { yyLOCAL = &tree.ShowColumns{Table: yyDollar[2].unresolvedObjectNameUnion(), ColName: yyDollar[3].unresolvedNameUnion()} } @@ -15857,7 +15857,7 @@ yydefault: case 414: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3376 +//line mysql_sql.y:3378 { yyLOCAL = tree.NewExplainFor("", uint64(yyDollar[4].item.(int64))) } @@ -15865,7 +15865,7 @@ yydefault: case 415: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3380 +//line mysql_sql.y:3382 { yyLOCAL = tree.NewExplainFor(yyDollar[4].str, uint64(yyDollar[7].item.(int64))) } @@ -15873,7 +15873,7 @@ yydefault: case 416: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3384 +//line mysql_sql.y:3386 { yyLOCAL = tree.NewExplainStmt(yyDollar[2].statementUnion(), "text") } @@ -15881,7 +15881,7 @@ yydefault: case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3388 +//line mysql_sql.y:3390 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.VerboseOption, "NULL"), @@ -15892,7 +15892,7 @@ yydefault: case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3395 +//line mysql_sql.y:3397 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.AnalyzeOption, "NULL"), @@ -15903,7 +15903,7 @@ yydefault: case 419: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3402 +//line mysql_sql.y:3404 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.AnalyzeOption, "NULL"), @@ -15915,7 +15915,7 @@ yydefault: case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3410 +//line mysql_sql.y:3412 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.PhyPlanOption, "NULL"), @@ -15926,7 +15926,7 @@ yydefault: case 421: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3417 +//line mysql_sql.y:3419 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.PhyPlanOption, "NULL"), @@ -15938,7 +15938,7 @@ yydefault: case 422: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3425 +//line mysql_sql.y:3427 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.PhyPlanOption, "NULL"), @@ -15950,7 +15950,7 @@ yydefault: case 423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3433 +//line mysql_sql.y:3435 { yyLOCAL = tree.MakeExplainStmt(yyDollar[5].statementUnion(), yyDollar[3].explainOptionsUnion()) } @@ -15958,7 +15958,7 @@ yydefault: case 424: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3437 +//line mysql_sql.y:3439 { yyLOCAL = tree.MakeExplainStmt(yyDollar[3].statementUnion(), nil) } @@ -15966,7 +15966,7 @@ yydefault: case 425: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3441 +//line mysql_sql.y:3443 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.VerboseOption, "NULL"), @@ -15977,7 +15977,7 @@ yydefault: case 426: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3448 +//line mysql_sql.y:3450 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.AnalyzeOption, "NULL"), @@ -15988,7 +15988,7 @@ yydefault: case 427: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3455 +//line mysql_sql.y:3457 { options := []tree.OptionElem{ tree.MakeOptionElem(tree.AnalyzeOption, "NULL"), @@ -16000,7 +16000,7 @@ yydefault: case 442: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.OptionElem -//line mysql_sql.y:3493 +//line mysql_sql.y:3495 { yyLOCAL = []tree.OptionElem{yyDollar[1].explainOptionUnion()} } @@ -16008,7 +16008,7 @@ yydefault: case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.OptionElem -//line mysql_sql.y:3497 +//line mysql_sql.y:3499 { yyLOCAL = append(yyDollar[1].explainOptionsUnion(), yyDollar[3].explainOptionUnion()) } @@ -16016,45 +16016,45 @@ yydefault: case 444: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.OptionElem -//line mysql_sql.y:3503 +//line mysql_sql.y:3505 { yyLOCAL = tree.MakeOptionElem(yyDollar[1].str, yyDollar[2].str) } yyVAL.union = yyLOCAL case 445: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3509 +//line mysql_sql.y:3511 { yyVAL.str = yyDollar[1].str } case 446: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3514 +//line mysql_sql.y:3516 { yyVAL.str = "true" } case 447: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3515 +//line mysql_sql.y:3517 { yyVAL.str = "false" } case 448: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3516 +//line mysql_sql.y:3518 { yyVAL.str = yyDollar[1].str } case 449: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3517 +//line mysql_sql.y:3519 { yyVAL.str = yyDollar[1].str } case 450: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3521 +//line mysql_sql.y:3523 { yyLOCAL = tree.NewAnalyzeStmt(yyDollar[3].tableNameUnion(), yyDollar[5].identifierListUnion()) } @@ -16062,7 +16062,7 @@ yydefault: case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3527 +//line mysql_sql.y:3529 { yyLOCAL = &tree.UpgradeStatement{ Target: yyDollar[3].upgrade_targetUnion(), @@ -16073,7 +16073,7 @@ yydefault: case 452: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Target -//line mysql_sql.y:3536 +//line mysql_sql.y:3538 { yyLOCAL = &tree.Target{ AccountName: yyDollar[1].str, @@ -16084,7 +16084,7 @@ yydefault: case 453: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Target -//line mysql_sql.y:3543 +//line mysql_sql.y:3545 { yyLOCAL = &tree.Target{ AccountName: "", @@ -16095,7 +16095,7 @@ yydefault: case 454: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:3551 +//line mysql_sql.y:3553 { yyLOCAL = -1 } @@ -16103,7 +16103,7 @@ yydefault: case 455: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:3555 +//line mysql_sql.y:3557 { res := yyDollar[3].item.(int64) if res <= 0 { @@ -16116,7 +16116,7 @@ yydefault: case 468: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3581 +//line mysql_sql.y:3583 { var ifExists = yyDollar[3].boolValUnion() var name = yyDollar[4].tableNameUnion() @@ -16141,7 +16141,7 @@ yydefault: case 469: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3604 +//line mysql_sql.y:3606 { var ifExists = yyDollar[3].boolValUnion() var name = yyDollar[4].tableNameUnion() @@ -16153,7 +16153,7 @@ yydefault: case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3614 +//line mysql_sql.y:3616 { var table = yyDollar[3].tableNameUnion() alterTable := tree.NewAlterTable(table) @@ -16164,7 +16164,7 @@ yydefault: case 471: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3621 +//line mysql_sql.y:3623 { var table = yyDollar[3].tableNameUnion() alterTable := tree.NewAlterTable(table) @@ -16175,7 +16175,7 @@ yydefault: case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3630 +//line mysql_sql.y:3632 { alterTables := yyDollar[3].renameTableOptionsUnion() renameTables := tree.NewRenameTable(alterTables) @@ -16185,7 +16185,7 @@ yydefault: case 473: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.AlterTable -//line mysql_sql.y:3638 +//line mysql_sql.y:3640 { yyLOCAL = []*tree.AlterTable{yyDollar[1].renameTableOptionUnion()} } @@ -16193,7 +16193,7 @@ yydefault: case 474: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.AlterTable -//line mysql_sql.y:3642 +//line mysql_sql.y:3644 { yyLOCAL = append(yyDollar[1].renameTableOptionsUnion(), yyDollar[3].renameTableOptionUnion()) } @@ -16201,7 +16201,7 @@ yydefault: case 475: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AlterTable -//line mysql_sql.y:3648 +//line mysql_sql.y:3650 { var table = yyDollar[1].tableNameUnion() alterTable := tree.NewAlterTable(table) @@ -16213,7 +16213,7 @@ yydefault: case 476: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AlterTableOptions -//line mysql_sql.y:3658 +//line mysql_sql.y:3660 { yyLOCAL = []tree.AlterTableOption{yyDollar[1].alterTableOptionUnion()} } @@ -16221,7 +16221,7 @@ yydefault: case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterTableOptions -//line mysql_sql.y:3662 +//line mysql_sql.y:3664 { yyLOCAL = append(yyDollar[1].alterTableOptionsUnion(), yyDollar[3].alterTableOptionUnion()) } @@ -16229,7 +16229,7 @@ yydefault: case 478: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AlterPartitionOption -//line mysql_sql.y:3668 +//line mysql_sql.y:3670 { yyLOCAL = yyDollar[1].alterPartitionOptionUnion() } @@ -16237,7 +16237,7 @@ yydefault: case 479: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.AlterPartitionOption -//line mysql_sql.y:3672 +//line mysql_sql.y:3674 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) var PartBy = yyDollar[3].partitionByUnion() @@ -16263,7 +16263,7 @@ yydefault: case 480: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3696 +//line mysql_sql.y:3698 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -16275,7 +16275,7 @@ yydefault: case 481: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3706 +//line mysql_sql.y:3708 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16286,7 +16286,7 @@ yydefault: case 482: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3713 +//line mysql_sql.y:3715 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16297,7 +16297,7 @@ yydefault: case 483: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3720 +//line mysql_sql.y:3722 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16310,7 +16310,7 @@ yydefault: case 484: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3729 +//line mysql_sql.y:3731 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16322,7 +16322,7 @@ yydefault: case 485: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3737 +//line mysql_sql.y:3739 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16334,7 +16334,7 @@ yydefault: case 486: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3745 +//line mysql_sql.y:3747 { yyLOCAL = &tree.AlterSQLTask{ Name: tree.Identifier(yyDollar[3].cstrUnion().Compare()), @@ -16346,7 +16346,7 @@ yydefault: case 487: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3755 +//line mysql_sql.y:3757 { var oldName = yyDollar[5].cstrUnion().Compare() var newName = yyDollar[8].cstrUnion().Compare() @@ -16356,7 +16356,7 @@ yydefault: case 488: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3761 +//line mysql_sql.y:3763 { var oldName = yyDollar[3].cstrUnion().Compare() var newName = yyDollar[6].cstrUnion().Compare() @@ -16366,7 +16366,7 @@ yydefault: case 489: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3767 +//line mysql_sql.y:3769 { var roleName = yyDollar[3].cstrUnion().Compare() var ruleSQL = yyDollar[6].str @@ -16379,7 +16379,7 @@ yydefault: case 490: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3776 +//line mysql_sql.y:3778 { var roleName = yyDollar[3].cstrUnion().Compare() var dbName = yyDollar[8].cstrUnion().Compare() @@ -16390,7 +16390,7 @@ yydefault: case 491: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterPartitionOption -//line mysql_sql.y:3785 +//line mysql_sql.y:3787 { var typ = tree.AlterPartitionAddPartition var partitions = yyDollar[3].partitionsUnion() @@ -16404,7 +16404,7 @@ yydefault: case 492: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterPartitionOption -//line mysql_sql.y:3795 +//line mysql_sql.y:3797 { var typ = tree.AlterPartitionDropPartition var partitionNames = yyDollar[3].PartitionNamesUnion() @@ -16424,7 +16424,7 @@ yydefault: case 493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterPartitionOption -//line mysql_sql.y:3811 +//line mysql_sql.y:3813 { var typ = tree.AlterPartitionTruncatePartition var partitionNames = yyDollar[3].PartitionNamesUnion() @@ -16444,7 +16444,7 @@ yydefault: case 494: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3829 +//line mysql_sql.y:3831 { yyLOCAL = nil } @@ -16452,7 +16452,7 @@ yydefault: case 495: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3833 +//line mysql_sql.y:3835 { yyLOCAL = yyDollar[1].PartitionNamesUnion() } @@ -16460,7 +16460,7 @@ yydefault: case 496: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3839 +//line mysql_sql.y:3841 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } @@ -16468,7 +16468,7 @@ yydefault: case 497: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3843 +//line mysql_sql.y:3845 { yyLOCAL = append(yyDollar[1].PartitionNamesUnion(), tree.Identifier(yyDollar[3].cstrUnion().Compare())) } @@ -16476,7 +16476,7 @@ yydefault: case 498: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3849 +//line mysql_sql.y:3851 { var def = yyDollar[2].tableDefUnion() opt := tree.NewAlterOptionAdd(def) @@ -16486,7 +16486,7 @@ yydefault: case 499: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3855 +//line mysql_sql.y:3857 { var typ = tree.AlterTableModifyColumn var newColumn = yyDollar[3].columnTableDefUnion() @@ -16498,7 +16498,7 @@ yydefault: case 500: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3863 +//line mysql_sql.y:3865 { // Type OldColumnName NewColumn Position var typ = tree.AlterTableChangeColumn @@ -16512,7 +16512,7 @@ yydefault: case 501: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3873 +//line mysql_sql.y:3875 { var typ = tree.AlterTableRenameColumn var oldColumnName = yyDollar[3].unresolvedNameUnion() @@ -16524,7 +16524,7 @@ yydefault: case 502: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3881 +//line mysql_sql.y:3883 { var typ = tree.AlterTableAlterColumn var columnName = yyDollar[3].unresolvedNameUnion() @@ -16538,7 +16538,7 @@ yydefault: case 503: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3891 +//line mysql_sql.y:3893 { var typ = tree.AlterTableAlterColumn var columnName = yyDollar[3].unresolvedNameUnion() @@ -16552,7 +16552,7 @@ yydefault: case 504: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3901 +//line mysql_sql.y:3903 { var typ = tree.AlterTableAlterColumn var columnName = yyDollar[3].unresolvedNameUnion() @@ -16566,7 +16566,7 @@ yydefault: case 505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3911 +//line mysql_sql.y:3913 { var orderByClauseType = tree.AlterTableOrderByColumn var orderByColumnList = yyDollar[3].alterColumnOrderByUnion() @@ -16577,7 +16577,7 @@ yydefault: case 506: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3918 +//line mysql_sql.y:3920 { yyLOCAL = tree.AlterTableOption(yyDollar[2].alterTableOptionUnion()) } @@ -16585,7 +16585,7 @@ yydefault: case 507: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3922 +//line mysql_sql.y:3924 { yyLOCAL = tree.AlterTableOption(yyDollar[2].alterTableOptionUnion()) } @@ -16593,7 +16593,7 @@ yydefault: case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3926 +//line mysql_sql.y:3928 { yyLOCAL = tree.AlterTableOption(yyDollar[1].tableOptionUnion()) } @@ -16601,7 +16601,7 @@ yydefault: case 509: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3930 +//line mysql_sql.y:3932 { yyLOCAL = tree.AlterTableOption(yyDollar[3].alterTableOptionUnion()) } @@ -16609,7 +16609,7 @@ yydefault: case 510: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3934 +//line mysql_sql.y:3936 { var column = yyDollar[3].columnTableDefUnion() var position = yyDollar[4].alterColPositionUnion() @@ -16620,7 +16620,7 @@ yydefault: case 511: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AlterTableOption -//line mysql_sql.y:3941 +//line mysql_sql.y:3943 { yyLOCAL = tree.NewAlterOptionAlgorithm(yyDollar[3].str) } @@ -26346,53 +26346,58 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:10965 { - yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + name := tree.NewUnresolvedColName("concat") + yyLOCAL = &tree.FuncExpr{ + Func: tree.FuncName2ResolvableFunctionReference(name), + FuncName: tree.NewCStr("concat", 1), + Exprs: tree.Exprs{yyDollar[1].exprUnion(), yyDollar[3].exprUnion()}, + } } yyVAL.union = yyLOCAL case 1659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10969 +//line mysql_sql.y:10974 { - yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10973 +//line mysql_sql.y:10978 { - yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1661: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10977 +//line mysql_sql.y:10982 { - yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10981 +//line mysql_sql.y:10986 { - yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1663: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10985 +//line mysql_sql.y:10990 { - yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1664: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10989 +//line mysql_sql.y:10994 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } @@ -26400,23 +26405,31 @@ yydefault: case 1665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10993 +//line mysql_sql.y:10998 { - yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10997 +//line mysql_sql.y:11002 { - yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11001 +//line mysql_sql.y:11006 + { + yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + } + yyVAL.union = yyLOCAL + case 1668: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL tree.Expr +//line mysql_sql.y:11010 { name := tree.NewUnresolvedColName("json_extract") yyLOCAL = &tree.FuncExpr{ @@ -26426,10 +26439,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1668: + case 1669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11010 +//line mysql_sql.y:11019 { extractName := tree.NewUnresolvedColName("json_extract") inner := &tree.FuncExpr{ @@ -26445,90 +26458,90 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1669: + case 1670: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11025 +//line mysql_sql.y:11034 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1670: + case 1671: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11031 +//line mysql_sql.y:11040 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 1671: + case 1672: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11035 +//line mysql_sql.y:11044 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 1672: + case 1673: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11039 +//line mysql_sql.y:11048 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1673: + case 1674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11043 +//line mysql_sql.y:11052 { yyLOCAL = tree.NewParentExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1674: + case 1675: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11047 +//line mysql_sql.y:11056 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 1675: + case 1676: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11051 +//line mysql_sql.y:11060 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1676: + case 1677: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11055 +//line mysql_sql.y:11064 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1677: + case 1678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11059 +//line mysql_sql.y:11068 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1678: + case 1679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11063 +//line mysql_sql.y:11072 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1679: + case 1680: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11067 +//line mysql_sql.y:11076 { hint := strings.ToLower(yyDollar[2].cstrUnion().Compare()) switch hint { @@ -26571,35 +26584,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1680: + case 1681: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11109 +//line mysql_sql.y:11118 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1681: + case 1682: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11113 +//line mysql_sql.y:11122 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1682: + case 1683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11117 +//line mysql_sql.y:11126 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 1683: + case 1684: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11122 +//line mysql_sql.y:11131 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -26608,50 +26621,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1684: + case 1685: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11130 +//line mysql_sql.y:11139 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1685: + case 1686: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11134 +//line mysql_sql.y:11143 { yyLOCAL = tree.NewSerialExtractExpr(yyDollar[3].exprUnion(), yyDollar[5].exprUnion(), yyDollar[7].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1686: + case 1687: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11138 +//line mysql_sql.y:11147 { yyLOCAL = tree.NewBitCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1687: + case 1688: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11142 +//line mysql_sql.y:11151 { yyLOCAL = tree.NewCastExpr(yyDollar[1].exprUnion(), yyDollar[3].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1688: + case 1689: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11146 +//line mysql_sql.y:11155 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1689: + case 1690: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11150 +//line mysql_sql.y:11159 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) @@ -26662,66 +26675,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1690: + case 1691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11160 +//line mysql_sql.y:11169 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1691: + case 1692: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11164 +//line mysql_sql.y:11173 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1692: + case 1693: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11168 +//line mysql_sql.y:11177 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1693: + case 1694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11172 +//line mysql_sql.y:11181 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1694: + case 1695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11176 +//line mysql_sql.y:11185 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1695: + case 1696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11180 +//line mysql_sql.y:11189 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1696: + case 1697: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11184 +//line mysql_sql.y:11193 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1697: + case 1698: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11188 +//line mysql_sql.y:11197 { val, err := tree.NewFullTextMatchFuncExpression(yyDollar[3].keyPartsUnion(), yyDollar[7].str, yyDollar[8].fullTextSearchTypeUnion()) if err != nil { @@ -26731,16 +26744,16 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1698: + case 1699: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:11199 +//line mysql_sql.y:11208 { yyVAL.str = yyDollar[1].str } - case 1699: + case 1700: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11205 +//line mysql_sql.y:11214 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26750,10 +26763,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1700: + case 1701: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11214 +//line mysql_sql.y:11223 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26763,10 +26776,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1701: + case 1702: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11223 +//line mysql_sql.y:11232 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26776,10 +26789,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1702: + case 1703: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11232 +//line mysql_sql.y:11241 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26789,10 +26802,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1703: + case 1704: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11241 +//line mysql_sql.y:11250 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26803,10 +26816,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1704: + case 1705: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11251 +//line mysql_sql.y:11260 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26816,10 +26829,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1705: + case 1706: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11260 +//line mysql_sql.y:11269 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26830,10 +26843,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1706: + case 1707: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11270 +//line mysql_sql.y:11279 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26844,10 +26857,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1707: + case 1708: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11280 +//line mysql_sql.y:11289 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26858,10 +26871,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1708: + case 1709: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11290 +//line mysql_sql.y:11299 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26872,10 +26885,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1709: + case 1710: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11300 +//line mysql_sql.y:11309 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26886,10 +26899,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1710: + case 1711: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11310 +//line mysql_sql.y:11319 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26900,10 +26913,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1711: + case 1712: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11320 +//line mysql_sql.y:11329 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26914,10 +26927,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1712: + case 1713: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11330 +//line mysql_sql.y:11339 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26928,10 +26941,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1713: + case 1714: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11340 +//line mysql_sql.y:11349 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -26942,10 +26955,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1714: + case 1715: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11352 +//line mysql_sql.y:11361 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, "block") @@ -26956,10 +26969,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1715: + case 1716: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11362 +//line mysql_sql.y:11371 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, yyDollar[8].str) @@ -26970,10 +26983,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1716: + case 1717: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11372 +//line mysql_sql.y:11381 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), true, nil) if err != nil { @@ -26983,10 +26996,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1717: + case 1718: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11381 +//line mysql_sql.y:11390 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), true, nil) if err != nil { @@ -26996,10 +27009,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1718: + case 1719: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11391 +//line mysql_sql.y:11400 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), "block") @@ -27010,10 +27023,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1719: + case 1720: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11401 +//line mysql_sql.y:11410 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), yyDollar[8].str) @@ -27024,10 +27037,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1720: + case 1721: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11411 +//line mysql_sql.y:11420 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -27037,10 +27050,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1721: + case 1722: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11420 +//line mysql_sql.y:11429 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -27050,58 +27063,58 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1722: + case 1723: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11430 +//line mysql_sql.y:11439 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1723: + case 1724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11434 +//line mysql_sql.y:11443 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1724: + case 1725: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11439 +//line mysql_sql.y:11448 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1725: + case 1726: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11443 +//line mysql_sql.y:11452 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1726: + case 1727: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:11449 +//line mysql_sql.y:11458 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 1727: + case 1728: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:11453 +//line mysql_sql.y:11462 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 1728: + case 1729: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:11459 +//line mysql_sql.y:11468 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -27109,9 +27122,9 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1729: + case 1730: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:11468 +//line mysql_sql.y:11477 { t := yyVAL.columnTypeUnion() str := strings.ToLower(t.InternalType.FamilyString) @@ -27124,10 +27137,10 @@ yydefault: } } } - case 1730: + case 1731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11480 +//line mysql_sql.y:11489 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -27145,10 +27158,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1731: + case 1732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11497 +//line mysql_sql.y:11506 { locale := "" yyLOCAL = &tree.T{ @@ -27163,10 +27176,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1733: + case 1734: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11514 +//line mysql_sql.y:11523 { locale := "" yyLOCAL = &tree.T{ @@ -27181,10 +27194,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1734: + case 1735: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11528 +//line mysql_sql.y:11537 { locale := "" oid := uint32(defines.MYSQL_TYPE_STRING) @@ -27204,10 +27217,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1735: + case 1736: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11547 +//line mysql_sql.y:11556 { locale := "" yyLOCAL = &tree.T{ @@ -27220,10 +27233,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1736: + case 1737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11559 +//line mysql_sql.y:11568 { locale := "" yyLOCAL = &tree.T{ @@ -27238,10 +27251,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1737: + case 1738: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11573 +//line mysql_sql.y:11582 { locale := "" yyLOCAL = &tree.T{ @@ -27257,10 +27270,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1738: + case 1739: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11588 +//line mysql_sql.y:11597 { locale := "" yyLOCAL = &tree.T{ @@ -27276,10 +27289,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1739: + case 1740: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11603 +//line mysql_sql.y:11612 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -27297,10 +27310,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1740: + case 1741: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11620 +//line mysql_sql.y:11629 { locale := "" yyLOCAL = &tree.T{ @@ -27315,96 +27328,96 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1741: + case 1742: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11636 +//line mysql_sql.y:11645 { yyVAL.str = "" } - case 1745: + case 1746: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11645 +//line mysql_sql.y:11654 { yyLOCAL = &tree.FrameBound{Type: tree.Following, UnBounded: true} } yyVAL.union = yyLOCAL - case 1746: + case 1747: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11649 +//line mysql_sql.y:11658 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1747: + case 1748: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11653 +//line mysql_sql.y:11662 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1748: + case 1749: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11659 +//line mysql_sql.y:11668 { yyLOCAL = &tree.FrameBound{Type: tree.CurrentRow} } yyVAL.union = yyLOCAL - case 1749: + case 1750: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11663 +//line mysql_sql.y:11672 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, UnBounded: true} } yyVAL.union = yyLOCAL - case 1750: + case 1751: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11667 +//line mysql_sql.y:11676 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1751: + case 1752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:11671 +//line mysql_sql.y:11680 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1752: + case 1753: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:11677 +//line mysql_sql.y:11686 { yyLOCAL = tree.Rows } yyVAL.union = yyLOCAL - case 1753: + case 1754: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:11681 +//line mysql_sql.y:11690 { yyLOCAL = tree.Range } yyVAL.union = yyLOCAL - case 1754: + case 1755: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:11685 +//line mysql_sql.y:11694 { yyLOCAL = tree.Groups } yyVAL.union = yyLOCAL - case 1755: + case 1756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:11691 +//line mysql_sql.y:11700 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -27413,10 +27426,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1756: + case 1757: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:11699 +//line mysql_sql.y:11708 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -27426,82 +27439,82 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1757: + case 1758: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:11709 +//line mysql_sql.y:11718 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1758: + case 1759: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:11713 +//line mysql_sql.y:11722 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1759: + case 1760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11719 +//line mysql_sql.y:11728 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1760: + case 1761: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11724 +//line mysql_sql.y:11733 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1761: + case 1762: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11728 +//line mysql_sql.y:11737 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1762: + case 1763: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11733 +//line mysql_sql.y:11742 { yyVAL.str = "," } - case 1763: + case 1764: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11737 +//line mysql_sql.y:11746 { yyVAL.str = yyDollar[2].str } - case 1764: + case 1765: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11742 +//line mysql_sql.y:11751 { yyVAL.str = "1,vector_l2_ops,random,false" } - case 1765: + case 1766: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11746 +//line mysql_sql.y:11755 { yyVAL.str = yyDollar[2].str } - case 1766: + case 1767: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:11751 +//line mysql_sql.y:11760 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1768: + case 1769: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:11758 +//line mysql_sql.y:11767 { hasFrame := true var f *tree.FrameClause @@ -27526,10 +27539,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1769: + case 1770: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11784 +//line mysql_sql.y:11793 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27542,10 +27555,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1770: + case 1771: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11796 +//line mysql_sql.y:11805 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27558,10 +27571,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1771: + case 1772: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11808 +//line mysql_sql.y:11817 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27573,10 +27586,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1772: + case 1773: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11819 +//line mysql_sql.y:11828 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27588,10 +27601,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1773: + case 1774: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11830 +//line mysql_sql.y:11839 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_star) @@ -27603,10 +27616,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1774: + case 1775: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11841 +//line mysql_sql.y:11850 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27617,10 +27630,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1775: + case 1776: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11851 +//line mysql_sql.y:11860 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27631,10 +27644,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1776: + case 1777: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11861 +//line mysql_sql.y:11870 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27646,10 +27659,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1777: + case 1778: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11872 +//line mysql_sql.y:11881 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27661,10 +27674,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1778: + case 1779: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11883 +//line mysql_sql.y:11892 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27676,10 +27689,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1779: + case 1780: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11894 +//line mysql_sql.y:11903 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27691,10 +27704,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1780: + case 1781: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11905 +//line mysql_sql.y:11914 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_star) @@ -27706,10 +27719,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1781: + case 1782: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11916 +//line mysql_sql.y:11925 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27721,10 +27734,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1782: + case 1783: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11927 +//line mysql_sql.y:11936 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27736,10 +27749,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1783: + case 1784: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11938 +//line mysql_sql.y:11947 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27751,10 +27764,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1784: + case 1785: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11949 +//line mysql_sql.y:11958 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27766,10 +27779,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1785: + case 1786: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11960 +//line mysql_sql.y:11969 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27781,10 +27794,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1786: + case 1787: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11971 +//line mysql_sql.y:11980 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27796,10 +27809,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1787: + case 1788: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11982 +//line mysql_sql.y:11991 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27811,10 +27824,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1788: + case 1789: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11993 +//line mysql_sql.y:12002 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27826,10 +27839,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1789: + case 1790: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12004 +//line mysql_sql.y:12013 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27841,10 +27854,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1790: + case 1791: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12015 +//line mysql_sql.y:12024 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27856,10 +27869,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1791: + case 1792: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12026 +//line mysql_sql.y:12035 { name := tree.NewUnresolvedColName(yyDollar[1].str) var columnList tree.Exprs @@ -27877,10 +27890,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1795: + case 1796: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12050 +//line mysql_sql.y:12059 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27890,10 +27903,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1796: + case 1797: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12059 +//line mysql_sql.y:12068 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := tree.Exprs{yyDollar[3].exprUnion()} @@ -27905,10 +27918,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1797: + case 1798: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12070 +//line mysql_sql.y:12079 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27918,10 +27931,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1798: + case 1799: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12079 +//line mysql_sql.y:12088 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27931,10 +27944,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1799: + case 1800: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12088 +//line mysql_sql.y:12097 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27944,10 +27957,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1800: + case 1801: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12097 +//line mysql_sql.y:12106 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -27959,10 +27972,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1801: + case 1802: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12108 +//line mysql_sql.y:12117 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27972,10 +27985,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1802: + case 1803: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12117 +//line mysql_sql.y:12126 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27985,10 +27998,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1803: + case 1804: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12126 +//line mysql_sql.y:12135 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -27999,10 +28012,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1804: + case 1805: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12136 +//line mysql_sql.y:12145 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28012,10 +28025,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1805: + case 1806: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12145 +//line mysql_sql.y:12154 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28025,10 +28038,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1806: + case 1807: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12154 +//line mysql_sql.y:12163 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28038,10 +28051,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1807: + case 1808: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12163 +//line mysql_sql.y:12172 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28051,10 +28064,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1808: + case 1809: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12172 +//line mysql_sql.y:12181 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(0), "0", false, tree.P_int64) @@ -28067,10 +28080,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1809: + case 1810: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12184 +//line mysql_sql.y:12193 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(1), "1", false, tree.P_int64) @@ -28082,10 +28095,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1810: + case 1811: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12195 +//line mysql_sql.y:12204 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(2), "2", false, tree.P_int64) @@ -28099,10 +28112,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1811: + case 1812: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12208 +//line mysql_sql.y:12217 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(3), "3", false, tree.P_int64) @@ -28115,10 +28128,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1812: + case 1813: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12220 +//line mysql_sql.y:12229 { column := tree.NewUnresolvedColName(yyDollar[3].str) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -28129,16 +28142,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1819: + case 1820: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:12242 +//line mysql_sql.y:12251 { yyVAL.str = yyDollar[1].str } - case 1852: + case 1853: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12284 +//line mysql_sql.y:12293 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -28152,10 +28165,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1853: + case 1854: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12297 +//line mysql_sql.y:12306 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -28169,10 +28182,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1854: + case 1855: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12310 +//line mysql_sql.y:12319 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -28184,10 +28197,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1855: + case 1856: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12321 +//line mysql_sql.y:12330 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -28199,10 +28212,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1856: + case 1857: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12332 +//line mysql_sql.y:12341 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToUpper(yyDollar[3].str) @@ -28214,10 +28227,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1857: + case 1858: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12344 +//line mysql_sql.y:12353 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28227,10 +28240,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1858: + case 1859: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12353 +//line mysql_sql.y:12362 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28239,10 +28252,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1859: + case 1860: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12361 +//line mysql_sql.y:12370 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28251,10 +28264,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1860: + case 1861: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12369 +//line mysql_sql.y:12378 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -28268,10 +28281,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1861: + case 1862: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12382 +//line mysql_sql.y:12391 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28281,10 +28294,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1862: + case 1863: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12391 +//line mysql_sql.y:12400 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -28296,10 +28309,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1863: + case 1864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12402 +//line mysql_sql.y:12411 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -28311,10 +28324,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1864: + case 1865: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12413 +//line mysql_sql.y:12422 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28324,10 +28337,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1865: + case 1866: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12422 +//line mysql_sql.y:12431 { cn := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -28340,10 +28353,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1866: + case 1867: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12434 +//line mysql_sql.y:12443 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -28354,10 +28367,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1867: + case 1868: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12444 +//line mysql_sql.y:12453 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -28368,10 +28381,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1868: + case 1869: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12454 +//line mysql_sql.y:12463 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28381,10 +28394,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1869: + case 1870: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12463 +//line mysql_sql.y:12472 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -28396,10 +28409,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1870: + case 1871: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12474 +//line mysql_sql.y:12483 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28409,10 +28422,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1871: + case 1872: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12483 +//line mysql_sql.y:12492 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -28423,10 +28436,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1872: + case 1873: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12493 +//line mysql_sql.y:12502 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28436,10 +28449,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1873: + case 1874: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12502 +//line mysql_sql.y:12511 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28449,10 +28462,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1874: + case 1875: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:12511 +//line mysql_sql.y:12520 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -28462,34 +28475,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1875: + case 1876: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12521 +//line mysql_sql.y:12530 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1876: + case 1877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12525 +//line mysql_sql.y:12534 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1877: + case 1878: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12531 +//line mysql_sql.y:12540 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1878: + case 1879: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12535 +//line mysql_sql.y:12544 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -28500,20 +28513,20 @@ yydefault: yyLOCAL = tree.NewNumVal(ival, str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 1885: + case 1886: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12554 +//line mysql_sql.y:12563 { } - case 1886: + case 1887: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:12556 +//line mysql_sql.y:12565 { } - case 1920: + case 1921: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12597 +//line mysql_sql.y:12606 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -28525,113 +28538,100 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1921: + case 1922: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:12609 +//line mysql_sql.y:12618 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 1922: + case 1923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:12613 +//line mysql_sql.y:12622 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 1923: + case 1924: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:12617 +//line mysql_sql.y:12626 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 1924: + case 1925: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:12623 +//line mysql_sql.y:12632 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1925: + case 1926: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12628 +//line mysql_sql.y:12637 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1926: + case 1927: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12632 +//line mysql_sql.y:12641 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1927: + case 1928: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12638 +//line mysql_sql.y:12647 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1928: + case 1929: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12642 +//line mysql_sql.y:12651 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1929: + case 1930: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12648 +//line mysql_sql.y:12657 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1930: + case 1931: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:12652 +//line mysql_sql.y:12661 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1931: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL tree.Expr -//line mysql_sql.y:12659 - { - yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) - } - yyVAL.union = yyLOCAL case 1932: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12663 +//line mysql_sql.y:12668 { - yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1933: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:12667 +//line mysql_sql.y:12672 { - name := tree.NewUnresolvedColName("concat") - yyLOCAL = &tree.FuncExpr{ - Func: tree.FuncName2ResolvableFunctionReference(name), - FuncName: tree.NewCStr("concat", 1), - Exprs: tree.Exprs{yyDollar[1].exprUnion(), yyDollar[3].exprUnion()}, - } + yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 1934: @@ -29616,13 +29616,19 @@ yydefault: //line mysql_sql.y:13361 { locale := "" + width := int32(64) + oid := uint32(defines.MYSQL_TYPE_DOUBLE) + if yylex.(*Lexer).HasSQLMode(SQLModeRealAsFloat) { + width = 32 + oid = uint32(defines.MYSQL_TYPE_FLOAT) + } yyLOCAL = &tree.T{ InternalType: tree.InternalType{ Family: tree.FloatFamily, FamilyString: yyDollar[1].str, - Width: 64, + Width: width, Locale: &locale, - Oid: uint32(defines.MYSQL_TYPE_DOUBLE), + Oid: oid, DisplayWith: yyDollar[2].lengthScaleOptUnion().DisplayWith, Scale: yyDollar[2].lengthScaleOptUnion().Scale, }, @@ -29632,7 +29638,7 @@ yydefault: case 2021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13378 +//line mysql_sql.y:13384 { locale := "" yyLOCAL = &tree.T{ @@ -29648,7 +29654,7 @@ yydefault: case 2022: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13390 +//line mysql_sql.y:13396 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -29672,7 +29678,7 @@ yydefault: case 2023: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13410 +//line mysql_sql.y:13416 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -29696,7 +29702,7 @@ yydefault: case 2024: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13430 +//line mysql_sql.y:13436 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -29720,7 +29726,7 @@ yydefault: case 2025: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13450 +//line mysql_sql.y:13456 { locale := "" yyLOCAL = &tree.T{ @@ -29738,7 +29744,7 @@ yydefault: case 2026: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13466 +//line mysql_sql.y:13472 { locale := "" yyLOCAL = &tree.T{ @@ -29755,7 +29761,7 @@ yydefault: case 2027: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13479 +//line mysql_sql.y:13485 { locale := "" yyLOCAL = &tree.T{ @@ -29772,7 +29778,7 @@ yydefault: case 2028: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13492 +//line mysql_sql.y:13498 { locale := "" yyLOCAL = &tree.T{ @@ -29789,7 +29795,7 @@ yydefault: case 2029: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13505 +//line mysql_sql.y:13511 { locale := "" yyLOCAL = &tree.T{ @@ -29806,7 +29812,7 @@ yydefault: case 2030: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13518 +//line mysql_sql.y:13524 { locale := "" yyLOCAL = &tree.T{ @@ -29822,7 +29828,7 @@ yydefault: case 2031: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13530 +//line mysql_sql.y:13536 { locale := "" yyLOCAL = &tree.T{ @@ -29838,7 +29844,7 @@ yydefault: case 2032: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13542 +//line mysql_sql.y:13548 { locale := "" yyLOCAL = &tree.T{ @@ -29854,7 +29860,7 @@ yydefault: case 2033: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13554 +//line mysql_sql.y:13560 { locale := "" yyLOCAL = &tree.T{ @@ -29870,7 +29876,7 @@ yydefault: case 2034: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13566 +//line mysql_sql.y:13572 { locale := "" yyLOCAL = &tree.T{ @@ -29886,7 +29892,7 @@ yydefault: case 2035: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13578 +//line mysql_sql.y:13584 { locale := "" yyLOCAL = &tree.T{ @@ -29902,7 +29908,7 @@ yydefault: case 2036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13590 +//line mysql_sql.y:13596 { locale := "" yyLOCAL = &tree.T{ @@ -29918,7 +29924,7 @@ yydefault: case 2037: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13602 +//line mysql_sql.y:13608 { locale := "" yyLOCAL = &tree.T{ @@ -29934,7 +29940,7 @@ yydefault: case 2038: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13614 +//line mysql_sql.y:13620 { locale := "" yyLOCAL = &tree.T{ @@ -29950,7 +29956,7 @@ yydefault: case 2039: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13626 +//line mysql_sql.y:13632 { locale := "" yyLOCAL = &tree.T{ @@ -29966,7 +29972,7 @@ yydefault: case 2040: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13638 +//line mysql_sql.y:13644 { locale := "" yyLOCAL = &tree.T{ @@ -29983,7 +29989,7 @@ yydefault: case 2041: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13651 +//line mysql_sql.y:13657 { locale := "" yyLOCAL = &tree.T{ @@ -30000,7 +30006,7 @@ yydefault: case 2042: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13664 +//line mysql_sql.y:13670 { locale := "" yyLOCAL = &tree.T{ @@ -30017,7 +30023,7 @@ yydefault: case 2043: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13677 +//line mysql_sql.y:13683 { locale := "" yyLOCAL = &tree.T{ @@ -30034,7 +30040,7 @@ yydefault: case 2044: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13690 +//line mysql_sql.y:13696 { locale := "" yyLOCAL = &tree.T{ @@ -30051,7 +30057,7 @@ yydefault: case 2045: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:13705 +//line mysql_sql.y:13711 { yyLOCAL = &tree.Do{ Exprs: yyDollar[2].exprsUnion(), @@ -30061,7 +30067,7 @@ yydefault: case 2046: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:13713 +//line mysql_sql.y:13719 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -30073,7 +30079,7 @@ yydefault: case 2047: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:13722 +//line mysql_sql.y:13728 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -30085,7 +30091,7 @@ yydefault: case 2048: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:13732 +//line mysql_sql.y:13738 { yyLOCAL = tree.NewSpatialType(yyDollar[1].str) } @@ -30093,7 +30099,7 @@ yydefault: case 2067: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:13760 +//line mysql_sql.y:13766 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) @@ -30102,7 +30108,7 @@ yydefault: case 2068: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:13765 +//line mysql_sql.y:13771 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } @@ -30110,7 +30116,7 @@ yydefault: case 2069: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13771 +//line mysql_sql.y:13777 { yyLOCAL = 0 } @@ -30118,7 +30124,7 @@ yydefault: case 2071: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13778 +//line mysql_sql.y:13784 { yyLOCAL = 0 } @@ -30126,7 +30132,7 @@ yydefault: case 2072: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13782 +//line mysql_sql.y:13788 { yyLOCAL = int32(yyDollar[2].item.(int64)) } @@ -30134,7 +30140,7 @@ yydefault: case 2073: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13787 +//line mysql_sql.y:13793 { yyLOCAL = int32(-1) } @@ -30142,7 +30148,7 @@ yydefault: case 2074: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13791 +//line mysql_sql.y:13797 { yyLOCAL = int32(yyDollar[2].item.(int64)) } @@ -30150,7 +30156,7 @@ yydefault: case 2075: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:13797 +//line mysql_sql.y:13803 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } @@ -30158,7 +30164,7 @@ yydefault: case 2076: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13803 +//line mysql_sql.y:13809 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -30169,7 +30175,7 @@ yydefault: case 2077: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13810 +//line mysql_sql.y:13816 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -30180,7 +30186,7 @@ yydefault: case 2078: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13817 +//line mysql_sql.y:13823 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -30191,7 +30197,7 @@ yydefault: case 2079: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13826 +//line mysql_sql.y:13832 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 38, // this is the default precision for decimal @@ -30202,7 +30208,7 @@ yydefault: case 2080: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13833 +//line mysql_sql.y:13839 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -30213,7 +30219,7 @@ yydefault: case 2081: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:13840 +//line mysql_sql.y:13846 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -30224,7 +30230,7 @@ yydefault: case 2082: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:13849 +//line mysql_sql.y:13855 { yyLOCAL = false } @@ -30232,7 +30238,7 @@ yydefault: case 2083: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:13853 +//line mysql_sql.y:13859 { yyLOCAL = true } @@ -30240,33 +30246,33 @@ yydefault: case 2084: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:13857 +//line mysql_sql.y:13863 { yyLOCAL = false } yyVAL.union = yyLOCAL case 2085: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:13863 +//line mysql_sql.y:13869 { } case 2086: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:13865 +//line mysql_sql.y:13871 { yyLOCAL = true } yyVAL.union = yyLOCAL case 2090: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:13875 +//line mysql_sql.y:13881 { yyVAL.str = "" } case 2091: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:13879 +//line mysql_sql.y:13885 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 67b992b1c4161..61c33389faa37 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -351,7 +351,8 @@ func sqlTaskInt64(v any) int64 { %nonassoc LOWER_THAN_CHARSET %nonassoc CHARSET %right UNIQUE KEY -%left OR PIPE_CONCAT +%left OR +%token PIPE_CONCAT %left XOR %left AND %right NOT '!' @@ -364,6 +365,7 @@ func sqlTaskInt64(v any) int64 { %left '+' '-' %left '*' '/' DIV '%' MOD %left '^' +%left PIPE_CONCAT %right '~' UNARY %nonassoc LOWER_THAN_COLLATE %left COLLATE @@ -10959,6 +10961,15 @@ bit_expr: { $$ = tree.NewBinaryExpr(tree.BIT_XOR, $1, $3) } +| bit_expr PIPE_CONCAT bit_expr + { + name := tree.NewUnresolvedColName("concat") + $$ = &tree.FuncExpr{ + Func: tree.FuncName2ResolvableFunctionReference(name), + FuncName: tree.NewCStr("concat", 1), + Exprs: tree.Exprs{$1, $3}, + } + } | bit_expr '+' bit_expr %prec '+' { $$ = tree.NewBinaryExpr(tree.PLUS, $1, $3) @@ -12662,15 +12673,6 @@ expression: { $$ = tree.NewOrExpr($1, $3) } -| expression PIPE_CONCAT expression %prec PIPE_CONCAT - { - name := tree.NewUnresolvedColName("concat") - $$ = &tree.FuncExpr{ - Func: tree.FuncName2ResolvableFunctionReference(name), - FuncName: tree.NewCStr("concat", 1), - Exprs: tree.Exprs{$1, $3}, - } - } | expression XOR expression %prec XOR { $$ = tree.NewXorExpr($1, $3) @@ -13359,13 +13361,19 @@ decimal_type: | REAL float_length_opt { locale := "" + width := int32(64) + oid := uint32(defines.MYSQL_TYPE_DOUBLE) + if yylex.(*Lexer).HasSQLMode(SQLModeRealAsFloat) { + width = 32 + oid = uint32(defines.MYSQL_TYPE_FLOAT) + } $$ = &tree.T{ InternalType: tree.InternalType{ Family: tree.FloatFamily, FamilyString: $1, - Width: 64, + Width: width, Locale: &locale, - Oid: uint32(defines.MYSQL_TYPE_DOUBLE), + Oid: oid, DisplayWith: $2.DisplayWith, Scale: $2.Scale, }, diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index 369433cd8fcbc..6f3af23f94518 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -20,6 +20,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/sql/parsers/dialect" "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" ) @@ -57,6 +58,136 @@ func TestDebug(t *testing.T) { } } +func TestSQLModeParserModes(t *testing.T) { + t.Run("ansi quotes changes double quoted token from string to identifier", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select "abc"`, 1, "") + require.NoError(t, err) + defer stmt.Free() + require.IsType(t, &tree.NumVal{}, firstSelectExpr(t, stmt)) + + stmt, err = ParseOneWithSQLMode(context.Background(), `select "abc"`, 1, "ANSI_QUOTES") + require.NoError(t, err) + defer stmt.Free() + name, ok := firstSelectExpr(t, stmt).(*tree.UnresolvedName) + require.True(t, ok) + require.Equal(t, "abc", name.ColName()) + }) + + t.Run("pipes default to logical or unless PIPES_AS_CONCAT is set", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select 'a'||'b'`, 1, "") + require.NoError(t, err) + defer stmt.Free() + require.IsType(t, &tree.OrExpr{}, firstSelectExpr(t, stmt)) + + stmt, err = ParseOneWithSQLMode(context.Background(), `select 'a'||'b'`, 1, "PIPES_AS_CONCAT") + require.NoError(t, err) + defer stmt.Free() + fn, ok := firstSelectExpr(t, stmt).(*tree.FuncExpr) + require.True(t, ok) + require.Equal(t, "concat", fn.Func.FunctionReference.(*tree.UnresolvedName).ColName()) + }) + + t.Run("default pipes preserve logical OR precedence in comparisons", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select id < 4 || id > 5`, 1, "") + require.NoError(t, err) + defer stmt.Free() + + orExpr, ok := firstSelectExpr(t, stmt).(*tree.OrExpr) + require.True(t, ok) + _, ok = orExpr.Left.(*tree.ComparisonExpr) + require.True(t, ok) + _, ok = orExpr.Right.(*tree.ComparisonExpr) + require.True(t, ok) + }) + + t.Run("PIPES_AS_CONCAT has concat precedence, not or precedence", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select true or 'a'||'b'`, 1, "PIPES_AS_CONCAT") + require.NoError(t, err) + defer stmt.Free() + + orExpr, ok := firstSelectExpr(t, stmt).(*tree.OrExpr) + require.True(t, ok) + fn, ok := orExpr.Right.(*tree.FuncExpr) + require.True(t, ok) + require.Equal(t, "concat", fn.Func.FunctionReference.(*tree.UnresolvedName).ColName()) + }) + + t.Run("PIPES_AS_CONCAT binds between bit xor and unary", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select 1^2||-3`, 1, "PIPES_AS_CONCAT") + require.NoError(t, err) + defer stmt.Free() + + xorExpr, ok := firstSelectExpr(t, stmt).(*tree.BinaryExpr) + require.True(t, ok) + require.Equal(t, tree.BIT_XOR, xorExpr.Op) + fn, ok := xorExpr.Right.(*tree.FuncExpr) + require.True(t, ok) + require.Equal(t, "concat", fn.Func.FunctionReference.(*tree.UnresolvedName).ColName()) + require.Len(t, fn.Exprs, 2) + _, ok = fn.Exprs[1].(*tree.UnaryExpr) + require.True(t, ok) + }) + + t.Run("session parser mode does not inject PIPES_AS_CONCAT", func(t *testing.T) { + sqlMode := SessionSQLModeForParser("ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES") + require.NotContains(t, sqlMode, "PIPES_AS_CONCAT") + + stmt, err := ParseOneWithSQLMode(context.Background(), `select 'a'||'b'`, 1, sqlMode) + require.NoError(t, err) + defer stmt.Free() + orExpr, ok := firstSelectExpr(t, stmt).(*tree.OrExpr) + require.True(t, ok) + require.NotNil(t, orExpr.Left) + require.NotNil(t, orExpr.Right) + }) + + t.Run("NO_BACKSLASH_ESCAPES keeps backslash as ordinary character", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `select 'a\nb'`, 1, "") + require.NoError(t, err) + defer stmt.Free() + require.Equal(t, "a\nb", firstSelectExpr(t, stmt).(*tree.NumVal).String()) + + stmt, err = ParseOneWithSQLMode(context.Background(), `select 'a\nb'`, 1, "NO_BACKSLASH_ESCAPES") + require.NoError(t, err) + defer stmt.Free() + require.Equal(t, `a\nb`, firstSelectExpr(t, stmt).(*tree.NumVal).String()) + }) + + t.Run("REAL_AS_FLOAT changes REAL column type", func(t *testing.T) { + stmt, err := ParseOneWithSQLMode(context.Background(), `create table t (r real)`, 1, "") + require.NoError(t, err) + defer stmt.Free() + require.Equal(t, uint32(defines.MYSQL_TYPE_DOUBLE), firstColumnType(t, stmt).Oid) + require.Equal(t, int32(64), firstColumnType(t, stmt).Width) + + stmt, err = ParseOneWithSQLMode(context.Background(), `create table t (r real)`, 1, "REAL_AS_FLOAT") + require.NoError(t, err) + defer stmt.Free() + require.Equal(t, uint32(defines.MYSQL_TYPE_FLOAT), firstColumnType(t, stmt).Oid) + require.Equal(t, int32(32), firstColumnType(t, stmt).Width) + }) +} + +func firstSelectExpr(t *testing.T, stmt tree.Statement) tree.Expr { + t.Helper() + sel, ok := stmt.(*tree.Select) + require.True(t, ok) + clause, ok := sel.Select.(*tree.SelectClause) + require.True(t, ok) + require.Len(t, clause.Exprs, 1) + return clause.Exprs[0].Expr +} + +func firstColumnType(t *testing.T, stmt tree.Statement) tree.InternalType { + t.Helper() + createTable, ok := stmt.(*tree.CreateTable) + require.True(t, ok) + require.Len(t, createTable.Defs, 1) + col, ok := createTable.Defs[0].(*tree.ColumnTableDef) + require.True(t, ok) + return col.Type.(*tree.T).InternalType +} + var ( orginSQL = struct { input string @@ -698,13 +829,13 @@ var ( input: "select role from t1", }, { input: "select a || 'hello' || 'world' from t1;", - output: "select concat(concat(a, hello), world) from t1", + output: "select a or hello or world from t1", }, { input: "select col || 'bar'", - output: "select concat(col, bar)", + output: "select col or bar", }, { input: "select 'foo' || 'bar'", - output: "select concat(foo, bar)", + output: "select foo or bar", }, { input: "select 'a\\'b'", output: "select a'b", @@ -1209,16 +1340,16 @@ var ( output: "load data local infile data replace into table db.a (a, b, @vc, @vd) set a = @vc != 0, d = @vd != 1", }, { input: "load data local infile 'data' replace into table db.a lines starting by '#' terminated by '\t' ignore 2 lines", - output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", + output: "load data local infile data replace into table db.a lines starting by # terminated by \t ignore 2 lines", }, { input: "load data local infile 'data' replace into table db.a lines starting by '#' terminated by '\t' ignore 2 rows", - output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", + output: "load data local infile data replace into table db.a lines starting by # terminated by \t ignore 2 lines", }, { input: "load data local infile 'data' replace into table db.a lines terminated by '\t' starting by '#' ignore 2 lines", - output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", + output: "load data local infile data replace into table db.a lines starting by # terminated by \t ignore 2 lines", }, { input: "load data local infile 'data' replace into table db.a lines terminated by '\t' starting by '#' ignore 2 rows", - output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", + output: "load data local infile data replace into table db.a lines starting by # terminated by \t ignore 2 lines", }, { input: "load data infile 'data.txt' into table db.a fields terminated by '\t' escaped by '\t'", output: "load data infile data.txt into table db.a fields terminated by \t escaped by \t", @@ -1310,12 +1441,12 @@ var ( output: "show tables from test01 where tables_in_test01 like %t2%", }, { input: "select userID,MAX(score) max_score from t1 where userID <2 || userID > 3 group by userID order by max_score", - output: "select userID, MAX(score) as max_score from t1 where concat(userID < 2, userID > 3) group by userID order by max_score", + output: "select userID, MAX(score) as max_score from t1 where userID < 2 or userID > 3 group by userID order by max_score", }, { input: "select c1, -c2 from t2 order by -c1 desc", }, { input: "select * from t1 where spID>2 AND userID <2 || userID >=2 OR userID < 2 limit 3", - output: "select * from t1 where concat(spID > 2 and userID < 2, userID >= 2) or userID < 2 limit 3", + output: "select * from t1 where spID > 2 and userID < 2 or userID >= 2 or userID < 2 limit 3", }, { input: "select * from t10 where (b='ba' or b='cb') and (c='dc' or c='ed');", output: "select * from t10 where (b = ba or b = cb) and (c = dc or c = ed)", diff --git a/pkg/sql/parsers/dialect/mysql/scanner.go b/pkg/sql/parsers/dialect/mysql/scanner.go index d34ffad914ac0..606f3394d6487 100644 --- a/pkg/sql/parsers/dialect/mysql/scanner.go +++ b/pkg/sql/parsers/dialect/mysql/scanner.go @@ -42,6 +42,7 @@ type Scanner struct { LastError error posVarIndex int dialectType dialect.DialectType + sqlMode SQLModeFlags MysqlSpecialComment *Scanner CommentFlag bool @@ -65,6 +66,7 @@ func (s *Scanner) reset(clearLargeOnly bool, oversized bool) { s.Line = 0 s.Col = 0 s.PrePos = 0 + s.sqlMode = 0 if clearLargeOnly { if oversized { @@ -86,12 +88,22 @@ func (s *Scanner) setSql(sql string) { s.strBuilder.Reset() } +func (s *Scanner) setSQLMode(mode SQLModeFlags) { + s.sqlMode = mode +} + func NewScanner(dialectType dialect.DialectType, sql string) *Scanner { scanner := scannerPool.Get().(*Scanner) scanner.setSql(sql) return scanner } +func NewScannerWithSQLMode(dialectType dialect.DialectType, sql string, sqlMode SQLModeFlags) *Scanner { + scanner := NewScanner(dialectType, sql) + scanner.setSQLMode(sqlMode) + return scanner +} + func PutScanner(scanner *Scanner) { oversized := len(scanner.buf) > maxPoolSQLSize // Reset shared state. Only clear buffers/strings when oversized. @@ -370,7 +382,10 @@ func (s *Scanner) stepBackOneChar(ch uint16) (int, string) { case '|': if s.cur() == '|' { s.inc() - return PIPE_CONCAT, "" + if s.sqlMode.Has(SQLModePipesAsConcat) { + return PIPE_CONCAT, "" + } + return OR, "" } return int(ch), "" case '?': @@ -442,7 +457,12 @@ func (s *Scanner) stepBackOneChar(ch uint16) (int, string) { return NE, "" } return int(ch), "" - case '\'', '"': + case '\'': + return s.scanString(ch, STRING) + case '"': + if s.sqlMode.Has(SQLModeANSIQuotes) { + return s.scanLiteralIdentifierWithDelim('"') + } return s.scanString(ch, STRING) case '`': return s.scanLiteralIdentifier() @@ -468,7 +488,7 @@ func (s *Scanner) scanString(delim uint16, typ int) (int, string) { if s.cur() != delim { return typ, buf.String() } - } else if ch == '\\' && delim != '$' { + } else if ch == '\\' && delim != '$' && !s.sqlMode.Has(SQLModeNoBackslashEscapes) { ch = handleEscape(s, buf) if ch == eofChar { break @@ -501,7 +521,7 @@ func (s *Scanner) scanStringAddPlus(delim uint16, typ int) (int, string) { if s.cur() != delim { return typ, buf.String() } - } else if ch == '\\' && delim != '$' { + } else if ch == '\\' && delim != '$' && !s.sqlMode.Has(SQLModeNoBackslashEscapes) { ch = handleEscape(s, buf) if ch == eofChar { break @@ -542,11 +562,15 @@ func handleEscape(s *Scanner, buf *bytes.Buffer) uint16 { // is a simple literal, it'll be returned as a slice of the input buffer. If the identifier // contains escape sequences, this function will fall back to scanLiteralIdentifierSlow func (s *Scanner) scanLiteralIdentifier() (int, string) { + return s.scanLiteralIdentifierWithDelim('`') +} + +func (s *Scanner) scanLiteralIdentifierWithDelim(delim uint16) (int, string) { start := s.Pos for { switch s.cur() { - case '`': - if s.peek(1) != '`' { + case delim: + if s.peek(1) != delim { if s.Pos == start { return LEX_ERROR, "" } @@ -557,7 +581,7 @@ func (s *Scanner) scanLiteralIdentifier() (int, string) { var buf strings.Builder buf.WriteString(s.buf[start:s.Pos]) s.inc() - return s.scanLiteralIdentifierSlow(&buf) + return s.scanLiteralIdentifierSlow(&buf, delim) case eofChar: // Premature EOF. return LEX_ERROR, s.buf[start:s.Pos] @@ -572,22 +596,22 @@ func (s *Scanner) scanLiteralIdentifier() (int, string) { // scanLiteralIdentifier once the first escape sequence is found in the identifier. // The provided `buf` contains the contents of the identifier that have been scanned // so far. -func (s *Scanner) scanLiteralIdentifierSlow(buf *strings.Builder) (int, string) { - backTickSeen := true +func (s *Scanner) scanLiteralIdentifierSlow(buf *strings.Builder, delim uint16) (int, string) { + delimSeen := true for { - if backTickSeen { - if s.cur() != '`' { + if delimSeen { + if s.cur() != delim { break } - backTickSeen = false - buf.WriteByte('`') + delimSeen = false + buf.WriteByte(byte(delim)) s.inc() continue } - // The previous char was not a backtick. + // The previous char was not the identifier delimiter. switch s.cur() { - case '`': - backTickSeen = true + case delim: + delimSeen = true case eofChar: // Premature EOF. return LEX_ERROR, buf.String() diff --git a/pkg/sql/parsers/dialect/mysql/scanner_test.go b/pkg/sql/parsers/dialect/mysql/scanner_test.go index 980db74d8a9e7..130f5c355503a 100644 --- a/pkg/sql/parsers/dialect/mysql/scanner_test.go +++ b/pkg/sql/parsers/dialect/mysql/scanner_test.go @@ -74,6 +74,21 @@ func TestLiteralID(t *testing.T) { } } +func TestScannerSQLModePipeConcat(t *testing.T) { + s := NewScanner(dialect.MYSQL, "||") + id, _ := s.Scan() + if id != OR { + t.Fatalf("default || token = %s, want OR", tokenName(id)) + } + + s = NewScanner(dialect.MYSQL, "||") + s.setSQLMode(ParseSQLModeFlags("PIPES_AS_CONCAT")) + id, _ = s.Scan() + if id != PIPE_CONCAT { + t.Fatalf("PIPES_AS_CONCAT || token = %s, want PIPE_CONCAT", tokenName(id)) + } +} + func tokenName(id int) string { if id == STRING { return "STRING" diff --git a/pkg/sql/parsers/dialect/mysql/sql_mode.go b/pkg/sql/parsers/dialect/mysql/sql_mode.go new file mode 100644 index 0000000000000..90f38fcfc6760 --- /dev/null +++ b/pkg/sql/parsers/dialect/mysql/sql_mode.go @@ -0,0 +1,55 @@ +// Copyright 2021 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mysql + +import "strings" + +type SQLModeFlag uint8 + +const ( + SQLModeANSIQuotes SQLModeFlag = 1 << iota + SQLModePipesAsConcat + SQLModeNoBackslashEscapes + SQLModeRealAsFloat +) + +type SQLModeFlags uint8 + +func ParseSQLModeFlags(mode string) SQLModeFlags { + var flags SQLModeFlags + for _, part := range strings.Split(mode, ",") { + switch strings.ToUpper(strings.TrimSpace(part)) { + case "ANSI": + flags |= SQLModeFlags(SQLModeANSIQuotes | SQLModePipesAsConcat | SQLModeRealAsFloat) + case "ANSI_QUOTES": + flags |= SQLModeFlags(SQLModeANSIQuotes) + case "PIPES_AS_CONCAT": + flags |= SQLModeFlags(SQLModePipesAsConcat) + case "NO_BACKSLASH_ESCAPES": + flags |= SQLModeFlags(SQLModeNoBackslashEscapes) + case "REAL_AS_FLOAT": + flags |= SQLModeFlags(SQLModeRealAsFloat) + } + } + return flags +} + +func SessionSQLModeForParser(mode string) string { + return mode +} + +func (flags SQLModeFlags) Has(flag SQLModeFlag) bool { + return flags&SQLModeFlags(flag) != 0 +} diff --git a/pkg/sql/parsers/sqlparse.go b/pkg/sql/parsers/sqlparse.go index 84a4c7a4e9217..ef128db4b84cb 100644 --- a/pkg/sql/parsers/sqlparse.go +++ b/pkg/sql/parsers/sqlparse.go @@ -28,11 +28,15 @@ import ( ) func Parse(ctx context.Context, dialectType dialect.DialectType, sql string, lower int64) ([]tree.Statement, error) { + return ParseWithSQLMode(ctx, dialectType, sql, lower, "") +} + +func ParseWithSQLMode(ctx context.Context, dialectType dialect.DialectType, sql string, lower int64, sqlMode string) ([]tree.Statement, error) { _, task := gotrace.NewTask(context.TODO(), "parser.Parse") defer task.End() switch dialectType { case dialect.MYSQL: - return mysql.Parse(ctx, sql, lower) + return mysql.ParseWithSQLMode(ctx, sql, lower, sqlMode) case dialect.POSTGRESQL: return postgresql.Parse(ctx, sql) default: @@ -41,9 +45,13 @@ func Parse(ctx context.Context, dialectType dialect.DialectType, sql string, low } func ParseOne(ctx context.Context, dialectType dialect.DialectType, sql string, lower int64) (tree.Statement, error) { + return ParseOneWithSQLMode(ctx, dialectType, sql, lower, "") +} + +func ParseOneWithSQLMode(ctx context.Context, dialectType dialect.DialectType, sql string, lower int64, sqlMode string) (tree.Statement, error) { switch dialectType { case dialect.MYSQL: - return mysql.ParseOne(ctx, sql, lower) + return mysql.ParseOneWithSQLMode(ctx, sql, lower, sqlMode) case dialect.POSTGRESQL: return postgresql.ParseOne(ctx, sql) default: diff --git a/pkg/sql/plan/build_dcl.go b/pkg/sql/plan/build_dcl.go index 7876df2e9d951..75de12e6a817e 100644 --- a/pkg/sql/plan/build_dcl.go +++ b/pkg/sql/plan/build_dcl.go @@ -74,15 +74,21 @@ func buildPrepare(stmt tree.Prepare, ctx CompilerContext) (*Plan, error) { if err != nil { v = int64(1) } - stmts, err := mysql.Parse(ctx.GetContext(), pstmt.Sql, v.(int64)) + sqlMode := "" + if mode, modeErr := ctx.ResolveVariable("sql_mode", true, false); modeErr == nil { + if modeStr, ok := mode.(string); ok { + sqlMode = mysql.SessionSQLModeForParser(modeStr) + } + } + stmts, err := mysql.ParseWithSQLMode(ctx.GetContext(), pstmt.Sql, v.(int64), sqlMode) + if err != nil { + return nil, err + } defer func() { for _, s := range stmts { s.Free() } }() - if err != nil { - return nil, err - } if len(stmts) > 1 { return nil, moerr.NewInvalidInput(ctx.GetContext(), "cannot prepare multi statements") } diff --git a/pkg/sql/plan/build_ddl.go b/pkg/sql/plan/build_ddl.go index 41af69b54014e..385c571e00a75 100644 --- a/pkg/sql/plan/build_ddl.go +++ b/pkg/sql/plan/build_ddl.go @@ -40,6 +40,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/sql/colexec/externalwrite" "github.com/matrixorigin/matrixone/pkg/sql/features" "github.com/matrixorigin/matrixone/pkg/sql/parsers/dialect" + "github.com/matrixorigin/matrixone/pkg/sql/parsers/dialect/mysql" "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" "github.com/matrixorigin/matrixone/pkg/sql/util" mokafka "github.com/matrixorigin/matrixone/pkg/stream/adapter/kafka" @@ -83,6 +84,7 @@ func genDynamicTableDef(ctx CompilerContext, stmt *tree.Select) (*plan.TableDef, viewData, err := json.Marshal(ViewData{ Stmt: ctx.GetRootSql(), DefaultDatabase: ctx.DefaultDatabase(), + SQLMode: parserSQLModeFromContext(ctx), SecurityType: getViewSecurityTypeFromContext(ctx), }) if err != nil { @@ -124,6 +126,17 @@ func getViewSecurityTypeFromContext(ctx CompilerContext) string { return "DEFINER" } +func parserSQLModeFromContext(ctx CompilerContext) *string { + sqlMode := "" + val, err := ctx.ResolveVariable("sql_mode", true, false) + if err == nil { + if s, ok := val.(string); ok { + sqlMode = mysql.SessionSQLModeForParser(s) + } + } + return &sqlMode +} + func genViewTableDef(ctx CompilerContext, stmt *tree.Select) (*plan.TableDef, error) { var tableDef plan.TableDef @@ -175,6 +188,7 @@ func genViewTableDef(ctx CompilerContext, stmt *tree.Select) (*plan.TableDef, er viewData, err := json.Marshal(ViewData{ Stmt: viewSql, DefaultDatabase: ctx.DefaultDatabase(), + SQLMode: parserSQLModeFromContext(ctx), SecurityType: getViewSecurityTypeFromContext(ctx), }) if err != nil { diff --git a/pkg/sql/plan/build_show.go b/pkg/sql/plan/build_show.go index 70061442dfaa1..daf6e004397b8 100644 --- a/pkg/sql/plan/build_show.go +++ b/pkg/sql/plan/build_show.go @@ -1097,7 +1097,7 @@ func buildShowCreatePublications(stmt *tree.ShowCreatePublications, ctx Compiler if err != nil { return nil, err } - sql := fmt.Sprintf("SELECT pub_name AS Publication, 'CREATE PUBLICATION ' || pub_name || ' DATABASE ' || database_name || CASE table_list WHEN '*' THEN '' ELSE ' TABLE ' || table_list END || ' ACCOUNT ' || account_list AS 'Create Publication' FROM mo_catalog.mo_pubs WHERE account_id = %d AND pub_name='%s';", accountId, stmt.Name) + sql := fmt.Sprintf("SELECT pub_name AS Publication, concat('CREATE PUBLICATION ', pub_name, ' DATABASE ', database_name, CASE table_list WHEN '*' THEN '' ELSE concat(' TABLE ', table_list) END, ' ACCOUNT ', account_list) AS 'Create Publication' FROM mo_catalog.mo_pubs WHERE account_id = %d AND pub_name='%s';", accountId, stmt.Name) ctx.SetContext(defines.AttachAccountId(ctx.GetContext(), catalog.System_Account)) return returnByRewriteSQL(ctx, sql, ddlType) } diff --git a/pkg/sql/plan/build_test.go b/pkg/sql/plan/build_test.go index f7c3b285e39d1..0bb8fcd116c49 100644 --- a/pkg/sql/plan/build_test.go +++ b/pkg/sql/plan/build_test.go @@ -37,6 +37,18 @@ import ( "github.com/matrixorigin/matrixone/pkg/util/executor" ) +type sqlModeMockCompilerContext struct { + *MockCompilerContext + sqlMode string +} + +func (c *sqlModeMockCompilerContext) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error) { + if varName == "sql_mode" { + return c.sqlMode, nil + } + return c.MockCompilerContext.ResolveVariable(varName, isSystemVar, isGlobalVar) +} + func BenchmarkInsert(b *testing.B) { typ := types.T_varchar.ToType() typ.Width = 1024 @@ -65,6 +77,16 @@ func BenchmarkInsert(b *testing.B) { } } +func TestBuildPrepareStringUsesSessionSQLMode(t *testing.T) { + ctx := &sqlModeMockCompilerContext{ + MockCompilerContext: NewMockCompilerContext(true), + sqlMode: "PIPES_AS_CONCAT", + } + p, err := buildPrepare(tree.NewPrepareString("stmt_sql_mode", "select 'a'||'b'"), ctx) + require.NoError(t, err) + require.NotNil(t, p.GetDcl().GetPrepare().GetPlan()) +} + // only use in developing func TestSingleSQL(t *testing.T) { // sql := "INSERT INTO NATION VALUES (1, 'NAME1',21, 'COMMENT1'), (2, 'NAME2', 22, 'COMMENT2')" diff --git a/pkg/sql/plan/query_builder.go b/pkg/sql/plan/query_builder.go index c1619a9eed11b..d257c0c5745d9 100644 --- a/pkg/sql/plan/query_builder.go +++ b/pkg/sql/plan/query_builder.go @@ -4749,7 +4749,11 @@ func (builder *QueryBuilder) bindView( return 0, err } - originStmts, err := mysql.Parse(builder.GetContext(), viewData.Stmt, ctx.lower) + parserSQLMode := legacyViewParserSQLMode + if viewData.SQLMode != nil { + parserSQLMode = *viewData.SQLMode + } + originStmts, err := mysql.ParseWithSQLMode(builder.GetContext(), viewData.Stmt, ctx.lower, parserSQLMode) defer func() { for _, s := range originStmts { s.Free() @@ -4817,6 +4821,10 @@ func (builder *QueryBuilder) bindView( return } +// ViewData persisted before parser SQL mode was recorded used MatrixOne's +// legacy grammar where || meant concat. +const legacyViewParserSQLMode = "PIPES_AS_CONCAT" + func (builder *QueryBuilder) buildTable(stmt tree.TableExpr, ctx *BindContext, preNodeId int32, leftCtx *BindContext) (nodeID int32, err error) { switch tbl := stmt.(type) { case *tree.Select: diff --git a/pkg/sql/plan/query_builder_test.go b/pkg/sql/plan/query_builder_test.go index 4c24375c475ce..296283868bd3b 100644 --- a/pkg/sql/plan/query_builder_test.go +++ b/pkg/sql/plan/query_builder_test.go @@ -99,6 +99,134 @@ func TestBuildTable_AlterView(t *testing.T) { assert.Error(t, err) } +func TestBindViewUsesStoredSQLModeForPipesAsConcat(t *testing.T) { + sqlMode := "PIPES_AS_CONCAT" + builder, nodeID := buildViewForSQLModeTest(t, "v_pipe", ViewData{ + Stmt: "create view v_pipe as select a||b as c from t", + DefaultDatabase: "db", + SQLMode: &sqlMode, + SecurityType: "DEFINER", + }) + + projectExpr := builder.qry.Nodes[nodeID].ProjectList[0] + require.True(t, exprContainsFunc(projectExpr, "concat")) + require.False(t, exprContainsFunc(projectExpr, "or")) +} + +func TestBindViewUsesStoredSQLModeForANSIQuotes(t *testing.T) { + sqlMode := "ANSI_QUOTES" + builder, nodeID := buildViewForSQLModeTest(t, "v_ansi", ViewData{ + Stmt: `create view v_ansi as select "a" as c from t`, + DefaultDatabase: "db", + SQLMode: &sqlMode, + SecurityType: "DEFINER", + }) + + projectExpr := builder.qry.Nodes[nodeID].ProjectList[0] + require.NotNil(t, projectExpr.GetCol()) + require.Equal(t, "a", projectExpr.GetCol().Name) +} + +func TestBindViewWithoutStoredSQLModeUsesLegacyPipeConcat(t *testing.T) { + builder, nodeID := buildViewForSQLModeTest(t, "v_legacy_pipe", ViewData{ + Stmt: "create view v_legacy_pipe as select a||b as c from t", + DefaultDatabase: "db", + SecurityType: "DEFINER", + }) + + projectExpr := builder.qry.Nodes[nodeID].ProjectList[0] + require.True(t, exprContainsFunc(projectExpr, "concat")) + require.False(t, exprContainsFunc(projectExpr, "or")) +} + +func buildViewForSQLModeTest(t *testing.T, viewName string, viewData ViewData) (*QueryBuilder, int32) { + t.Helper() + ctrl := gomock.NewController(t) + t.Cleanup(ctrl.Finish) + + type arg struct { + obj *ObjectRef + table *TableDef + } + viewJSON, err := json.Marshal(viewData) + require.NoError(t, err) + + store := map[string]arg{ + "db.t": { + obj: &plan.ObjectRef{SchemaName: "db", ObjName: "t"}, + table: &plan.TableDef{ + DbName: "db", + Name: "t", + TableType: catalog.SystemOrdinaryRel, + Cols: []*ColDef{ + {Name: "a", Typ: plan.Type{Id: int32(types.T_varchar), Width: types.MaxVarcharLen, Table: "t"}}, + {Name: "b", Typ: plan.Type{Id: int32(types.T_varchar), Width: types.MaxVarcharLen, Table: "t"}}, + }, + }, + }, + "db." + viewName: { + obj: &plan.ObjectRef{SchemaName: "db", ObjName: viewName}, + table: &plan.TableDef{ + DbName: "db", + Name: viewName, + TableType: catalog.SystemViewRel, + ViewSql: &plan.ViewDef{View: string(viewJSON)}, + }, + }, + } + + ctx := NewMockCompilerContext2(ctrl) + ctx.EXPECT().ResolveVariable(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil).AnyTimes() + ctx.EXPECT().Resolve(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn( + func(schemaName string, tableName string, snapshot *Snapshot) (*ObjectRef, *TableDef, error) { + if schemaName == "" { + schemaName = "db" + } + x := store[schemaName+"."+tableName] + return x.obj, x.table, nil + }).AnyTimes() + ctx.EXPECT().GetContext().Return(context.Background()).AnyTimes() + ctx.EXPECT().GetProcess().Return(nil).AnyTimes() + ctx.EXPECT().Stats(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + ctx.EXPECT().GetBuildingAlterView().Return(false, "", "").AnyTimes() + ctx.EXPECT().DatabaseExists(gomock.Any(), gomock.Any()).Return(true).AnyTimes() + ctx.EXPECT().GetLowerCaseTableNames().Return(int64(1)).AnyTimes() + ctx.EXPECT().GetSubscriptionMeta(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + ctx.EXPECT().DefaultDatabase().Return("db").AnyTimes() + ctx.EXPECT().GetAccountId().Return(uint32(0), nil).AnyTimes() + ctx.EXPECT().GetQueryingSubscription().Return(nil).AnyTimes() + + builder := NewQueryBuilder(plan.Query_SELECT, ctx, false, false) + bindCtx := NewBindContext(builder, nil) + tableName := &tree.TableName{} + tableName.SchemaName = "db" + tableName.ObjectName = tree.Identifier(viewName) + nodeID, err := builder.buildTable(tableName, bindCtx, -1, nil) + require.NoError(t, err) + require.Equal(t, plan.Node_PROJECT, builder.qry.Nodes[nodeID].NodeType) + require.Len(t, builder.qry.Nodes[nodeID].ProjectList, 1) + return builder, nodeID +} + +func exprContainsFunc(expr *plan.Expr, name string) bool { + if expr == nil { + return false + } + fn := expr.GetF() + if fn == nil { + return false + } + if fn.Func.GetObjName() == name { + return true + } + for _, arg := range fn.Args { + if exprContainsFunc(arg, name) { + return true + } + } + return false +} + func TestTempTableAliasBindingUsesOriginName(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() diff --git a/pkg/sql/plan/types.go b/pkg/sql/plan/types.go index bac6dc075e975..a5ebf4bf8f9f1 100644 --- a/pkg/sql/plan/types.go +++ b/pkg/sql/plan/types.go @@ -172,7 +172,8 @@ type BaseOptimizer struct { type ViewData struct { Stmt string DefaultDatabase string - SecurityType string `json:"security_type,omitempty"` + SQLMode *string `json:"sql_mode,omitempty"` + SecurityType string `json:"security_type,omitempty"` } type QueryBuilder struct { diff --git a/test/distributed/cases/ddl/alter.result b/test/distributed/cases/ddl/alter.result index 59cd3950e4ddd..a1b839d9846c9 100644 --- a/test/distributed/cases/ddl/alter.result +++ b/test/distributed/cases/ddl/alter.result @@ -403,7 +403,7 @@ count(*) drop table index03; drop table if exists t4; create table t4(col1 varchar(256) primary key, col2 int); -insert into t4 select "matrixone " || "mo " || result, 1 from generate_series (1, 500000)g; +insert into t4 select concat('matrixone ', 'mo ', result), 1 from generate_series (1, 500000)g; select count(*) from t4; count(*) 500000 @@ -417,7 +417,7 @@ count(*) drop table t4; drop table if exists t5; create table t5(col1 varchar(256) primary key, col2 int); -insert into t5 select "matrixone " || "mo " || result, 1 from generate_series (1, 500000)g; +insert into t5 select concat('matrixone ', 'mo ', result), 1 from generate_series (1, 500000)g; select count(*) from t5; count(*) 500000 diff --git a/test/distributed/cases/ddl/alter.sql b/test/distributed/cases/ddl/alter.sql index 2657463bbfcdd..337ef8bed4746 100644 --- a/test/distributed/cases/ddl/alter.sql +++ b/test/distributed/cases/ddl/alter.sql @@ -298,7 +298,7 @@ drop table index03; -- varchar column add unique key drop table if exists t4; create table t4(col1 varchar(256) primary key, col2 int); -insert into t4 select "matrixone " || "mo " || result, 1 from generate_series (1, 500000)g; +insert into t4 select concat('matrixone ', 'mo ', result), 1 from generate_series (1, 500000)g; select count(*) from t4; alter table t4 add unique key `title01`(`col1`); show create table t4; @@ -308,7 +308,7 @@ drop table t4; -- add unique key with parser 'using btree' drop table if exists t5; create table t5(col1 varchar(256) primary key, col2 int); -insert into t5 select "matrixone " || "mo " || result, 1 from generate_series (1, 500000)g; +insert into t5 select concat('matrixone ', 'mo ', result), 1 from generate_series (1, 500000)g; select count(*) from t5; alter table t5 add unique key `title01`(`col1`) using btree; show create table t5; diff --git a/test/distributed/cases/dml/delete/delete.result b/test/distributed/cases/dml/delete/delete.result index 93c6d1aaf2d3b..1d925758d1cf6 100644 --- a/test/distributed/cases/dml/delete/delete.result +++ b/test/distributed/cases/dml/delete/delete.result @@ -320,7 +320,7 @@ select * from t2; 1 ¦ 2 ¦ 1 ¦ 2 drop table if exists t7; create table t7(a int primary key, b int unique key, c varchar(20) unique key); -insert into t7 select result, result, "a"||result from generate_series(1,20000) g; +insert into t7 select result, result, concat('a', result) from generate_series(1,20000) g; select count(*) from t7; ➤ count(*)[-5,64,0] 𝄀 20000 diff --git a/test/distributed/cases/dml/delete/delete.test b/test/distributed/cases/dml/delete/delete.test index 772c32210e7f1..b733f429d63a3 100644 --- a/test/distributed/cases/dml/delete/delete.test +++ b/test/distributed/cases/dml/delete/delete.test @@ -236,7 +236,7 @@ select * from t2; drop table if exists t7; create table t7(a int primary key, b int unique key, c varchar(20) unique key); -insert into t7 select result, result, "a"||result from generate_series(1,20000) g; +insert into t7 select result, result, concat('a', result) from generate_series(1,20000) g; select count(*) from t7; delete from t7 where a <= 2000; @@ -386,4 +386,4 @@ commit; select * from repro_delete_error; select count(*) from repro_delete_error; drop database if exists db1; -drop database if exists db2; \ No newline at end of file +drop database if exists db2; diff --git a/test/distributed/cases/dml/select/select.result b/test/distributed/cases/dml/select/select.result index ca305fafed1d1..3593994d18dd7 100644 --- a/test/distributed/cases/dml/select/select.result +++ b/test/distributed/cases/dml/select/select.result @@ -657,14 +657,14 @@ select * from t1 where a in (3,3,3,2,1); 3 ¦ 3 drop table if exists t1; create table t1 (a int, b varchar, c int, primary key (c,a), key idx_b(b)); -insert into t1 select result, result || "_a",result+100000000 from generate_series(1,10000) g; +insert into t1 select result, concat(result, '_a'),result+100000000 from generate_series(1,10000) g; select * from t1 where b in ("11_a","21_a"); ➤ a[4,32,0] ¦ b[12,-1,0] ¦ c[4,32,0] 𝄀 11 ¦ 11_a ¦ 100000011 𝄀 21 ¦ 21_a ¦ 100000021 drop table if exists t1; create table t1(a int primary key, b int, c varchar(200)); -insert into t1 select result, result, "aabbccddeeffgghhii_"||result from generate_series (1, 100000)g; +insert into t1 select result, result, concat('aabbccddeeffgghhii_', result) from generate_series (1, 100000)g; select a from t1 where c in ("123456789012345678901234567890","123456789012345678901234567890","aabbccddeeffgghhii_100000"); ➤ a[4,32,0] 𝄀 100000 diff --git a/test/distributed/cases/dml/select/select.test b/test/distributed/cases/dml/select/select.test index 4bc9eaac42dd4..23438c9920017 100755 --- a/test/distributed/cases/dml/select/select.test +++ b/test/distributed/cases/dml/select/select.test @@ -293,12 +293,12 @@ select * from t1 where a in (3,3,3,2,1); drop table if exists t1; create table t1 (a int, b varchar, c int, primary key (c,a), key idx_b(b)); -insert into t1 select result, result || "_a",result+100000000 from generate_series(1,10000) g; +insert into t1 select result, concat(result, '_a'),result+100000000 from generate_series(1,10000) g; select * from t1 where b in ("11_a","21_a"); drop table if exists t1; create table t1(a int primary key, b int, c varchar(200)); -insert into t1 select result, result, "aabbccddeeffgghhii_"||result from generate_series (1, 100000)g; +insert into t1 select result, result, concat('aabbccddeeffgghhii_', result) from generate_series (1, 100000)g; select a from t1 where c in ("123456789012345678901234567890","123456789012345678901234567890","aabbccddeeffgghhii_100000"); drop table if exists t1; diff --git a/test/distributed/cases/dtype/text_blob.result b/test/distributed/cases/dtype/text_blob.result index 9514f9eb63f48..efb1b32ceea6a 100644 --- a/test/distributed/cases/dtype/text_blob.result +++ b/test/distributed/cases/dtype/text_blob.result @@ -187,7 +187,7 @@ count(b1) select max(b2),min(b3) from blob_01; max(b2) min(b3) 中文 0001-01-01 -select b1||b2 from blob_01; +select concat(b1,b2) from blob_01; concat(b1, b2) no中文 hhhh@126.com diff --git a/test/distributed/cases/dtype/text_blob.sql b/test/distributed/cases/dtype/text_blob.sql index 9ba67096f3f0e..23d3a5b2e631a 100644 --- a/test/distributed/cases/dtype/text_blob.sql +++ b/test/distributed/cases/dtype/text_blob.sql @@ -86,7 +86,7 @@ select length(b1),length(b2),length(b3) from blob_01; select substring(b3,5),substr(b2,-3,2) from blob_01; select count(b1) from blob_01; select max(b2),min(b3) from blob_01; -select b1||b2 from blob_01; +select concat(b1,b2) from blob_01; -- ddl and dml create table blob_02(b1 blob primary key,b2 int); diff --git a/test/distributed/cases/function/builtin.result b/test/distributed/cases/function/builtin.result index 1fe15e1c59715..5ba8c4b8cacbc 100755 --- a/test/distributed/cases/function/builtin.result +++ b/test/distributed/cases/function/builtin.result @@ -811,7 +811,7 @@ null null drop table t1; create table testt(i int, j int, k int, d1 decimal(10, 2), d2 decimal(10, 2), ts1 timestamp, ts2 timestamp, t varchar(100)); -insert into testt select result, result % 7, result + 1, result + 3.14, result + 2.72, current_timestamp, current_timestamp, 'foo' || result from generate_series(1, 100) tmpt; +insert into testt select result, result % 7, result + 1, result + 3.14, result + 2.72, current_timestamp, current_timestamp, concat('foo', result) from generate_series(1, 100) tmpt; select greatest(1, 2, 3); greatest(1, 2, 3) 3 diff --git a/test/distributed/cases/function/builtin.sql b/test/distributed/cases/function/builtin.sql index e5d7fb5031b33..c2af5b7fcae2e 100755 --- a/test/distributed/cases/function/builtin.sql +++ b/test/distributed/cases/function/builtin.sql @@ -509,7 +509,7 @@ select trim(null from null) from t1; drop table t1; create table testt(i int, j int, k int, d1 decimal(10, 2), d2 decimal(10, 2), ts1 timestamp, ts2 timestamp, t varchar(100)); -insert into testt select result, result % 7, result + 1, result + 3.14, result + 2.72, current_timestamp, current_timestamp, 'foo' || result from generate_series(1, 100) tmpt; +insert into testt select result, result % 7, result + 1, result + 3.14, result + 2.72, current_timestamp, current_timestamp, concat('foo', result) from generate_series(1, 100) tmpt; select greatest(1, 2, 3); select least(1, 2, 3); select greatest(3, 2, 1); diff --git a/test/distributed/cases/function/func_json_row.result b/test/distributed/cases/function/func_json_row.result index 5492742b57fd5..6129d68b91cc4 100644 --- a/test/distributed/cases/function/func_json_row.result +++ b/test/distributed/cases/function/func_json_row.result @@ -167,24 +167,24 @@ id cast(json_row(null, js) as json) select 'agg'; agg agg -select count(*), cast('[' || group_concat(json_row(id, bi, d, d128, t, js)) || ']' as json) from jrt; -count(*) cast(concat(concat([, group_concat(json_row(id, bi, d, d128, t, js), ,)), ]) as json) +select count(*), cast(concat('[', group_concat(json_row(id, bi, d, d128, t, js)), ']') as json) from jrt; +count(*) cast(concat([, group_concat(json_row(id, bi, d, d128, t, js), ,), ]) as json) 20 [[1, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [2, 11111111111111, 0.2222222, 3.1415926536, "ttt\"ttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [3, 11111111111111, 0.2222222, 3.1415926536, "tttt\"\"tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [4, 11111111111111, 0.2222222, 3.1415926536, "tttt\"\"\"tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [5, 11111111111111, 0.2222222, 3.1415926536, "tttt\"\"\"\"tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [6, 11111111111111, 0.2222222, 3.1415926536, "tttt'tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [7, 11111111111111, 0.2222222, 3.1415926536, "tttt''tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [8, 11111111111111, 0.2222222, 3.1415926536, "tttt}tttt", {"foo": "bar", "zoo": [1, 2, 3]}], [9, 11111111111111, 0.2222222, 3.1415926536, "ttt}ttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [10, 11111111111111, 0.2222222, 3.1415926536, "tttttttt[[[[", {"foo": "bar", "zoo": [1, 2, 3]}], [11, 11111111111111, 0.2222222, 3.1415926536, "tttttttt]]]]", {"foo": "bar", "zoo": [1, 2, 3]}], [12, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [13, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [14, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [15, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [16, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [17, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [18, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [19, 11111111111111, 0.2222222, 3.1415926536, "tttttttt", {"foo": "bar", "zoo": [1, 2, 3]}], [1000, null, null, null, null, null]] -select b, count(*), '[' || group_concat(json_row(id)) || ']' as js from jrt group by b; +select b, count(*), concat('[', group_concat(json_row(id)), ']') as js from jrt group by b; b count(*) js 1 17 [[1],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[15],[16],[17],[18],[19]] 0 2 [[2],[14]] null 1 [[1000]] -select b, '[' || json_row(id, bi, d, d128, t, js) || ']' as js from jrt where b = false; +select b, concat('[', json_row(id, bi, d, d128, t, js), ']') as js from jrt where b = false; b js 0 [[2,11111111111111,0.2222222,3.1415926536,"ttt\"ttttt",{"foo": "bar", "zoo": [1, 2, 3]}]] 0 [[14,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}]] -select b, count(*), '[' || group_concat(json_row(id, bi, d, d128, t, js)) || ']' as js from jrt group by b; +select b, count(*), concat('[', group_concat(json_row(id, bi, d, d128, t, js)), ']') as js from jrt group by b; b count(*) js 1 17 [[1,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[3,11111111111111,0.2222222,3.1415926536,"tttt\"\"tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[4,11111111111111,0.2222222,3.1415926536,"tttt\"\"\"tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[5,11111111111111,0.2222222,3.1415926536,"tttt\"\"\"\"tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[6,11111111111111,0.2222222,3.1415926536,"tttt'tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[7,11111111111111,0.2222222,3.1415926536,"tttt''tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[8,11111111111111,0.2222222,3.1415926536,"tttt}tttt",{"foo": "bar", "zoo": [1, 2, 3]}],[9,11111111111111,0.2222222,3.1415926536,"ttt}ttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[10,11111111111111,0.2222222,3.1415926536,"tttttttt[[[[",{"foo": "bar", "zoo": [1, 2, 3]}],[11,11111111111111,0.2222222,3.1415926536,"tttttttt]]]]",{"foo": "bar", "zoo": [1, 2, 3]}],[12,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[13,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[15,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[16,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[17,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[18,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[19,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}]] 0 2 [[2,11111111111111,0.2222222,3.1415926536,"ttt\"ttttt",{"foo": "bar", "zoo": [1, 2, 3]}],[14,11111111111111,0.2222222,3.1415926536,"tttttttt",{"foo": "bar", "zoo": [1, 2, 3]}]] null 1 [[1000,null,null,null,null,null]] -select b, '[' || group_concat(t, t, t, t, t) || ']' as js from jrt group by b; +select b, concat('[', group_concat(t, t, t, t, t), ']') as js from jrt group by b; b js 1 [tttttttttttttttttttttttttttttttttttttttt,tttt""tttttttt""tttttttt""tttttttt""tttttttt""tttt,tttt"""tttttttt"""tttttttt"""tttttttt"""tttttttt"""tttt,tttt""""tttttttt""""tttttttt""""tttttttt""""tttttttt""""tttt,tttt'tttttttt'tttttttt'tttttttt'tttttttt'tttt,tttt''tttttttt''tttttttt''tttttttt''tttttttt''tttt,tttt}tttttttt}tttttttt}tttttttt}tttttttt}tttt,ttt}tttttttt}tttttttt}tttttttt}tttttttt}ttttt,tttttttt[[[[tttttttt[[[[tttttttt[[[[tttttttt[[[[tttttttt[[[[,tttttttt]]]]tttttttt]]]]tttttttt]]]]tttttttt]]]]tttttttt]]]],tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt,tttttttttttttttttttttttttttttttttttttttt] 0 [ttt"tttttttt"tttttttt"tttttttt"tttttttt"ttttt,tttttttttttttttttttttttttttttttttttttttt] diff --git a/test/distributed/cases/function/func_json_row.sql b/test/distributed/cases/function/func_json_row.sql index 99d6cb6335037..6467c524a4880 100644 --- a/test/distributed/cases/function/func_json_row.sql +++ b/test/distributed/cases/function/func_json_row.sql @@ -45,15 +45,15 @@ select id, cast(json_row(null, js) as json) from jrt; -- aggregate select 'agg'; -select count(*), cast('[' || group_concat(json_row(id, bi, d, d128, t, js)) || ']' as json) from jrt; +select count(*), cast(concat('[', group_concat(json_row(id, bi, d, d128, t, js)), ']') as json) from jrt; -- group_concat bug -select b, count(*), '[' || group_concat(json_row(id)) || ']' as js from jrt group by b; -select b, '[' || json_row(id, bi, d, d128, t, js) || ']' as js from jrt where b = false; -select b, count(*), '[' || group_concat(json_row(id, bi, d, d128, t, js)) || ']' as js from jrt group by b; +select b, count(*), concat('[', group_concat(json_row(id)), ']') as js from jrt group by b; +select b, concat('[', json_row(id, bi, d, d128, t, js), ']') as js from jrt where b = false; +select b, count(*), concat('[', group_concat(json_row(id, bi, d, d128, t, js)), ']') as js from jrt group by b; -- esp, this one. -select b, '[' || group_concat(t, t, t, t, t) || ']' as js from jrt group by b; +select b, concat('[', group_concat(t, t, t, t, t), ']') as js from jrt group by b; -- -- failure @@ -61,5 +61,3 @@ select b, '[' || group_concat(t, t, t, t, t) || ']' as js from jrt group by b; select json_row(id, cast(vc as varbinary)) from jrt; drop table jrt; - - diff --git a/test/distributed/cases/optimizer/index.result b/test/distributed/cases/optimizer/index.result index 242a77ca86fef..5c1f39164aab0 100644 --- a/test/distributed/cases/optimizer/index.result +++ b/test/distributed/cases/optimizer/index.result @@ -312,7 +312,7 @@ update t1 set c1=c1+1000000, c2=1,c3=c3-1000000 where c2=1; delete from t1; drop table t1; create table t1 (a timestamp, b varchar(10), key(b)); -insert into t1 select "2024-01-01 10:10:10", "a"||result from generate_series(1,200000)g; +insert into t1 select "2024-01-01 10:10:10", concat('a', result) from generate_series(1,200000)g; select * from t1 where a >= "2020-01-01 10:10:10" and a <= "2034-01-01 10:10:10" and b in ("a1"); ➤ a[93,64,0] ¦ b[12,-1,0] 𝄀 2024-01-01 10:10:10 ¦ a1 diff --git a/test/distributed/cases/optimizer/index.test b/test/distributed/cases/optimizer/index.test index 3d8eee1988159..26c646bc5707c 100644 --- a/test/distributed/cases/optimizer/index.test +++ b/test/distributed/cases/optimizer/index.test @@ -120,7 +120,7 @@ update t1 set c1=c1+1000000, c2=1,c3=c3-1000000 where c2=1; delete from t1; drop table t1; create table t1 (a timestamp, b varchar(10), key(b)); -insert into t1 select "2024-01-01 10:10:10", "a"||result from generate_series(1,200000)g; +insert into t1 select "2024-01-01 10:10:10", concat('a', result) from generate_series(1,200000)g; select * from t1 where a >= "2020-01-01 10:10:10" and a <= "2034-01-01 10:10:10" and b in ("a1"); drop table if exists t14; CREATE TABLE t14 (`pseudo` char(35) NOT NULL default '',`pseudo1` char(35) NOT NULL default '', diff --git a/test/distributed/cases/pessimistic_transaction/fulltext.result b/test/distributed/cases/pessimistic_transaction/fulltext.result index 13aaeff3431c9..4099bcfb7454d 100644 --- a/test/distributed/cases/pessimistic_transaction/fulltext.result +++ b/test/distributed/cases/pessimistic_transaction/fulltext.result @@ -5,7 +5,7 @@ b int, c varchar(20), primary key(a, b) ); -insert into t0 select result, result, result || 'test' from generate_series(1, 100) g; +insert into t0 select result, result, concat(result, 'test') from generate_series(1, 100) g; create fulltext index ftidx on t0 (c); drop table if exists t1; create table t1 ( diff --git a/test/distributed/cases/pessimistic_transaction/fulltext.sql b/test/distributed/cases/pessimistic_transaction/fulltext.sql index bb9d335f7fc31..55176f57334f6 100644 --- a/test/distributed/cases/pessimistic_transaction/fulltext.sql +++ b/test/distributed/cases/pessimistic_transaction/fulltext.sql @@ -5,7 +5,7 @@ create table t0 ( c varchar(20), primary key(a, b) ); -insert into t0 select result, result, result || 'test' from generate_series(1, 100) g; +insert into t0 select result, result, concat(result, 'test') from generate_series(1, 100) g; create fulltext index ftidx on t0 (c); drop table if exists t1; create table t1 ( diff --git a/test/distributed/cases/qexec/group.result b/test/distributed/cases/qexec/group.result index 70a110aa171d5..b81fd3a81ffe2 100644 --- a/test/distributed/cases/qexec/group.result +++ b/test/distributed/cases/qexec/group.result @@ -10,13 +10,13 @@ j json, bin varbinary); insert into t select result, result % 2 = 0, result % 10, result % 100, result % 1000, result, -case when result % 10 = 0 then null else 'foobar' || result || 'zoo' end, +case when result % 10 = 0 then null else concat('foobar', result, 'zoo') end, case when result % 10 = 0 then null else result end, case when result % 10 = 0 then null else result end, case when result % 10 = 0 then null else result end, '2021-02-01 11:11:11', '2021-02-01 11:11:11', '2021-02-01', '11111111-1111-1111-1111-111111111111', -'{"foo": "bar", "zoo": [1, 2, ' || result || ']}', +concat('{"foo": "bar", "zoo": [1, 2, ', result, ']}'), cast(result as varbinary) from generate_series(1, 1000000) gt; select count(*) from t; diff --git a/test/distributed/cases/qexec/group.sql b/test/distributed/cases/qexec/group.sql index e4a5a257b2a16..ea23f79d1bd22 100644 --- a/test/distributed/cases/qexec/group.sql +++ b/test/distributed/cases/qexec/group.sql @@ -12,13 +12,13 @@ create table t (a int, b boolean, b2 tinyint, b3 smallint, b4 int, b5 bigint, insert into t select result, result % 2 = 0, result % 10, result % 100, result % 1000, result, - case when result % 10 = 0 then null else 'foobar' || result || 'zoo' end, + case when result % 10 = 0 then null else concat('foobar', result, 'zoo') end, case when result % 10 = 0 then null else result end, case when result % 10 = 0 then null else result end, case when result % 10 = 0 then null else result end, '2021-02-01 11:11:11', '2021-02-01 11:11:11', '2021-02-01', '11111111-1111-1111-1111-111111111111', - '{"foo": "bar", "zoo": [1, 2, ' || result || ']}', + concat('{"foo": "bar", "zoo": [1, 2, ', result, ']}'), cast(result as varbinary) from generate_series(1, 1000000) gt;