diff --git a/pkg/frontend/mysql_cmd_executor.go b/pkg/frontend/mysql_cmd_executor.go index e02af49e3fc9add54674b76a11837dd3672033d6..1b9d0e2fd535b1f9cd3b82dfe856440da82f76f3 100644 --- a/pkg/frontend/mysql_cmd_executor.go +++ b/pkg/frontend/mysql_cmd_executor.go @@ -2046,6 +2046,7 @@ func (mce *MysqlCmdExecutor) doComQuery(sql string) (retErr error) { //just status, no result set case *tree.CreateTable, *tree.DropTable, *tree.CreateDatabase, *tree.DropDatabase, *tree.CreateIndex, *tree.DropIndex, + *tree.CreateView, *tree.DropView, *tree.Insert, *tree.Update, *tree.BeginTransaction, *tree.CommitTransaction, *tree.RollbackTransaction, *tree.SetVar, @@ -2084,6 +2085,7 @@ func (mce *MysqlCmdExecutor) doComQuery(sql string) (retErr error) { switch stmt.(type) { case *tree.CreateTable, *tree.DropTable, *tree.CreateDatabase, *tree.DropDatabase, *tree.CreateIndex, *tree.DropIndex, *tree.Insert, *tree.Update, + *tree.CreateView, *tree.DropView, *tree.CreateUser, *tree.DropUser, *tree.AlterUser, *tree.CreateRole, *tree.DropRole, *tree.Revoke, *tree.Grant, *tree.SetDefaultRole, *tree.SetRole, *tree.SetPassword, *tree.Delete, @@ -2248,7 +2250,9 @@ func StatementCanBeExecutedInUncommittedTransaction(stmt tree.Statement) bool { // IsDDL checks the statement is the DDL statement. func IsDDL(stmt tree.Statement) bool { switch stmt.(type) { - case *tree.CreateTable, *tree.DropTable, *tree.CreateDatabase, *tree.DropDatabase, + case *tree.CreateTable, *tree.DropTable, + *tree.CreateView, *tree.DropView, + *tree.CreateDatabase, *tree.DropDatabase, *tree.CreateIndex, *tree.DropIndex: return true } @@ -2258,7 +2262,7 @@ func IsDDL(stmt tree.Statement) bool { // IsDropStatement checks the statement is the drop statement. func IsDropStatement(stmt tree.Statement) bool { switch stmt.(type) { - case *tree.DropDatabase, *tree.DropTable, *tree.DropIndex: + case *tree.DropDatabase, *tree.DropTable, *tree.DropView, *tree.DropIndex: return true } return false diff --git a/pkg/frontend/session.go b/pkg/frontend/session.go index 4c1751cddff725cbb53bdf0297eb7209021c3a06..09a07688bb7687789be053319cc92300c93bac0a 100644 --- a/pkg/frontend/session.go +++ b/pkg/frontend/session.go @@ -633,6 +633,10 @@ func (tcc *TxnCompilerContext) DefaultDatabase() string { return tcc.dbName } +func (tcc *TxnCompilerContext) GetRootSql() string { + return tcc.ses.GetSql() +} + func (tcc *TxnCompilerContext) DatabaseExists(name string) bool { var err error //open database @@ -700,10 +704,11 @@ func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string) (*plan2. return nil, nil } - var defs []*plan2.ColDef + var cols []*plan2.ColDef + var defs []*plan2.TableDefType for _, def := range engineDefs { if attr, ok := def.(*engine.AttributeDef); ok { - defs = append(defs, &plan2.ColDef{ + cols = append(cols, &plan2.ColDef{ Name: attr.Attr.Name, Typ: &plan2.Type{ Id: int32(attr.Attr.Type.Oid), @@ -714,6 +719,29 @@ func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string) (*plan2. Primary: attr.Attr.Primary, Default: attr.Attr.Default, }) + } else if pro, ok := def.(*engine.PropertiesDef); ok { + properties := make([]*plan2.Property, len(pro.Properties)) + for i, p := range pro.Properties { + properties[i] = &plan2.Property{ + Key: p.Key, + Value: p.Value, + } + } + defs = append(defs, &plan2.TableDefType{ + Def: &plan2.TableDef_DefType_Properties{ + Properties: &plan2.PropertiesDef{ + Properties: properties, + }, + }, + }) + } else if viewDef, ok := def.(*engine.ViewDef); ok { + defs = append(defs, &plan2.TableDefType{ + Def: &plan2.TableDef_DefType_View{ + View: &plan2.ViewDef{ + View: viewDef.View, + }, + }, + }) } } if tcc.QryTyp != TXN_DEFAULT { @@ -722,7 +750,7 @@ func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string) (*plan2. return nil, nil } hideKey := hideKeys[0] - defs = append(defs, &plan2.ColDef{ + cols = append(cols, &plan2.ColDef{ Name: hideKey.Name, Typ: &plan2.Type{ Id: int32(hideKey.Type.Oid), @@ -742,7 +770,8 @@ func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string) (*plan2. tableDef := &plan2.TableDef{ Name: tableName, - Cols: defs, + Cols: cols, + Defs: defs, } return obj, tableDef } diff --git a/pkg/pb/plan/plan.pb.go b/pkg/pb/plan/plan.pb.go index 0c3e74f394517086bb5a74783380bfff8224ca9f..53559048888155f2073575671a0200b8f59776dd 100644 --- a/pkg/pb/plan/plan.pb.go +++ b/pkg/pb/plan/plan.pb.go @@ -236,7 +236,7 @@ func (x OrderBySpec_OrderByFlag) String() string { } func (OrderBySpec_OrderByFlag) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{24, 0} + return fileDescriptor_2d655ab2f7683c23, []int{25, 0} } type Node_NodeType int32 @@ -363,7 +363,7 @@ func (x Node_NodeType) String() string { } func (Node_NodeType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{28, 0} + return fileDescriptor_2d655ab2f7683c23, []int{29, 0} } type Node_JoinFlag int32 @@ -409,7 +409,7 @@ func (x Node_JoinFlag) String() string { } func (Node_JoinFlag) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{28, 1} + return fileDescriptor_2d655ab2f7683c23, []int{29, 1} } type Node_AggMode int32 @@ -437,7 +437,7 @@ func (x Node_AggMode) String() string { } func (Node_AggMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{28, 2} + return fileDescriptor_2d655ab2f7683c23, []int{29, 2} } type Query_StatementType int32 @@ -474,7 +474,7 @@ func (x Query_StatementType) String() string { } func (Query_StatementType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{30, 0} + return fileDescriptor_2d655ab2f7683c23, []int{31, 0} } type TransationControl_TclType int32 @@ -502,7 +502,7 @@ func (x TransationControl_TclType) String() string { } func (TransationControl_TclType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{31, 0} + return fileDescriptor_2d655ab2f7683c23, []int{32, 0} } type TransationBegin_TransationMode int32 @@ -530,7 +530,7 @@ func (x TransationBegin_TransationMode) String() string { } func (TransationBegin_TransationMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{32, 0} + return fileDescriptor_2d655ab2f7683c23, []int{33, 0} } type DataControl_DclType int32 @@ -570,7 +570,7 @@ func (x DataControl_DclType) String() string { } func (DataControl_DclType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{38, 0} + return fileDescriptor_2d655ab2f7683c23, []int{39, 0} } type DataDefinition_DdlType int32 @@ -652,7 +652,7 @@ func (x DataDefinition_DdlType) String() string { } func (DataDefinition_DdlType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{39, 0} + return fileDescriptor_2d655ab2f7683c23, []int{40, 0} } type Type struct { @@ -2217,6 +2217,53 @@ func (m *PropertiesDef) GetProperties() []*Property { return nil } +type ViewDef struct { + View string `protobuf:"bytes,1,opt,name=view,proto3" json:"view,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ViewDef) Reset() { *m = ViewDef{} } +func (m *ViewDef) String() string { return proto.CompactTextString(m) } +func (*ViewDef) ProtoMessage() {} +func (*ViewDef) Descriptor() ([]byte, []int) { + return fileDescriptor_2d655ab2f7683c23, []int{20} +} +func (m *ViewDef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ViewDef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ViewDef.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ViewDef) XXX_Merge(src proto.Message) { + xxx_messageInfo_ViewDef.Merge(m, src) +} +func (m *ViewDef) XXX_Size() int { + return m.ProtoSize() +} +func (m *ViewDef) XXX_DiscardUnknown() { + xxx_messageInfo_ViewDef.DiscardUnknown(m) +} + +var xxx_messageInfo_ViewDef proto.InternalMessageInfo + +func (m *ViewDef) GetView() string { + if m != nil { + return m.View + } + return "" +} + type TableDef struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Cols []*ColDef `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` @@ -2230,7 +2277,7 @@ func (m *TableDef) Reset() { *m = TableDef{} } func (m *TableDef) String() string { return proto.CompactTextString(m) } func (*TableDef) ProtoMessage() {} func (*TableDef) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{20} + return fileDescriptor_2d655ab2f7683c23, []int{21} } func (m *TableDef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2285,6 +2332,7 @@ type TableDef_DefType struct { // *TableDef_DefType_Pk // *TableDef_DefType_Idx // *TableDef_DefType_Properties + // *TableDef_DefType_View Def isTableDef_DefType_Def `protobuf_oneof:"def"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2295,7 +2343,7 @@ func (m *TableDef_DefType) Reset() { *m = TableDef_DefType{} } func (m *TableDef_DefType) String() string { return proto.CompactTextString(m) } func (*TableDef_DefType) ProtoMessage() {} func (*TableDef_DefType) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{20, 0} + return fileDescriptor_2d655ab2f7683c23, []int{21, 0} } func (m *TableDef_DefType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2339,10 +2387,14 @@ type TableDef_DefType_Idx struct { type TableDef_DefType_Properties struct { Properties *PropertiesDef `protobuf:"bytes,3,opt,name=properties,proto3,oneof" json:"properties,omitempty"` } +type TableDef_DefType_View struct { + View *ViewDef `protobuf:"bytes,4,opt,name=view,proto3,oneof" json:"view,omitempty"` +} func (*TableDef_DefType_Pk) isTableDef_DefType_Def() {} func (*TableDef_DefType_Idx) isTableDef_DefType_Def() {} func (*TableDef_DefType_Properties) isTableDef_DefType_Def() {} +func (*TableDef_DefType_View) isTableDef_DefType_Def() {} func (m *TableDef_DefType) GetDef() isTableDef_DefType_Def { if m != nil { @@ -2372,12 +2424,20 @@ func (m *TableDef_DefType) GetProperties() *PropertiesDef { return nil } +func (m *TableDef_DefType) GetView() *ViewDef { + if x, ok := m.GetDef().(*TableDef_DefType_View); ok { + return x.View + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*TableDef_DefType) XXX_OneofWrappers() []interface{} { return []interface{}{ (*TableDef_DefType_Pk)(nil), (*TableDef_DefType_Idx)(nil), (*TableDef_DefType_Properties)(nil), + (*TableDef_DefType_View)(nil), } } @@ -2396,7 +2456,7 @@ func (m *Cost) Reset() { *m = Cost{} } func (m *Cost) String() string { return proto.CompactTextString(m) } func (*Cost) ProtoMessage() {} func (*Cost) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{21} + return fileDescriptor_2d655ab2f7683c23, []int{22} } func (m *Cost) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2478,7 +2538,7 @@ func (m *ColData) Reset() { *m = ColData{} } func (m *ColData) String() string { return proto.CompactTextString(m) } func (*ColData) ProtoMessage() {} func (*ColData) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{22} + return fileDescriptor_2d655ab2f7683c23, []int{23} } func (m *ColData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2575,7 +2635,7 @@ func (m *RowsetData) Reset() { *m = RowsetData{} } func (m *RowsetData) String() string { return proto.CompactTextString(m) } func (*RowsetData) ProtoMessage() {} func (*RowsetData) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{23} + return fileDescriptor_2d655ab2f7683c23, []int{24} } func (m *RowsetData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2631,7 +2691,7 @@ func (m *OrderBySpec) Reset() { *m = OrderBySpec{} } func (m *OrderBySpec) String() string { return proto.CompactTextString(m) } func (*OrderBySpec) ProtoMessage() {} func (*OrderBySpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{24} + return fileDescriptor_2d655ab2f7683c23, []int{25} } func (m *OrderBySpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2695,7 +2755,7 @@ func (m *WindowSpec) Reset() { *m = WindowSpec{} } func (m *WindowSpec) String() string { return proto.CompactTextString(m) } func (*WindowSpec) ProtoMessage() {} func (*WindowSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{25} + return fileDescriptor_2d655ab2f7683c23, []int{26} } func (m *WindowSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2771,7 +2831,7 @@ func (m *UpdateCtx) Reset() { *m = UpdateCtx{} } func (m *UpdateCtx) String() string { return proto.CompactTextString(m) } func (*UpdateCtx) ProtoMessage() {} func (*UpdateCtx) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{26} + return fileDescriptor_2d655ab2f7683c23, []int{27} } func (m *UpdateCtx) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2879,7 +2939,7 @@ func (m *AnalyzeInfo) Reset() { *m = AnalyzeInfo{} } func (m *AnalyzeInfo) String() string { return proto.CompactTextString(m) } func (*AnalyzeInfo) ProtoMessage() {} func (*AnalyzeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{27} + return fileDescriptor_2d655ab2f7683c23, []int{28} } func (m *AnalyzeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2983,7 +3043,7 @@ func (m *Node) Reset() { *m = Node{} } func (m *Node) String() string { return proto.CompactTextString(m) } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{28} + return fileDescriptor_2d655ab2f7683c23, []int{29} } func (m *Node) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3188,7 +3248,7 @@ func (m *DeleteTableCtx) Reset() { *m = DeleteTableCtx{} } func (m *DeleteTableCtx) String() string { return proto.CompactTextString(m) } func (*DeleteTableCtx) ProtoMessage() {} func (*DeleteTableCtx) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{29} + return fileDescriptor_2d655ab2f7683c23, []int{30} } func (m *DeleteTableCtx) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3273,7 +3333,7 @@ func (m *Query) Reset() { *m = Query{} } func (m *Query) String() string { return proto.CompactTextString(m) } func (*Query) ProtoMessage() {} func (*Query) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{30} + return fileDescriptor_2d655ab2f7683c23, []int{31} } func (m *Query) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3354,7 +3414,7 @@ func (m *TransationControl) Reset() { *m = TransationControl{} } func (m *TransationControl) String() string { return proto.CompactTextString(m) } func (*TransationControl) ProtoMessage() {} func (*TransationControl) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{31} + return fileDescriptor_2d655ab2f7683c23, []int{32} } func (m *TransationControl) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3458,7 +3518,7 @@ func (m *TransationBegin) Reset() { *m = TransationBegin{} } func (m *TransationBegin) String() string { return proto.CompactTextString(m) } func (*TransationBegin) ProtoMessage() {} func (*TransationBegin) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{32} + return fileDescriptor_2d655ab2f7683c23, []int{33} } func (m *TransationBegin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3505,7 +3565,7 @@ func (m *TransationCommit) Reset() { *m = TransationCommit{} } func (m *TransationCommit) String() string { return proto.CompactTextString(m) } func (*TransationCommit) ProtoMessage() {} func (*TransationCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{33} + return fileDescriptor_2d655ab2f7683c23, []int{34} } func (m *TransationCommit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3552,7 +3612,7 @@ func (m *TransationRollback) Reset() { *m = TransationRollback{} } func (m *TransationRollback) String() string { return proto.CompactTextString(m) } func (*TransationRollback) ProtoMessage() {} func (*TransationRollback) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{34} + return fileDescriptor_2d655ab2f7683c23, []int{35} } func (m *TransationRollback) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3605,7 +3665,7 @@ func (m *Plan) Reset() { *m = Plan{} } func (m *Plan) String() string { return proto.CompactTextString(m) } func (*Plan) ProtoMessage() {} func (*Plan) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{35} + return fileDescriptor_2d655ab2f7683c23, []int{36} } func (m *Plan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3731,7 +3791,7 @@ func (m *InsertValues) Reset() { *m = InsertValues{} } func (m *InsertValues) String() string { return proto.CompactTextString(m) } func (*InsertValues) ProtoMessage() {} func (*InsertValues) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{36} + return fileDescriptor_2d655ab2f7683c23, []int{37} } func (m *InsertValues) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3813,7 +3873,7 @@ func (m *Column) Reset() { *m = Column{} } func (m *Column) String() string { return proto.CompactTextString(m) } func (*Column) ProtoMessage() {} func (*Column) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{37} + return fileDescriptor_2d655ab2f7683c23, []int{38} } func (m *Column) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3867,7 +3927,7 @@ func (m *DataControl) Reset() { *m = DataControl{} } func (m *DataControl) String() string { return proto.CompactTextString(m) } func (*DataControl) ProtoMessage() {} func (*DataControl) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{38} + return fileDescriptor_2d655ab2f7683c23, []int{39} } func (m *DataControl) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4001,7 +4061,7 @@ func (m *DataDefinition) Reset() { *m = DataDefinition{} } func (m *DataDefinition) String() string { return proto.CompactTextString(m) } func (*DataDefinition) ProtoMessage() {} func (*DataDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{39} + return fileDescriptor_2d655ab2f7683c23, []int{40} } func (m *DataDefinition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4209,7 +4269,7 @@ func (m *CreateDatabase) Reset() { *m = CreateDatabase{} } func (m *CreateDatabase) String() string { return proto.CompactTextString(m) } func (*CreateDatabase) ProtoMessage() {} func (*CreateDatabase) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{40} + return fileDescriptor_2d655ab2f7683c23, []int{41} } func (m *CreateDatabase) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4264,7 +4324,7 @@ func (m *AlterDatabase) Reset() { *m = AlterDatabase{} } func (m *AlterDatabase) String() string { return proto.CompactTextString(m) } func (*AlterDatabase) ProtoMessage() {} func (*AlterDatabase) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{41} + return fileDescriptor_2d655ab2f7683c23, []int{42} } func (m *AlterDatabase) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4319,7 +4379,7 @@ func (m *DropDatabase) Reset() { *m = DropDatabase{} } func (m *DropDatabase) String() string { return proto.CompactTextString(m) } func (*DropDatabase) ProtoMessage() {} func (*DropDatabase) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{42} + return fileDescriptor_2d655ab2f7683c23, []int{43} } func (m *DropDatabase) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4376,7 +4436,7 @@ func (m *CreateTable) Reset() { *m = CreateTable{} } func (m *CreateTable) String() string { return proto.CompactTextString(m) } func (*CreateTable) ProtoMessage() {} func (*CreateTable) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{43} + return fileDescriptor_2d655ab2f7683c23, []int{44} } func (m *CreateTable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4445,7 +4505,7 @@ func (m *AlterTable) Reset() { *m = AlterTable{} } func (m *AlterTable) String() string { return proto.CompactTextString(m) } func (*AlterTable) ProtoMessage() {} func (*AlterTable) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{44} + return fileDescriptor_2d655ab2f7683c23, []int{45} } func (m *AlterTable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4501,7 +4561,7 @@ func (m *DropTable) Reset() { *m = DropTable{} } func (m *DropTable) String() string { return proto.CompactTextString(m) } func (*DropTable) ProtoMessage() {} func (*DropTable) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{45} + return fileDescriptor_2d655ab2f7683c23, []int{46} } func (m *DropTable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4563,7 +4623,7 @@ func (m *CreateIndex) Reset() { *m = CreateIndex{} } func (m *CreateIndex) String() string { return proto.CompactTextString(m) } func (*CreateIndex) ProtoMessage() {} func (*CreateIndex) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{46} + return fileDescriptor_2d655ab2f7683c23, []int{47} } func (m *CreateIndex) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4617,7 +4677,7 @@ func (m *AlterIndex) Reset() { *m = AlterIndex{} } func (m *AlterIndex) String() string { return proto.CompactTextString(m) } func (*AlterIndex) ProtoMessage() {} func (*AlterIndex) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{47} + return fileDescriptor_2d655ab2f7683c23, []int{48} } func (m *AlterIndex) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4665,7 +4725,7 @@ func (m *DropIndex) Reset() { *m = DropIndex{} } func (m *DropIndex) String() string { return proto.CompactTextString(m) } func (*DropIndex) ProtoMessage() {} func (*DropIndex) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{48} + return fileDescriptor_2d655ab2f7683c23, []int{49} } func (m *DropIndex) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4719,7 +4779,7 @@ func (m *TruncateTable) Reset() { *m = TruncateTable{} } func (m *TruncateTable) String() string { return proto.CompactTextString(m) } func (*TruncateTable) ProtoMessage() {} func (*TruncateTable) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{49} + return fileDescriptor_2d655ab2f7683c23, []int{50} } func (m *TruncateTable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4767,7 +4827,7 @@ func (m *ShowVariables) Reset() { *m = ShowVariables{} } func (m *ShowVariables) String() string { return proto.CompactTextString(m) } func (*ShowVariables) ProtoMessage() {} func (*ShowVariables) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{50} + return fileDescriptor_2d655ab2f7683c23, []int{51} } func (m *ShowVariables) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4821,7 +4881,7 @@ func (m *SetVariables) Reset() { *m = SetVariables{} } func (m *SetVariables) String() string { return proto.CompactTextString(m) } func (*SetVariables) ProtoMessage() {} func (*SetVariables) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{51} + return fileDescriptor_2d655ab2f7683c23, []int{52} } func (m *SetVariables) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4872,7 +4932,7 @@ func (m *SetVariablesItem) Reset() { *m = SetVariablesItem{} } func (m *SetVariablesItem) String() string { return proto.CompactTextString(m) } func (*SetVariablesItem) ProtoMessage() {} func (*SetVariablesItem) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{52} + return fileDescriptor_2d655ab2f7683c23, []int{53} } func (m *SetVariablesItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4949,7 +5009,7 @@ func (m *Prepare) Reset() { *m = Prepare{} } func (m *Prepare) String() string { return proto.CompactTextString(m) } func (*Prepare) ProtoMessage() {} func (*Prepare) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{53} + return fileDescriptor_2d655ab2f7683c23, []int{54} } func (m *Prepare) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5011,7 +5071,7 @@ func (m *Execute) Reset() { *m = Execute{} } func (m *Execute) String() string { return proto.CompactTextString(m) } func (*Execute) ProtoMessage() {} func (*Execute) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{54} + return fileDescriptor_2d655ab2f7683c23, []int{55} } func (m *Execute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5065,7 +5125,7 @@ func (m *Deallocate) Reset() { *m = Deallocate{} } func (m *Deallocate) String() string { return proto.CompactTextString(m) } func (*Deallocate) ProtoMessage() {} func (*Deallocate) Descriptor() ([]byte, []int) { - return fileDescriptor_2d655ab2f7683c23, []int{55} + return fileDescriptor_2d655ab2f7683c23, []int{56} } func (m *Deallocate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5136,6 +5196,7 @@ func init() { proto.RegisterType((*PrimaryKeyDef)(nil), "plan.PrimaryKeyDef") proto.RegisterType((*Property)(nil), "plan.Property") proto.RegisterType((*PropertiesDef)(nil), "plan.PropertiesDef") + proto.RegisterType((*ViewDef)(nil), "plan.ViewDef") proto.RegisterType((*TableDef)(nil), "plan.TableDef") proto.RegisterType((*TableDef_DefType)(nil), "plan.TableDef.DefType") proto.RegisterType((*Cost)(nil), "plan.Cost") @@ -5178,286 +5239,287 @@ func init() { func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) } var fileDescriptor_2d655ab2f7683c23 = []byte{ - // 4451 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0xcf, 0x73, 0xdb, 0x56, - 0x7a, 0x04, 0x7f, 0x82, 0x1f, 0x49, 0x09, 0x7e, 0x76, 0x6c, 0x3a, 0xeb, 0x75, 0x14, 0x38, 0xf6, - 0x6a, 0x9d, 0x8d, 0x93, 0xc8, 0x8e, 0x37, 0xe9, 0xa4, 0x9b, 0xa5, 0x48, 0x58, 0x62, 0x4c, 0x91, - 0xda, 0x47, 0xc8, 0x4e, 0xb2, 0xd3, 0xe1, 0x80, 0x04, 0x48, 0xc1, 0x06, 0x01, 0x2e, 0x00, 0x5a, - 0x52, 0x4e, 0xdb, 0x43, 0x7b, 0xed, 0x4e, 0xa7, 0x33, 0xed, 0x71, 0xa7, 0x87, 0xbd, 0xf7, 0x4f, - 0xe8, 0xa5, 0xd3, 0x63, 0x67, 0x3a, 0x3d, 0x74, 0x7a, 0xd9, 0xa6, 0xc7, 0x1e, 0x7b, 0xed, 0xa1, - 0xf3, 0x7d, 0xef, 0x01, 0x04, 0x25, 0x39, 0xc9, 0x64, 0x7a, 0xe1, 0xbc, 0xef, 0x27, 0xbe, 0xf7, - 0xde, 0xf7, 0x13, 0x20, 0xc0, 0xc2, 0xb3, 0xfc, 0x07, 0x8b, 0x30, 0x88, 0x03, 0x56, 0xc4, 0xf5, - 0x9b, 0xef, 0xcd, 0xdc, 0xf8, 0x78, 0x39, 0x7e, 0x30, 0x09, 0xe6, 0xef, 0xcf, 0x82, 0x59, 0xf0, - 0x3e, 0x11, 0xc7, 0xcb, 0x29, 0x41, 0x04, 0xd0, 0x4a, 0x08, 0xe9, 0xbf, 0x53, 0xa0, 0x68, 0x9e, - 0x2d, 0x1c, 0xb6, 0x01, 0x79, 0xd7, 0x6e, 0x2a, 0x5b, 0xca, 0x76, 0x89, 0xe7, 0x5d, 0x9b, 0xbd, - 0x09, 0xaa, 0xbf, 0xf4, 0x3c, 0x6b, 0xec, 0x39, 0xcd, 0xfc, 0x96, 0xb2, 0xad, 0xf2, 0x14, 0x66, - 0xd7, 0xa0, 0x74, 0xe2, 0xda, 0xf1, 0x71, 0xb3, 0x40, 0xec, 0x02, 0x60, 0xb7, 0xa0, 0xba, 0x08, - 0x9d, 0x89, 0x1b, 0xb9, 0x81, 0xdf, 0x2c, 0x12, 0x65, 0x85, 0x60, 0x0c, 0x8a, 0x91, 0xfb, 0xb5, - 0xd3, 0x2c, 0x11, 0x81, 0xd6, 0xa8, 0x27, 0x9a, 0x58, 0x9e, 0xd3, 0x2c, 0x0b, 0x3d, 0x04, 0xe8, - 0xff, 0x58, 0x80, 0x52, 0x3b, 0xf0, 0xa3, 0x98, 0x5d, 0x87, 0xb2, 0x1b, 0xe1, 0x53, 0xc9, 0x2e, - 0x95, 0x4b, 0x88, 0x5d, 0x83, 0xa2, 0xfb, 0xca, 0xf2, 0xc8, 0xae, 0xc2, 0x7e, 0x8e, 0x13, 0x84, - 0x58, 0x1b, 0xb1, 0x68, 0x94, 0x82, 0x58, 0x5b, 0x62, 0x23, 0xc4, 0xa2, 0x41, 0x55, 0xc4, 0x46, - 0x12, 0x3b, 0x46, 0x2c, 0x5a, 0xa3, 0x22, 0x76, 0x2c, 0xb1, 0x4b, 0xc4, 0xa2, 0x39, 0x45, 0xc4, - 0x2e, 0x25, 0x76, 0x8a, 0xd8, 0xca, 0x96, 0xb2, 0x9d, 0x47, 0x2c, 0x42, 0xec, 0x4d, 0xa8, 0xd8, - 0x56, 0xec, 0x20, 0x41, 0x45, 0xeb, 0xf7, 0x73, 0x3c, 0x41, 0x30, 0x1d, 0x6a, 0xb8, 0x8c, 0xdd, - 0x39, 0xd1, 0xab, 0xd2, 0xcc, 0x2c, 0x92, 0x7d, 0x04, 0x75, 0xdb, 0x99, 0xb8, 0x73, 0xcb, 0x7b, - 0xfc, 0x08, 0x99, 0x60, 0x4b, 0xd9, 0xae, 0xed, 0x6c, 0x3e, 0xa0, 0x0b, 0x4d, 0x29, 0xfb, 0x39, - 0xbe, 0xc6, 0xc6, 0x3e, 0x86, 0x86, 0x84, 0x3f, 0xdc, 0xf9, 0x18, 0xe5, 0x6a, 0x24, 0xa7, 0xad, - 0xc9, 0x7d, 0xb8, 0xf3, 0xf1, 0x7e, 0x8e, 0xaf, 0x33, 0xb2, 0x77, 0xa0, 0x8e, 0xcf, 0x8e, 0x62, - 0x6b, 0xbe, 0x40, 0xc1, 0xba, 0xb4, 0x6a, 0x0d, 0x8b, 0xdb, 0x7a, 0x11, 0x05, 0x3e, 0x32, 0x34, - 0xe4, 0x89, 0x25, 0x08, 0xb6, 0x05, 0x60, 0x3b, 0x53, 0x6b, 0xe9, 0xc5, 0x48, 0xde, 0x90, 0x47, - 0x97, 0xc1, 0xed, 0x56, 0xa0, 0xf4, 0xca, 0xf2, 0x96, 0x8e, 0x7e, 0x0b, 0xd4, 0x43, 0x2b, 0xb4, - 0xe6, 0xdc, 0x99, 0x32, 0x0d, 0x0a, 0x8b, 0x20, 0x92, 0xae, 0x85, 0x4b, 0xbd, 0x07, 0xe5, 0x67, - 0x56, 0x88, 0x34, 0x06, 0x45, 0xdf, 0x9a, 0x3b, 0x44, 0xac, 0x72, 0x5a, 0xe3, 0xad, 0x47, 0x67, - 0x51, 0xec, 0xcc, 0xa5, 0xdf, 0x49, 0x08, 0xf1, 0x33, 0x2f, 0x18, 0xcb, 0x1b, 0x56, 0xb9, 0x84, - 0xf4, 0x3e, 0x94, 0xdb, 0x81, 0x87, 0xda, 0x6e, 0x40, 0x25, 0x74, 0xbc, 0xd1, 0xea, 0x69, 0xe5, - 0xd0, 0xf1, 0x0e, 0x83, 0x08, 0x09, 0x93, 0x40, 0x10, 0xf2, 0x82, 0x30, 0x09, 0x88, 0x90, 0x3c, - 0xbf, 0xb0, 0x7a, 0xbe, 0x6e, 0x02, 0xb4, 0x83, 0x30, 0xfc, 0xc1, 0x3a, 0xaf, 0x41, 0xc9, 0x76, - 0x16, 0xab, 0xe8, 0x20, 0x40, 0xbf, 0x0f, 0xaa, 0x71, 0xba, 0x08, 0x7b, 0x6e, 0x14, 0xb3, 0xdb, - 0x50, 0xf4, 0xdc, 0x28, 0x6e, 0x2a, 0x5b, 0x85, 0xed, 0xda, 0x0e, 0x88, 0xbb, 0x43, 0x2a, 0x27, - 0xbc, 0x7e, 0x1f, 0xc0, 0xb4, 0xc2, 0x99, 0x13, 0x53, 0x64, 0xde, 0x82, 0x42, 0x7c, 0xb6, 0xa0, - 0xa7, 0xa7, 0xcc, 0x48, 0xe0, 0x88, 0xd6, 0xff, 0x47, 0x81, 0xda, 0x70, 0x39, 0xfe, 0xcd, 0xd2, - 0x09, 0xcf, 0xd0, 0xde, 0xed, 0x15, 0xf7, 0xc6, 0xce, 0x75, 0xc1, 0x9d, 0xa1, 0xaf, 0x24, 0x71, - 0x03, 0x7e, 0x60, 0x3b, 0x23, 0xd7, 0x4e, 0x36, 0x80, 0x60, 0xd7, 0xc6, 0x54, 0x10, 0x2c, 0xe4, - 0x91, 0xe4, 0x83, 0x05, 0xdb, 0x82, 0xd2, 0xe4, 0xd8, 0xf5, 0x6c, 0x8a, 0xa1, 0x75, 0x7b, 0x05, - 0x81, 0xdd, 0x04, 0x35, 0x0c, 0x4e, 0x46, 0x99, 0x00, 0xaf, 0x84, 0xc1, 0xc9, 0xd0, 0xfd, 0x1a, - 0x4f, 0x53, 0xe4, 0x17, 0x80, 0xf2, 0xb0, 0xdd, 0xea, 0xb5, 0xb8, 0x96, 0xc3, 0xb5, 0xf1, 0x45, - 0x77, 0x68, 0x0e, 0x35, 0x85, 0x6d, 0x00, 0xf4, 0x07, 0xe6, 0x48, 0xc2, 0x79, 0x56, 0x86, 0x7c, - 0xb7, 0xaf, 0x15, 0x90, 0x07, 0xf1, 0xdd, 0xbe, 0x56, 0x64, 0x15, 0x28, 0xb4, 0xfa, 0x5f, 0x6a, - 0x25, 0x5a, 0xf4, 0x7a, 0x5a, 0x59, 0xff, 0x57, 0x05, 0xaa, 0x83, 0xf1, 0x0b, 0x67, 0x12, 0xe3, - 0x9e, 0xd1, 0x63, 0x9c, 0xf0, 0x95, 0x13, 0xd2, 0xb6, 0x0b, 0x5c, 0x42, 0xb8, 0x11, 0x7b, 0x2c, - 0xb2, 0x04, 0xcf, 0xdb, 0x63, 0xe2, 0x9b, 0x1c, 0x3b, 0x73, 0x8b, 0x36, 0x87, 0x7c, 0x04, 0xa1, - 0x87, 0x06, 0xe3, 0x17, 0xb4, 0xbd, 0x02, 0xc7, 0x25, 0x7b, 0x0b, 0x6a, 0x42, 0xc7, 0x88, 0xdc, - 0xa3, 0x44, 0x67, 0x01, 0x02, 0xd5, 0x47, 0x27, 0xbd, 0x01, 0x15, 0x7b, 0x2c, 0x88, 0x65, 0x22, - 0x96, 0xed, 0x31, 0x11, 0x50, 0x92, 0xb4, 0x0a, 0x62, 0x45, 0x4a, 0x12, 0x8a, 0x18, 0x6e, 0x82, - 0x1a, 0x8c, 0x5f, 0x08, 0xaa, 0x4a, 0xd4, 0x4a, 0x30, 0x7e, 0x81, 0x24, 0xfd, 0x3f, 0x15, 0x50, - 0x9f, 0x2c, 0xfd, 0x49, 0x8c, 0x09, 0xf3, 0x0e, 0x14, 0xa7, 0x4b, 0x7f, 0x22, 0xef, 0x5d, 0x26, - 0x86, 0x74, 0xcf, 0x9c, 0x88, 0xe8, 0x49, 0x56, 0x38, 0x43, 0x0f, 0xbc, 0xe0, 0x49, 0x88, 0xd7, - 0xff, 0x4a, 0x6a, 0x7c, 0xe2, 0x59, 0x33, 0xa6, 0x42, 0xb1, 0x3f, 0xe8, 0x1b, 0x5a, 0x8e, 0xd5, - 0x41, 0xed, 0xf6, 0x4d, 0x83, 0xf7, 0x5b, 0x3d, 0x4d, 0xa1, 0xab, 0x31, 0x5b, 0xbb, 0x3d, 0x43, - 0xcb, 0x23, 0xe5, 0xd9, 0xa0, 0xd7, 0x32, 0xbb, 0x3d, 0x43, 0x2b, 0x0a, 0x0a, 0xef, 0xb6, 0x4d, - 0x4d, 0x65, 0x1a, 0xd4, 0x0f, 0xf9, 0xa0, 0x73, 0xd4, 0x36, 0x46, 0xfd, 0xa3, 0x5e, 0x4f, 0xd3, - 0xd8, 0x55, 0xd8, 0x4c, 0x31, 0x03, 0x81, 0xdc, 0x42, 0x91, 0x67, 0x2d, 0xde, 0xe2, 0x7b, 0xda, - 0x2f, 0x99, 0x0a, 0x85, 0xd6, 0xde, 0x9e, 0xf6, 0x5b, 0x05, 0x57, 0xcf, 0xbb, 0x7d, 0xed, 0xb7, - 0x79, 0xfd, 0x8f, 0x79, 0x28, 0xa2, 0x81, 0xdf, 0xee, 0xd6, 0xec, 0x47, 0xa0, 0x4c, 0xe8, 0xe6, - 0x6a, 0x3b, 0x35, 0x41, 0xa3, 0x92, 0xb0, 0x9f, 0xe3, 0x0a, 0xee, 0x5a, 0x11, 0xfe, 0x59, 0xdb, - 0xd9, 0x10, 0xc4, 0x24, 0xd9, 0x20, 0x7d, 0xc1, 0x6e, 0x81, 0xf2, 0x4a, 0x3a, 0x6b, 0x5d, 0xd0, - 0x45, 0xba, 0x41, 0xea, 0x2b, 0xb6, 0x05, 0x85, 0x49, 0x20, 0x52, 0x7f, 0x4a, 0x17, 0xc1, 0xbe, - 0x9f, 0xe3, 0x48, 0x42, 0xfd, 0x53, 0xba, 0xd6, 0x54, 0x7f, 0x72, 0x2b, 0xa8, 0x61, 0xca, 0xee, - 0x42, 0x21, 0x5a, 0x8e, 0xe9, 0x6e, 0x6b, 0x3b, 0x57, 0x2e, 0xc4, 0x18, 0xaa, 0x89, 0x96, 0x63, - 0x76, 0x0f, 0x8a, 0x93, 0x20, 0x0c, 0xe9, 0x96, 0xd3, 0x14, 0xbd, 0x4a, 0x2d, 0x58, 0x4a, 0x90, - 0xce, 0xb6, 0x40, 0x89, 0xa9, 0x48, 0xa4, 0x4c, 0xab, 0xe8, 0xc7, 0x07, 0xc6, 0xec, 0x1d, 0x99, - 0x30, 0x20, 0x6b, 0x53, 0x92, 0x4e, 0x50, 0x0f, 0x52, 0x77, 0xcb, 0x50, 0x74, 0x4e, 0x17, 0xa1, - 0x7e, 0x13, 0xaa, 0x69, 0xcd, 0x60, 0x75, 0x50, 0x2c, 0x19, 0x16, 0x8a, 0xa5, 0x6f, 0x63, 0x0a, - 0x4f, 0xaa, 0xc2, 0x3a, 0x0d, 0xa1, 0x24, 0x58, 0x94, 0x31, 0x46, 0x18, 0xa6, 0xd5, 0xce, 0x6b, - 0x92, 0xf4, 0x3b, 0x50, 0xb0, 0xbc, 0x19, 0xb1, 0x6f, 0xec, 0xb0, 0x64, 0x6b, 0xf3, 0x45, 0xe8, - 0x44, 0x91, 0xb8, 0x45, 0xcb, 0x9b, 0x25, 0x77, 0x5c, 0xb8, 0xfc, 0x8e, 0x7f, 0x02, 0x15, 0x59, - 0x3b, 0xe4, 0x65, 0x35, 0x04, 0x47, 0x47, 0x20, 0x79, 0x42, 0x65, 0x4d, 0xa8, 0x2c, 0x42, 0x77, - 0x6e, 0x85, 0x67, 0xa2, 0x60, 0xf3, 0x04, 0xc4, 0x5c, 0xbb, 0x78, 0xe9, 0xda, 0xa7, 0x49, 0x07, - 0x41, 0x00, 0xf2, 0x4f, 0x82, 0xf9, 0xdc, 0xf1, 0x63, 0x19, 0x7f, 0x09, 0xa8, 0xff, 0x06, 0x2a, - 0x52, 0x3b, 0x7b, 0x1b, 0xea, 0xd8, 0x4c, 0x8c, 0xac, 0xb1, 0xeb, 0xb9, 0xf1, 0x99, 0x6c, 0x31, - 0x6a, 0x88, 0x6b, 0x09, 0x14, 0x46, 0x17, 0x1e, 0xa8, 0xf4, 0xc3, 0xb5, 0xe8, 0x42, 0x3c, 0xbb, - 0x03, 0x8d, 0x20, 0x74, 0x67, 0xae, 0x3f, 0x8a, 0xe2, 0xd0, 0xf5, 0x67, 0x32, 0x67, 0xd6, 0x05, - 0x72, 0x48, 0x38, 0xfd, 0x6f, 0x15, 0x50, 0xbb, 0xbe, 0xed, 0x9c, 0xe2, 0x51, 0xde, 0xcf, 0x66, - 0xe7, 0xa6, 0x50, 0x98, 0x10, 0xc5, 0x62, 0x75, 0x3c, 0xc9, 0xb1, 0xe7, 0x33, 0xc7, 0xfe, 0x23, - 0xa8, 0x62, 0xd1, 0xc1, 0x75, 0xd4, 0x2c, 0x6c, 0x15, 0xb6, 0xab, 0x5c, 0x9d, 0x04, 0x1e, 0x66, - 0x8f, 0x48, 0x7f, 0x00, 0xd5, 0x54, 0x05, 0xab, 0x41, 0xa5, 0xdb, 0x7f, 0xd6, 0xea, 0xf6, 0x3a, - 0x5a, 0x0e, 0x81, 0xaf, 0x06, 0x7d, 0xe3, 0xa0, 0x75, 0xa8, 0x29, 0x98, 0x44, 0x77, 0x87, 0x5d, - 0x2d, 0xaf, 0xdf, 0x85, 0xc6, 0xa1, 0x38, 0xc7, 0xa7, 0xce, 0x19, 0x5a, 0x77, 0x0d, 0x4a, 0x42, - 0xb3, 0x42, 0x9a, 0x05, 0xa0, 0xef, 0x80, 0x7a, 0x18, 0x06, 0x0b, 0x27, 0x8c, 0xcf, 0x30, 0x53, - 0xbe, 0x74, 0xce, 0xa4, 0x27, 0xe0, 0x12, 0x65, 0xa8, 0xe4, 0x4b, 0x33, 0x65, 0xfd, 0xff, 0x0c, - 0x55, 0x93, 0x8c, 0xeb, 0x44, 0xa8, 0xfa, 0x01, 0xc0, 0x22, 0x45, 0xc8, 0xc2, 0x97, 0xc4, 0xae, - 0x54, 0xce, 0x33, 0x1c, 0xfa, 0x9f, 0xe7, 0x41, 0x35, 0xb1, 0xd9, 0x7c, 0x9d, 0x03, 0x6e, 0x61, - 0x70, 0x79, 0x49, 0xe6, 0x5b, 0x85, 0x71, 0x07, 0x73, 0x23, 0x52, 0xd8, 0x7d, 0x28, 0xda, 0xce, - 0x54, 0x1c, 0x53, 0x2d, 0x29, 0x85, 0x89, 0x4e, 0x74, 0x32, 0x3a, 0x6a, 0xe2, 0x79, 0xf3, 0xaf, - 0x15, 0x72, 0x0c, 0x3a, 0xb9, 0xbb, 0x90, 0x5f, 0xbc, 0x94, 0x79, 0xe9, 0x6a, 0x62, 0x62, 0xe6, - 0x98, 0xf6, 0x73, 0x3c, 0xbf, 0x78, 0xc9, 0x74, 0x28, 0xa0, 0xe3, 0xe5, 0xb3, 0x21, 0x99, 0x5c, - 0x25, 0x66, 0x00, 0x74, 0xc4, 0x8f, 0xd6, 0x76, 0x5d, 0x58, 0x57, 0x99, 0x39, 0x1e, 0x6c, 0xa3, - 0x56, 0x8c, 0xbb, 0x25, 0x28, 0xd8, 0xce, 0x54, 0x0f, 0xa1, 0xd8, 0x0e, 0xa2, 0x18, 0xb7, 0x3f, - 0xb1, 0x42, 0xd1, 0x9c, 0x2b, 0x9c, 0xd6, 0xe8, 0xe2, 0x61, 0x70, 0x42, 0x05, 0x37, 0x4f, 0xe8, - 0x04, 0xc4, 0x2b, 0xf2, 0xed, 0x57, 0xa2, 0x0b, 0xe6, 0xb8, 0xa4, 0x36, 0x3b, 0xb6, 0x42, 0x11, - 0x65, 0x0a, 0x17, 0x00, 0x62, 0xe3, 0x20, 0x96, 0x3d, 0xb0, 0xc2, 0x05, 0xa0, 0xff, 0x83, 0x02, - 0x15, 0x3c, 0x45, 0x2b, 0xb6, 0xd0, 0xd9, 0xb0, 0xaa, 0x4f, 0x82, 0xa5, 0x1f, 0xcb, 0xe6, 0x07, - 0xcb, 0x7c, 0x1b, 0x61, 0xf6, 0x63, 0x00, 0x0a, 0x1f, 0x41, 0x15, 0x0d, 0x44, 0x15, 0x31, 0x82, - 0x8c, 0xae, 0xb4, 0xf4, 0x3c, 0x71, 0xfa, 0x2a, 0x17, 0x00, 0xda, 0xe6, 0x3e, 0xdc, 0x69, 0x16, - 0xb7, 0x0a, 0xd8, 0x0a, 0xba, 0x0f, 0x77, 0x08, 0xf3, 0xf8, 0x51, 0xb3, 0xb4, 0x55, 0xc0, 0xd2, - 0xeb, 0x3e, 0x7e, 0x84, 0x98, 0xe9, 0xc3, 0x9d, 0x66, 0x79, 0xab, 0xb0, 0x9d, 0xe7, 0xb8, 0x24, - 0xcc, 0xe3, 0x47, 0xcd, 0xca, 0x56, 0x01, 0x77, 0x34, 0x15, 0x49, 0x2d, 0x6a, 0xaa, 0xe4, 0xa4, - 0x4a, 0xa4, 0x3f, 0x07, 0xe0, 0xc1, 0x49, 0xe4, 0xc4, 0x64, 0xf5, 0xbd, 0xb4, 0xc8, 0x2b, 0xd9, - 0xab, 0x49, 0x2e, 0x3e, 0x2d, 0xfa, 0x6f, 0xaf, 0x39, 0x50, 0x63, 0xe5, 0x40, 0x56, 0x6c, 0x09, - 0x0f, 0xd2, 0xff, 0x43, 0x81, 0xda, 0x20, 0xb4, 0x9d, 0x70, 0xf7, 0x6c, 0xb8, 0x70, 0x26, 0x69, - 0x3e, 0x50, 0x5e, 0x93, 0x0f, 0x6e, 0x51, 0x74, 0x7a, 0x16, 0x56, 0x0a, 0x19, 0x0f, 0x2b, 0x04, - 0xfb, 0x10, 0x8a, 0x53, 0xcf, 0x12, 0x49, 0x62, 0x63, 0xe7, 0xc7, 0xb2, 0xa0, 0xaf, 0xd4, 0x27, - 0x6b, 0xac, 0xd5, 0x9c, 0x58, 0xf5, 0x5f, 0xa7, 0xcf, 0xa7, 0x02, 0x8e, 0xed, 0xcf, 0xb0, 0xad, - 0xe5, 0xb0, 0x92, 0x77, 0x8c, 0x61, 0x5b, 0x53, 0xd8, 0x26, 0xd4, 0xb0, 0xf0, 0x0e, 0x47, 0x4f, - 0xba, 0x7c, 0x68, 0x6a, 0x79, 0xea, 0xa7, 0x08, 0xd1, 0x6b, 0x0d, 0x4d, 0x51, 0xc2, 0x8f, 0xfa, - 0xdd, 0x5f, 0x1d, 0x19, 0x9a, 0xba, 0x56, 0xf6, 0x35, 0xec, 0x0d, 0xe0, 0xb9, 0xeb, 0xdb, 0xc1, - 0x09, 0x6d, 0xee, 0x3d, 0xa8, 0x2f, 0xac, 0x30, 0x76, 0xd1, 0xd6, 0xd1, 0xf8, 0xec, 0x92, 0xe6, - 0xb4, 0x96, 0xd2, 0x77, 0xcf, 0xd8, 0xcf, 0x40, 0x0d, 0xd0, 0x34, 0x64, 0x15, 0x47, 0x78, 0xe5, - 0xc2, 0x8e, 0x78, 0x25, 0x10, 0x00, 0xba, 0xb0, 0xe7, 0x58, 0xb6, 0x6c, 0x89, 0x69, 0x8d, 0xd7, - 0x8a, 0xc7, 0x21, 0x26, 0x45, 0x5c, 0xea, 0x7f, 0xc8, 0x43, 0xf5, 0x68, 0x81, 0x53, 0x52, 0x3b, - 0x3e, 0xcd, 0xb6, 0x58, 0xca, 0x5a, 0x8b, 0x75, 0x13, 0xd4, 0x78, 0x2c, 0x92, 0xa0, 0x3c, 0xe5, - 0x4a, 0x3c, 0xf6, 0x92, 0xb6, 0x6c, 0x11, 0xba, 0x23, 0xcc, 0x51, 0x22, 0x17, 0x97, 0x17, 0xa1, - 0xfb, 0xd4, 0xc1, 0x54, 0x5e, 0x93, 0x84, 0x11, 0x46, 0x6d, 0x3a, 0x9e, 0x22, 0xb1, 0x6b, 0x9f, - 0xa2, 0xce, 0x63, 0xd7, 0x76, 0x48, 0x52, 0x74, 0x7b, 0x15, 0x84, 0x51, 0x74, 0x0b, 0xea, 0x09, - 0x69, 0xb4, 0x2a, 0x35, 0x20, 0xc9, 0x28, 0xfc, 0x1e, 0xd4, 0x96, 0x64, 0xf6, 0x88, 0x3c, 0xaa, - 0x72, 0x49, 0x4a, 0x02, 0xc1, 0xd0, 0xc6, 0xc4, 0xf4, 0x16, 0xd4, 0x82, 0xf8, 0xd8, 0x09, 0x47, - 0x56, 0x1c, 0x87, 0x89, 0x1f, 0x03, 0xa1, 0x5a, 0x88, 0x21, 0x06, 0x3a, 0x5b, 0xc1, 0x50, 0x95, - 0x0c, 0x88, 0x22, 0x06, 0x2c, 0xce, 0xb5, 0x96, 0x6f, 0x79, 0x67, 0x5f, 0x3b, 0x5d, 0x7f, 0x1a, - 0x60, 0x30, 0xba, 0xfe, 0x62, 0x19, 0x8f, 0x30, 0x09, 0xc8, 0x8a, 0x5e, 0x25, 0x0c, 0x06, 0x06, - 0xe9, 0x5b, 0xc6, 0x29, 0x5d, 0xd4, 0x78, 0x10, 0x28, 0x62, 0x48, 0xe5, 0x29, 0xa1, 0x14, 0x32, - 0xf2, 0xd8, 0xc3, 0x67, 0xe4, 0x89, 0x5e, 0xcc, 0xca, 0x13, 0xc3, 0x1d, 0x68, 0xe0, 0x14, 0x39, - 0x9a, 0x04, 0x7e, 0xb4, 0x9c, 0x3b, 0x36, 0x1d, 0x61, 0x41, 0x8c, 0x96, 0x6d, 0x89, 0x43, 0x2d, - 0x73, 0x67, 0x1e, 0x84, 0x67, 0x42, 0x4b, 0x59, 0x68, 0x11, 0x28, 0x1a, 0x15, 0xfe, 0xa9, 0x0e, - 0xc5, 0x7e, 0x60, 0x3b, 0xec, 0x03, 0xa8, 0xd2, 0x64, 0x12, 0x9f, 0x2d, 0x1c, 0x59, 0x2b, 0x65, - 0xd6, 0x44, 0x32, 0xfd, 0x50, 0xee, 0x56, 0x7d, 0xb9, 0x7a, 0xfd, 0x2c, 0x73, 0x1b, 0xa3, 0x3c, - 0x8a, 0xd7, 0x5b, 0x10, 0xcc, 0xaa, 0x9c, 0xf0, 0xe4, 0xf5, 0x61, 0x80, 0x4d, 0xf5, 0x88, 0x3a, - 0xac, 0xe2, 0x25, 0x5e, 0x2f, 0xe8, 0x34, 0xb9, 0xbd, 0x09, 0x2a, 0x4d, 0x3c, 0xa1, 0xe3, 0x53, - 0xce, 0x2a, 0xf1, 0x14, 0x46, 0xab, 0x5f, 0x04, 0xae, 0x2f, 0xac, 0x2e, 0x5f, 0xb0, 0xfa, 0xf3, - 0xc0, 0xf5, 0x29, 0xb4, 0x55, 0xe4, 0x22, 0xab, 0xef, 0x40, 0x25, 0xf0, 0xc5, 0x73, 0x2b, 0x17, - 0x9e, 0x5b, 0x0e, 0x7c, 0x7a, 0xe4, 0xbb, 0x50, 0x9b, 0xba, 0x5e, 0xec, 0x84, 0x82, 0x51, 0xbd, - 0xc0, 0x08, 0x82, 0x4c, 0xcc, 0x77, 0x41, 0x9d, 0x85, 0xc1, 0x72, 0x81, 0x51, 0x59, 0xbd, 0xc0, - 0x59, 0x21, 0xda, 0xee, 0x19, 0xee, 0x9a, 0x96, 0xae, 0x3f, 0x1b, 0x45, 0x0e, 0xf6, 0x95, 0x17, - 0x76, 0x9d, 0xd0, 0x87, 0x0e, 0x69, 0xb5, 0x66, 0x33, 0xf1, 0xfc, 0xda, 0x45, 0xad, 0xd6, 0x6c, - 0x46, 0x0f, 0xcf, 0xa6, 0x84, 0xfa, 0x77, 0xa6, 0x84, 0x0f, 0x56, 0x41, 0x13, 0x9f, 0x46, 0xcd, - 0x06, 0x09, 0xc8, 0x31, 0x27, 0x4d, 0x02, 0x69, 0xdc, 0xc4, 0xa7, 0x11, 0x7b, 0x17, 0xd4, 0x13, - 0xec, 0xb5, 0x16, 0xce, 0x84, 0xde, 0x3e, 0xa4, 0xed, 0xf2, 0x2a, 0x8b, 0xf1, 0xca, 0x89, 0xeb, - 0x53, 0x3a, 0xdb, 0x82, 0x92, 0xe7, 0xce, 0xdd, 0xb8, 0xb9, 0x79, 0x71, 0x68, 0x25, 0x02, 0xd3, - 0xa1, 0x1c, 0x4c, 0xa7, 0xb8, 0x7d, 0xed, 0x02, 0x8b, 0xa4, 0xb0, 0x77, 0xa1, 0x1a, 0x63, 0xe1, - 0x18, 0xd9, 0xce, 0xb4, 0x79, 0xe5, 0xd2, 0x7a, 0xa2, 0xc6, 0x49, 0x9b, 0xb2, 0x0d, 0x38, 0xc9, - 0x8d, 0x42, 0x67, 0xda, 0x64, 0x97, 0x0f, 0x6d, 0xe5, 0x60, 0xfc, 0x02, 0x07, 0xd6, 0x0f, 0xa1, - 0x16, 0x52, 0xc5, 0x1a, 0xd9, 0x56, 0x6c, 0x35, 0xaf, 0x66, 0x37, 0xb3, 0x2a, 0x65, 0x1c, 0xc2, - 0x55, 0x59, 0xbb, 0x03, 0x0d, 0xe7, 0x34, 0x0e, 0xad, 0x51, 0xb0, 0xc0, 0x0c, 0x1c, 0x35, 0xaf, - 0x89, 0x5e, 0x93, 0x90, 0x03, 0x81, 0x63, 0xbf, 0x80, 0x4d, 0xdb, 0xf1, 0x9c, 0xd8, 0x21, 0xeb, - 0xa2, 0x76, 0x7c, 0xda, 0x7c, 0x83, 0xce, 0xf5, 0x5a, 0xd2, 0x59, 0xa7, 0x44, 0x3c, 0xdc, 0xf3, - 0xcc, 0xd8, 0x13, 0x8f, 0x5d, 0xdf, 0x46, 0xb7, 0x88, 0xad, 0x59, 0xd4, 0xbc, 0x4e, 0x2e, 0x5e, - 0x93, 0x38, 0xd3, 0x9a, 0x45, 0xec, 0x11, 0xd4, 0x2d, 0x91, 0x79, 0x46, 0xae, 0x3f, 0x0d, 0x9a, - 0x37, 0xb2, 0x43, 0x50, 0x26, 0x27, 0xf1, 0x9a, 0xb5, 0x02, 0xf4, 0x7f, 0x2b, 0x80, 0x9a, 0x84, - 0x2d, 0x76, 0xa3, 0x47, 0xfd, 0xa7, 0xfd, 0xc1, 0xf3, 0xbe, 0x96, 0xc3, 0x7a, 0xf5, 0xac, 0xd5, - 0x3b, 0x32, 0x46, 0xc3, 0x76, 0xab, 0x2f, 0xde, 0x07, 0xd0, 0x2c, 0x2a, 0xe0, 0x3c, 0xbb, 0x02, - 0x8d, 0x27, 0x47, 0xfd, 0xb6, 0xd9, 0x1d, 0xf4, 0x05, 0xaa, 0x80, 0x28, 0xe3, 0x0b, 0x51, 0xc6, - 0x04, 0xaa, 0x88, 0xa8, 0x83, 0x96, 0x69, 0xf0, 0x6e, 0x82, 0x2a, 0xe1, 0x53, 0x0e, 0xf9, 0xe0, - 0x73, 0xa3, 0x6d, 0x6a, 0xc0, 0xde, 0x80, 0x2b, 0xa9, 0x48, 0xa2, 0x4e, 0xab, 0x61, 0x41, 0x4c, - 0xc4, 0xb4, 0x6b, 0xa8, 0x84, 0x1b, 0xed, 0x23, 0x3e, 0xec, 0x3e, 0x33, 0x46, 0x6d, 0xd3, 0xd0, - 0xde, 0xc0, 0x42, 0x3b, 0xec, 0xf6, 0x9f, 0x6a, 0xd7, 0x59, 0x03, 0xaa, 0xb8, 0x12, 0xda, 0x6f, - 0x50, 0x29, 0xde, 0xdb, 0xd3, 0x6e, 0xa3, 0x8a, 0x4e, 0x77, 0x68, 0x76, 0xfb, 0x6d, 0x53, 0x7b, - 0x0b, 0xab, 0xed, 0x93, 0x6e, 0xcf, 0x34, 0xb8, 0xb6, 0x85, 0xb2, 0x9f, 0x0f, 0xba, 0x7d, 0xed, - 0x6d, 0x1a, 0xa3, 0x5b, 0x07, 0x87, 0x3d, 0x43, 0xd3, 0x49, 0xe3, 0x80, 0x9b, 0xda, 0x1d, 0x56, - 0x85, 0xd2, 0x51, 0x1f, 0xed, 0x78, 0x07, 0x95, 0xd3, 0x72, 0xd4, 0xea, 0xf5, 0xb4, 0xbb, 0x99, - 0x9a, 0x7d, 0x0f, 0xd7, 0xcf, 0xbb, 0xfd, 0xce, 0xe0, 0xb9, 0xf6, 0x13, 0x64, 0xdb, 0xe5, 0x83, - 0x56, 0xa7, 0x8d, 0xa5, 0x7d, 0x1b, 0x15, 0x0c, 0x0f, 0x7b, 0x5d, 0x53, 0xfb, 0x29, 0x72, 0xed, - 0xb5, 0xcc, 0x7d, 0x83, 0x6b, 0xf7, 0x71, 0xdd, 0x1a, 0x0e, 0x0d, 0x6e, 0x6a, 0x3b, 0xb8, 0xee, - 0xf6, 0x69, 0xfd, 0x90, 0xb4, 0x1e, 0x76, 0x5a, 0xa6, 0xa1, 0x3d, 0xc2, 0x75, 0xc7, 0xe8, 0x19, - 0xa6, 0xa1, 0x7d, 0x84, 0x5a, 0xa9, 0x2b, 0x18, 0xe2, 0x51, 0x3d, 0xc6, 0x53, 0x48, 0x41, 0xb2, - 0xe7, 0xe7, 0xf8, 0xa0, 0x83, 0x6e, 0xff, 0x68, 0xa8, 0x7d, 0x8c, 0xcc, 0xb4, 0x24, 0xca, 0x27, - 0xfa, 0x0b, 0x50, 0x93, 0xbc, 0x86, 0x5c, 0xdd, 0x7e, 0xdf, 0xe0, 0xa2, 0x3f, 0xe9, 0x19, 0x4f, - 0x4c, 0x4d, 0x41, 0x24, 0xef, 0xee, 0xed, 0x63, 0x67, 0x52, 0x85, 0xd2, 0xe0, 0x08, 0x8f, 0xa6, - 0x40, 0x87, 0x60, 0x1c, 0x74, 0xb5, 0x22, 0xae, 0x5a, 0x7d, 0xb3, 0xab, 0x95, 0xe8, 0x90, 0xba, - 0xfd, 0xbd, 0x9e, 0xa1, 0x95, 0x11, 0x7b, 0xd0, 0xe2, 0x4f, 0xb5, 0x0a, 0x0a, 0xb5, 0x0e, 0x0f, - 0x7b, 0x5f, 0x6a, 0xaa, 0xbe, 0x0d, 0x95, 0xd6, 0x6c, 0x76, 0x80, 0x05, 0x42, 0x85, 0xe2, 0x93, - 0xa3, 0x5e, 0x4f, 0xbc, 0x4a, 0xda, 0x1d, 0x98, 0xe6, 0xe0, 0x40, 0x0c, 0x36, 0xe6, 0xe0, 0x50, - 0xcb, 0xeb, 0x7f, 0x50, 0x60, 0x63, 0xdd, 0xd5, 0xd9, 0x75, 0x90, 0xdd, 0xc3, 0xb9, 0x5e, 0xa2, - 0x09, 0x49, 0xef, 0x70, 0xbe, 0x95, 0xd0, 0xa1, 0xbe, 0x8c, 0x1c, 0xa1, 0xe6, 0x69, 0xda, 0x4f, - 0xac, 0xe1, 0xd8, 0x16, 0xd4, 0x26, 0x96, 0x6f, 0x86, 0x4b, 0x7f, 0x62, 0xc5, 0xa2, 0x30, 0xaa, - 0x3c, 0x8b, 0xc2, 0x96, 0xd0, 0x8d, 0xf6, 0x45, 0xab, 0x20, 0x87, 0xd7, 0x15, 0x42, 0xff, 0x5d, - 0x1e, 0x4a, 0xbf, 0x5a, 0x3a, 0xe1, 0x19, 0x7b, 0x0c, 0xd5, 0x28, 0x9e, 0xc7, 0xd9, 0x92, 0x77, - 0x53, 0xc4, 0x14, 0xd1, 0x1f, 0x0c, 0x63, 0x2b, 0x76, 0x70, 0x84, 0x15, 0x85, 0x0f, 0x79, 0x29, - 0x96, 0xa8, 0xb7, 0x77, 0x16, 0xa2, 0x8d, 0x2d, 0x71, 0x01, 0x60, 0xf2, 0xc3, 0xfa, 0x97, 0xcc, - 0x3e, 0xb0, 0x2a, 0x43, 0x5c, 0x10, 0x30, 0xf9, 0x2d, 0xac, 0xd0, 0x9a, 0x47, 0x97, 0x54, 0x3c, - 0x49, 0xc1, 0x62, 0x77, 0xec, 0x58, 0x18, 0xf9, 0x11, 0x15, 0xbb, 0x2a, 0x4f, 0x61, 0xfd, 0x39, - 0x34, 0xd6, 0x4c, 0x5a, 0x0f, 0x6a, 0xbc, 0x4b, 0xa3, 0x87, 0xfe, 0xa4, 0x64, 0x5c, 0x30, 0x9f, - 0x71, 0xbb, 0x42, 0xc6, 0x1d, 0x8b, 0xe4, 0x60, 0x06, 0xdf, 0x33, 0xb4, 0x92, 0xfe, 0xf7, 0x79, - 0xb8, 0x62, 0x86, 0x96, 0x1f, 0x51, 0xd3, 0xdc, 0x0e, 0xfc, 0x38, 0x0c, 0x3c, 0xf6, 0x27, 0xa0, - 0xc6, 0x13, 0x2f, 0x7b, 0x3a, 0x6f, 0xc9, 0x34, 0x7c, 0x9e, 0xf5, 0x81, 0x39, 0xf1, 0xe8, 0x8c, - 0x2a, 0xb1, 0x58, 0xb0, 0xf7, 0xa0, 0x34, 0x76, 0x66, 0xae, 0x2f, 0x47, 0xb5, 0x37, 0xce, 0x0b, - 0xee, 0x22, 0x71, 0x3f, 0xc7, 0x05, 0x17, 0xfb, 0x00, 0xca, 0x93, 0x60, 0x8e, 0x95, 0x43, 0xf4, - 0x0c, 0xd7, 0x2f, 0x3e, 0x08, 0xa9, 0xfb, 0x39, 0x2e, 0xf9, 0xd8, 0x63, 0x50, 0xc3, 0xc0, 0xf3, - 0xc6, 0xd6, 0xe4, 0xa5, 0x7c, 0x91, 0xd1, 0x3c, 0x2f, 0xc3, 0x25, 0x7d, 0x3f, 0xc7, 0x53, 0x5e, - 0xfd, 0x01, 0x54, 0xa4, 0xb1, 0x78, 0x00, 0xbb, 0xc6, 0x5e, 0x57, 0x9e, 0x5d, 0x7b, 0x70, 0x70, - 0xd0, 0xc5, 0xb3, 0xab, 0x83, 0xca, 0x07, 0xbd, 0xde, 0x6e, 0xab, 0xfd, 0x54, 0xcb, 0xef, 0xaa, - 0x50, 0xb6, 0xe8, 0x2d, 0x94, 0xfe, 0x97, 0x0a, 0x6c, 0x9e, 0xdb, 0x00, 0xfb, 0x18, 0x8a, 0xf3, - 0xc0, 0x4e, 0x8e, 0xe7, 0x9d, 0x4b, 0x77, 0x99, 0x81, 0x31, 0x8e, 0x38, 0x49, 0xe8, 0x9f, 0xc0, - 0xc6, 0x3a, 0x3e, 0xf3, 0xa6, 0xb0, 0x01, 0x55, 0x6e, 0xb4, 0x3a, 0xa3, 0x41, 0xbf, 0xf7, 0xa5, - 0xc8, 0xce, 0x04, 0x3e, 0xe7, 0x5d, 0xd3, 0xd0, 0xf2, 0xfa, 0xaf, 0x41, 0x3b, 0x7f, 0x30, 0x6c, - 0x0f, 0x36, 0x27, 0xc1, 0x7c, 0xe1, 0x39, 0x34, 0x49, 0x64, 0xae, 0xec, 0xf6, 0x25, 0x27, 0x29, - 0xd9, 0xe8, 0xc6, 0x36, 0x26, 0x6b, 0xb0, 0xfe, 0x67, 0xc0, 0x2e, 0x9e, 0xe0, 0xff, 0x9f, 0xfa, - 0x7f, 0x57, 0xa0, 0x78, 0xe8, 0x59, 0x3e, 0xbb, 0x03, 0x25, 0x7a, 0x75, 0x27, 0xe7, 0xba, 0x5a, - 0x26, 0xee, 0xd0, 0x2d, 0x88, 0xc6, 0xde, 0x85, 0x42, 0x3c, 0xf1, 0xa4, 0x0f, 0xdd, 0x78, 0x8d, - 0xf3, 0xe1, 0xdc, 0x1f, 0x4f, 0x3c, 0xb6, 0x0d, 0x05, 0xdb, 0xf6, 0xa4, 0x03, 0x25, 0xb5, 0xd7, - 0x8a, 0xad, 0x8e, 0x33, 0x75, 0x7d, 0x57, 0xbe, 0x48, 0x44, 0x16, 0x76, 0x17, 0x0a, 0xf6, 0xc4, - 0x93, 0x6e, 0x73, 0x65, 0xc5, 0x99, 0x51, 0x68, 0x4f, 0x3c, 0x76, 0x0f, 0x0a, 0xae, 0x1f, 0xc9, - 0x77, 0x96, 0x2c, 0x79, 0xd9, 0x10, 0x39, 0x61, 0xfc, 0xcc, 0xf2, 0x96, 0x4e, 0x44, 0x2f, 0x1c, - 0xfc, 0x68, 0xb7, 0x0c, 0xf4, 0x15, 0x50, 0xff, 0x6f, 0x05, 0xea, 0x59, 0xfa, 0x0f, 0x1a, 0xa6, - 0x3e, 0xc4, 0x96, 0x63, 0xe1, 0xb9, 0x13, 0x37, 0x16, 0x83, 0x4d, 0xe1, 0x92, 0xc1, 0xa6, 0x9e, - 0xb0, 0xd0, 0x68, 0xf3, 0x2e, 0x88, 0x39, 0x46, 0xf0, 0x17, 0x2f, 0xe1, 0xaf, 0x12, 0x3d, 0x9d, - 0x83, 0x32, 0x63, 0x4e, 0xe9, 0xfc, 0x98, 0xc3, 0xee, 0xd1, 0x27, 0x96, 0xe5, 0xdc, 0x8f, 0xe8, - 0x75, 0x40, 0xaa, 0x4a, 0x20, 0x79, 0x42, 0xd4, 0x7f, 0x86, 0x21, 0x8b, 0x4b, 0x4c, 0x6b, 0x62, - 0x75, 0xc9, 0xf8, 0x2a, 0x29, 0xfa, 0xff, 0xe6, 0xa1, 0x96, 0x39, 0x62, 0xf6, 0x08, 0x54, 0x7b, - 0x3d, 0xb7, 0xdc, 0xbc, 0x70, 0x0f, 0x0f, 0x3a, 0x49, 0x56, 0xb1, 0x65, 0xc4, 0x7e, 0x02, 0x0d, - 0xec, 0xdf, 0x5e, 0x59, 0xa1, 0x4b, 0xed, 0x93, 0xf4, 0x0c, 0x79, 0x37, 0x43, 0x27, 0x7e, 0x96, - 0x50, 0xf6, 0x73, 0xbc, 0x1e, 0x65, 0x60, 0xf6, 0x53, 0x1c, 0x52, 0x9d, 0x85, 0x15, 0x3a, 0xd2, - 0x43, 0x1a, 0xc9, 0x2b, 0x21, 0x42, 0xee, 0xe7, 0x78, 0x42, 0x47, 0x56, 0xe7, 0xd4, 0x99, 0x2c, - 0x65, 0x71, 0x49, 0x59, 0x0d, 0x81, 0x44, 0x56, 0x49, 0x67, 0x3b, 0x00, 0xb6, 0x63, 0x79, 0x5e, - 0x40, 0xa5, 0xa8, 0x94, 0x6d, 0x29, 0x3b, 0x29, 0x5e, 0x7c, 0xaf, 0x4b, 0x20, 0x7d, 0x06, 0x15, - 0xb9, 0x31, 0x2c, 0xfb, 0x43, 0xc3, 0x1c, 0x3d, 0x6b, 0xf1, 0x2e, 0xb6, 0x5f, 0x43, 0x2d, 0x87, - 0x49, 0x69, 0x8f, 0xb7, 0xfa, 0x32, 0x89, 0x73, 0xe3, 0xd9, 0xe0, 0xa9, 0xa1, 0xe5, 0xc5, 0xcb, - 0x87, 0xfe, 0x97, 0x5a, 0x41, 0xb4, 0x58, 0xc6, 0x61, 0x8b, 0x63, 0x0e, 0xaf, 0x41, 0xc5, 0xf8, - 0xc2, 0x68, 0x1f, 0x99, 0x86, 0x56, 0xc2, 0x3c, 0xd1, 0x31, 0x5a, 0xbd, 0xde, 0xa0, 0x8d, 0x09, - 0xbe, 0xbc, 0x5b, 0xc5, 0x9b, 0xa4, 0x93, 0xd4, 0xff, 0xa2, 0x0a, 0x1b, 0xeb, 0xb1, 0xc0, 0x7e, - 0x0e, 0xaa, 0x6d, 0xaf, 0xdd, 0xc0, 0xad, 0xcb, 0x62, 0xe6, 0x41, 0xc7, 0x4e, 0x2e, 0x41, 0x2c, - 0xd8, 0xdb, 0x49, 0xe4, 0xe6, 0x2f, 0x44, 0x6e, 0x12, 0xb7, 0x9f, 0xc1, 0xe6, 0x24, 0x74, 0x70, - 0xcc, 0xc0, 0x56, 0x7b, 0x6c, 0x45, 0xce, 0x7a, 0x58, 0xb6, 0x89, 0xd8, 0x91, 0xb4, 0xfd, 0x1c, - 0xdf, 0x98, 0xac, 0x61, 0xd8, 0xa7, 0xb0, 0x61, 0xd1, 0xf8, 0x95, 0xca, 0x17, 0xb3, 0xef, 0xf1, - 0x5a, 0x48, 0xcb, 0x88, 0x37, 0xac, 0x2c, 0x02, 0xdd, 0xc4, 0x0e, 0x83, 0xc5, 0x4a, 0x78, 0x2d, - 0x84, 0x3b, 0x61, 0xb0, 0xc8, 0xc8, 0xd6, 0xed, 0x0c, 0xcc, 0x1e, 0x43, 0x5d, 0x5a, 0x4e, 0x13, - 0x86, 0xfc, 0x20, 0x71, 0x25, 0x6b, 0x36, 0xb5, 0x37, 0xfb, 0x39, 0x5e, 0x9b, 0xac, 0x40, 0xf6, - 0x10, 0x6a, 0xc2, 0x60, 0x21, 0x56, 0xc9, 0x7a, 0x02, 0x59, 0x9b, 0x48, 0x81, 0x95, 0x42, 0xec, - 0x03, 0x00, 0xb2, 0x53, 0xc8, 0xa8, 0xd9, 0xf1, 0x05, 0x8d, 0x4c, 0x44, 0xaa, 0x76, 0x02, 0x64, - 0xcc, 0x73, 0x7d, 0xdb, 0x39, 0x95, 0x1f, 0x30, 0xd6, 0xcc, 0xa3, 0xd7, 0xa1, 0x2b, 0xf3, 0x08, - 0x5c, 0x99, 0x27, 0xc4, 0xe0, 0x82, 0x79, 0x89, 0x94, 0x30, 0x4f, 0x08, 0x25, 0xe6, 0x09, 0x99, - 0xda, 0x79, 0xf3, 0x12, 0x11, 0x32, 0x4f, 0x48, 0x7c, 0x0a, 0x1b, 0xb1, 0x6c, 0xc2, 0xe4, 0xa6, - 0xea, 0xd9, 0x6b, 0x4b, 0x1a, 0xb4, 0x64, 0x63, 0x8d, 0x38, 0x8b, 0x40, 0xe9, 0xe8, 0x38, 0x38, - 0xc9, 0x84, 0x77, 0x23, 0x2b, 0x3d, 0x3c, 0x0e, 0x4e, 0xb2, 0xf1, 0xdd, 0x88, 0xb2, 0x08, 0xfd, - 0x6f, 0x0a, 0x50, 0x91, 0xbe, 0xca, 0xae, 0xc2, 0x66, 0x9b, 0x1b, 0x2d, 0xd3, 0x18, 0x75, 0x5a, - 0x66, 0x6b, 0xb7, 0x35, 0xc4, 0xaa, 0xca, 0x60, 0xa3, 0x85, 0x53, 0xc2, 0x0a, 0xa7, 0x60, 0x00, - 0x76, 0xf8, 0xe0, 0x70, 0x85, 0xca, 0x33, 0x0d, 0xea, 0x52, 0x56, 0x7c, 0x9e, 0x2b, 0xb0, 0x4d, - 0xa8, 0x09, 0x41, 0x81, 0x28, 0x52, 0xa0, 0xa1, 0x94, 0x80, 0x4b, 0x19, 0x91, 0x6e, 0xbf, 0x63, - 0x7c, 0xa1, 0x95, 0x57, 0x22, 0x02, 0x51, 0x49, 0x45, 0x04, 0xac, 0xa2, 0x31, 0x26, 0x3f, 0xea, - 0xb7, 0x57, 0xcf, 0xa9, 0xb2, 0x1b, 0x70, 0x75, 0xb8, 0x3f, 0x78, 0x3e, 0x12, 0xba, 0x52, 0x93, - 0x80, 0x5d, 0x03, 0x2d, 0x43, 0x10, 0xec, 0x35, 0x54, 0x41, 0xd8, 0x84, 0x71, 0xa8, 0xd5, 0xf1, - 0xb9, 0x84, 0x33, 0x45, 0x3a, 0x69, 0xa0, 0x69, 0x42, 0x74, 0xd0, 0x3b, 0x3a, 0xe8, 0x0f, 0xb5, - 0x0d, 0xb4, 0x84, 0x30, 0xc2, 0x92, 0xcd, 0x54, 0xcd, 0x2a, 0x09, 0x69, 0x94, 0x97, 0x10, 0xf7, - 0xbc, 0xc5, 0xfb, 0xdd, 0xfe, 0xde, 0x50, 0xbb, 0x92, 0x6a, 0x36, 0x38, 0x1f, 0xf0, 0xa1, 0xc6, - 0x52, 0xc4, 0xd0, 0x6c, 0x99, 0x47, 0x43, 0xed, 0x6a, 0x6a, 0xe5, 0x21, 0x1f, 0xb4, 0x8d, 0xe1, - 0xb0, 0xd7, 0x1d, 0x9a, 0xda, 0xb5, 0xdd, 0x3a, 0xfd, 0x7f, 0x41, 0x26, 0x13, 0xfd, 0x10, 0x36, - 0xd6, 0x63, 0x9f, 0xe9, 0xd0, 0x70, 0xa7, 0x23, 0x3f, 0x88, 0x47, 0xce, 0xa9, 0x1b, 0xc5, 0x51, - 0xf2, 0x49, 0xc8, 0x9d, 0xf6, 0x83, 0xd8, 0x20, 0x14, 0xf6, 0xc4, 0x69, 0x28, 0x8b, 0x72, 0x99, - 0xc2, 0xfa, 0x3e, 0x34, 0xd6, 0xb2, 0x01, 0xfb, 0x11, 0x54, 0xdd, 0xe9, 0xba, 0x32, 0xd5, 0x9d, - 0x7e, 0x0f, 0x4d, 0x7b, 0x50, 0xcf, 0xa6, 0x86, 0x1f, 0xae, 0xe8, 0xef, 0x14, 0xa8, 0x65, 0x52, - 0xc5, 0xf7, 0xda, 0xe2, 0x2d, 0xa8, 0xc6, 0xce, 0x7c, 0x11, 0x84, 0x96, 0x4c, 0xac, 0x2a, 0x5f, - 0x21, 0xd6, 0x9e, 0x56, 0x58, 0x7f, 0xda, 0xfa, 0xdb, 0x92, 0xe2, 0xb7, 0xbf, 0x2d, 0xd1, 0x07, - 0x00, 0xab, 0x6c, 0x44, 0x5f, 0x23, 0x28, 0x4a, 0x45, 0x77, 0x22, 0x80, 0x75, 0x85, 0xf9, 0xef, - 0x50, 0xf8, 0x15, 0x54, 0xd3, 0x54, 0xf5, 0x83, 0x4f, 0x6c, 0x65, 0x48, 0x21, 0x63, 0x88, 0xbe, - 0x97, 0x1c, 0xa3, 0x48, 0x2e, 0xdf, 0xe7, 0x18, 0xaf, 0x41, 0x49, 0x64, 0x2b, 0xf9, 0x61, 0x8c, - 0x00, 0x5d, 0x97, 0xbb, 0x16, 0x7a, 0x52, 0x1e, 0x25, 0xcb, 0xf3, 0x0b, 0xb1, 0x11, 0xc1, 0xf2, - 0xad, 0x1b, 0xb9, 0xfc, 0x19, 0x77, 0xa1, 0xb1, 0x96, 0xde, 0x2e, 0x3f, 0x5c, 0xbd, 0x0b, 0x8d, - 0xb5, 0x3c, 0x96, 0xf9, 0x83, 0x8d, 0x92, 0xfd, 0x83, 0x0d, 0x4e, 0x93, 0x27, 0xc7, 0x4e, 0xe8, - 0x5c, 0xf2, 0x2f, 0x03, 0x41, 0xd0, 0x3f, 0x85, 0x7a, 0xb6, 0xe3, 0x61, 0x3f, 0x83, 0x92, 0x1b, - 0x3b, 0xf3, 0xe4, 0x43, 0xdf, 0xf5, 0x8b, 0x4d, 0x51, 0x37, 0x76, 0xe6, 0x5c, 0x30, 0xe9, 0xbf, - 0x57, 0x40, 0x3b, 0x4f, 0xcb, 0xfc, 0x0b, 0x48, 0x79, 0xcd, 0xbf, 0x80, 0xf2, 0x6b, 0x46, 0x5e, - 0xf2, 0x4f, 0x1e, 0x34, 0x5c, 0x7c, 0x9b, 0xbc, 0xe4, 0x8f, 0x2b, 0x44, 0x60, 0xf7, 0x40, 0x0d, - 0x1d, 0xfa, 0x5b, 0x87, 0x2d, 0x2b, 0x73, 0x96, 0x29, 0xa5, 0xe9, 0xc7, 0x50, 0x91, 0xdd, 0xd9, - 0xa5, 0x1f, 0x23, 0x7f, 0x0a, 0x15, 0xf1, 0x55, 0x29, 0xf9, 0x9c, 0x74, 0xe1, 0xcd, 0x5f, 0x42, - 0x67, 0xb7, 0x45, 0x87, 0xbe, 0xfe, 0x42, 0x1a, 0xc7, 0x10, 0x2e, 0x3a, 0xf7, 0x3f, 0x85, 0x8a, - 0x6c, 0xee, 0x2e, 0x7d, 0xd2, 0x77, 0xfd, 0xe1, 0x63, 0x0b, 0x60, 0xd5, 0xed, 0x5d, 0xa6, 0xe1, - 0xfe, 0xdb, 0x50, 0xcf, 0x7e, 0xa8, 0xa7, 0x59, 0x2f, 0xf0, 0x1d, 0x2d, 0xc7, 0x2a, 0x50, 0xe8, - 0x7d, 0xfd, 0x48, 0x53, 0xee, 0xff, 0x12, 0x9a, 0xaf, 0x9b, 0xa2, 0xb0, 0x29, 0x6c, 0xef, 0xb7, - 0x68, 0x52, 0xad, 0x83, 0xda, 0x1f, 0x8c, 0x04, 0xa4, 0x60, 0xff, 0xc7, 0x8d, 0x9e, 0x41, 0x95, - 0x6b, 0xf7, 0xb3, 0x7f, 0xfe, 0xe6, 0xb6, 0xf2, 0x2f, 0xdf, 0xdc, 0x56, 0xfe, 0xf8, 0xcd, 0xed, - 0xdc, 0xef, 0xff, 0xeb, 0xb6, 0xf2, 0x55, 0xf6, 0x7f, 0x89, 0x73, 0x2b, 0x0e, 0xdd, 0x53, 0xf1, - 0x95, 0x3c, 0x01, 0x7c, 0xe7, 0xfd, 0xc5, 0xcb, 0xd9, 0xfb, 0x8b, 0xf1, 0xfb, 0xb8, 0xa5, 0x71, - 0x99, 0xfe, 0x9e, 0xf8, 0xf0, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xca, 0xe2, 0x9f, 0xb2, 0xe1, - 0x28, 0x00, 0x00, + // 4477 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0x3d, 0x90, 0xdb, 0x56, + 0x7a, 0x04, 0x7f, 0xc1, 0x8f, 0xe4, 0x0a, 0x7a, 0x92, 0x25, 0xca, 0x96, 0xe5, 0x35, 0x64, 0xe9, + 0xd6, 0xb2, 0x2d, 0xdb, 0x2b, 0x59, 0x67, 0x67, 0x9c, 0xf3, 0x71, 0x49, 0x68, 0x97, 0x16, 0x45, + 0xee, 0x3d, 0x62, 0x57, 0xb6, 0x6f, 0x32, 0x1c, 0x90, 0x00, 0xb9, 0x90, 0x40, 0x80, 0x07, 0x80, + 0xda, 0x5d, 0x57, 0xd7, 0x24, 0x6d, 0xae, 0xc8, 0x4c, 0x52, 0xde, 0xa4, 0xb8, 0x3e, 0x55, 0xea, + 0x34, 0x99, 0x94, 0x99, 0xc9, 0xa4, 0xc8, 0xa4, 0xb9, 0x38, 0x65, 0xca, 0xb4, 0x29, 0x32, 0xdf, + 0xf7, 0x1e, 0x40, 0x70, 0x77, 0x65, 0x7b, 0x3c, 0xd7, 0x70, 0xde, 0xf7, 0x8b, 0xef, 0xbd, 0xf7, + 0xfd, 0x02, 0x04, 0x58, 0x78, 0x96, 0x7f, 0x7f, 0x11, 0x06, 0x71, 0xc0, 0x8a, 0xb8, 0x7e, 0xfd, + 0x83, 0x99, 0x1b, 0x1f, 0x2d, 0xc7, 0xf7, 0x27, 0xc1, 0xfc, 0xc3, 0x59, 0x30, 0x0b, 0x3e, 0x24, + 0xe2, 0x78, 0x39, 0x25, 0x88, 0x00, 0x5a, 0x09, 0x21, 0xfd, 0x77, 0x0a, 0x14, 0xcd, 0xd3, 0x85, + 0xc3, 0x36, 0x20, 0xef, 0xda, 0x4d, 0x65, 0x53, 0xd9, 0x2a, 0xf1, 0xbc, 0x6b, 0xb3, 0xd7, 0x41, + 0xf5, 0x97, 0x9e, 0x67, 0x8d, 0x3d, 0xa7, 0x99, 0xdf, 0x54, 0xb6, 0x54, 0x9e, 0xc2, 0xec, 0x2a, + 0x94, 0x8e, 0x5d, 0x3b, 0x3e, 0x6a, 0x16, 0x88, 0x5d, 0x00, 0xec, 0x26, 0x54, 0x17, 0xa1, 0x33, + 0x71, 0x23, 0x37, 0xf0, 0x9b, 0x45, 0xa2, 0xac, 0x10, 0x8c, 0x41, 0x31, 0x72, 0xbf, 0x75, 0x9a, + 0x25, 0x22, 0xd0, 0x1a, 0xf5, 0x44, 0x13, 0xcb, 0x73, 0x9a, 0x65, 0xa1, 0x87, 0x00, 0xfd, 0x9f, + 0x0a, 0x50, 0x6a, 0x07, 0x7e, 0x14, 0xb3, 0x6b, 0x50, 0x76, 0x23, 0x7c, 0x2a, 0xd9, 0xa5, 0x72, + 0x09, 0xb1, 0xab, 0x50, 0x74, 0x5f, 0x5a, 0x1e, 0xd9, 0x55, 0xd8, 0xcb, 0x71, 0x82, 0x10, 0x6b, + 0x23, 0x16, 0x8d, 0x52, 0x10, 0x6b, 0x4b, 0x6c, 0x84, 0x58, 0x34, 0xa8, 0x8a, 0xd8, 0x48, 0x62, + 0xc7, 0x88, 0x45, 0x6b, 0x54, 0xc4, 0x8e, 0x25, 0x76, 0x89, 0x58, 0x34, 0xa7, 0x88, 0xd8, 0xa5, + 0xc4, 0x4e, 0x11, 0x5b, 0xd9, 0x54, 0xb6, 0xf2, 0x88, 0x45, 0x88, 0xbd, 0x0e, 0x15, 0xdb, 0x8a, + 0x1d, 0x24, 0xa8, 0x68, 0xfd, 0x5e, 0x8e, 0x27, 0x08, 0xa6, 0x43, 0x0d, 0x97, 0xb1, 0x3b, 0x27, + 0x7a, 0x55, 0x9a, 0x99, 0x45, 0xb2, 0x4f, 0xa0, 0x6e, 0x3b, 0x13, 0x77, 0x6e, 0x79, 0x8f, 0x1e, + 0x22, 0x13, 0x6c, 0x2a, 0x5b, 0xb5, 0xed, 0x4b, 0xf7, 0xe9, 0x42, 0x53, 0xca, 0x5e, 0x8e, 0xaf, + 0xb1, 0xb1, 0x4f, 0xa1, 0x21, 0xe1, 0x8f, 0xb7, 0x3f, 0x45, 0xb9, 0x1a, 0xc9, 0x69, 0x6b, 0x72, + 0x1f, 0x6f, 0x7f, 0xba, 0x97, 0xe3, 0xeb, 0x8c, 0xec, 0x1d, 0xa8, 0xe3, 0xb3, 0xa3, 0xd8, 0x9a, + 0x2f, 0x50, 0xb0, 0x2e, 0xad, 0x5a, 0xc3, 0xe2, 0xb6, 0x9e, 0x47, 0x81, 0x8f, 0x0c, 0x0d, 0x79, + 0x62, 0x09, 0x82, 0x6d, 0x02, 0xd8, 0xce, 0xd4, 0x5a, 0x7a, 0x31, 0x92, 0x37, 0xe4, 0xd1, 0x65, + 0x70, 0x3b, 0x15, 0x28, 0xbd, 0xb4, 0xbc, 0xa5, 0xa3, 0xdf, 0x04, 0x75, 0xdf, 0x0a, 0xad, 0x39, + 0x77, 0xa6, 0x4c, 0x83, 0xc2, 0x22, 0x88, 0xa4, 0x6b, 0xe1, 0x52, 0xef, 0x41, 0xf9, 0xd0, 0x0a, + 0x91, 0xc6, 0xa0, 0xe8, 0x5b, 0x73, 0x87, 0x88, 0x55, 0x4e, 0x6b, 0xbc, 0xf5, 0xe8, 0x34, 0x8a, + 0x9d, 0xb9, 0xf4, 0x3b, 0x09, 0x21, 0x7e, 0xe6, 0x05, 0x63, 0x79, 0xc3, 0x2a, 0x97, 0x90, 0xde, + 0x87, 0x72, 0x3b, 0xf0, 0x50, 0xdb, 0x75, 0xa8, 0x84, 0x8e, 0x37, 0x5a, 0x3d, 0xad, 0x1c, 0x3a, + 0xde, 0x7e, 0x10, 0x21, 0x61, 0x12, 0x08, 0x42, 0x5e, 0x10, 0x26, 0x01, 0x11, 0x92, 0xe7, 0x17, + 0x56, 0xcf, 0xd7, 0x4d, 0x80, 0x76, 0x10, 0x86, 0x3f, 0x59, 0xe7, 0x55, 0x28, 0xd9, 0xce, 0x62, + 0x15, 0x1d, 0x04, 0xe8, 0xf7, 0x40, 0x35, 0x4e, 0x16, 0x61, 0xcf, 0x8d, 0x62, 0x76, 0x0b, 0x8a, + 0x9e, 0x1b, 0xc5, 0x4d, 0x65, 0xb3, 0xb0, 0x55, 0xdb, 0x06, 0x71, 0x77, 0x48, 0xe5, 0x84, 0xd7, + 0xef, 0x01, 0x98, 0x56, 0x38, 0x73, 0x62, 0x8a, 0xcc, 0x9b, 0x50, 0x88, 0x4f, 0x17, 0xf4, 0xf4, + 0x94, 0x19, 0x09, 0x1c, 0xd1, 0xfa, 0xff, 0x2a, 0x50, 0x1b, 0x2e, 0xc7, 0xbf, 0x59, 0x3a, 0xe1, + 0x29, 0xda, 0xbb, 0xb5, 0xe2, 0xde, 0xd8, 0xbe, 0x26, 0xb8, 0x33, 0xf4, 0x95, 0x24, 0x6e, 0xc0, + 0x0f, 0x6c, 0x67, 0xe4, 0xda, 0xc9, 0x06, 0x10, 0xec, 0xda, 0x98, 0x0a, 0x82, 0x85, 0x3c, 0x92, + 0x7c, 0xb0, 0x60, 0x9b, 0x50, 0x9a, 0x1c, 0xb9, 0x9e, 0x4d, 0x31, 0xb4, 0x6e, 0xaf, 0x20, 0xb0, + 0x1b, 0xa0, 0x86, 0xc1, 0xf1, 0x28, 0x13, 0xe0, 0x95, 0x30, 0x38, 0x1e, 0xba, 0xdf, 0xe2, 0x69, + 0x8a, 0xfc, 0x02, 0x50, 0x1e, 0xb6, 0x5b, 0xbd, 0x16, 0xd7, 0x72, 0xb8, 0x36, 0xbe, 0xea, 0x0e, + 0xcd, 0xa1, 0xa6, 0xb0, 0x0d, 0x80, 0xfe, 0xc0, 0x1c, 0x49, 0x38, 0xcf, 0xca, 0x90, 0xef, 0xf6, + 0xb5, 0x02, 0xf2, 0x20, 0xbe, 0xdb, 0xd7, 0x8a, 0xac, 0x02, 0x85, 0x56, 0xff, 0x6b, 0xad, 0x44, + 0x8b, 0x5e, 0x4f, 0x2b, 0xeb, 0xff, 0xa6, 0x40, 0x75, 0x30, 0x7e, 0xee, 0x4c, 0x62, 0xdc, 0x33, + 0x7a, 0x8c, 0x13, 0xbe, 0x74, 0x42, 0xda, 0x76, 0x81, 0x4b, 0x08, 0x37, 0x62, 0x8f, 0x45, 0x96, + 0xe0, 0x79, 0x7b, 0x4c, 0x7c, 0x93, 0x23, 0x67, 0x6e, 0xd1, 0xe6, 0x90, 0x8f, 0x20, 0xf4, 0xd0, + 0x60, 0xfc, 0x9c, 0xb6, 0x57, 0xe0, 0xb8, 0x64, 0x6f, 0x41, 0x4d, 0xe8, 0x18, 0x91, 0x7b, 0x94, + 0xe8, 0x2c, 0x40, 0xa0, 0xfa, 0xe8, 0xa4, 0xd7, 0xa1, 0x62, 0x8f, 0x05, 0xb1, 0x4c, 0xc4, 0xb2, + 0x3d, 0x26, 0x02, 0x4a, 0x92, 0x56, 0x41, 0xac, 0x48, 0x49, 0x42, 0x11, 0xc3, 0x0d, 0x50, 0x83, + 0xf1, 0x73, 0x41, 0x55, 0x89, 0x5a, 0x09, 0xc6, 0xcf, 0x91, 0xa4, 0xff, 0x97, 0x02, 0xea, 0xe3, + 0xa5, 0x3f, 0x89, 0x31, 0x61, 0xde, 0x86, 0xe2, 0x74, 0xe9, 0x4f, 0xe4, 0xbd, 0xcb, 0xc4, 0x90, + 0xee, 0x99, 0x13, 0x11, 0x3d, 0xc9, 0x0a, 0x67, 0xe8, 0x81, 0xe7, 0x3c, 0x09, 0xf1, 0xfa, 0x5f, + 0x4b, 0x8d, 0x8f, 0x3d, 0x6b, 0xc6, 0x54, 0x28, 0xf6, 0x07, 0x7d, 0x43, 0xcb, 0xb1, 0x3a, 0xa8, + 0xdd, 0xbe, 0x69, 0xf0, 0x7e, 0xab, 0xa7, 0x29, 0x74, 0x35, 0x66, 0x6b, 0xa7, 0x67, 0x68, 0x79, + 0xa4, 0x1c, 0x0e, 0x7a, 0x2d, 0xb3, 0xdb, 0x33, 0xb4, 0xa2, 0xa0, 0xf0, 0x6e, 0xdb, 0xd4, 0x54, + 0xa6, 0x41, 0x7d, 0x9f, 0x0f, 0x3a, 0x07, 0x6d, 0x63, 0xd4, 0x3f, 0xe8, 0xf5, 0x34, 0x8d, 0x5d, + 0x81, 0x4b, 0x29, 0x66, 0x20, 0x90, 0x9b, 0x28, 0x72, 0xd8, 0xe2, 0x2d, 0xbe, 0xab, 0xfd, 0x92, + 0xa9, 0x50, 0x68, 0xed, 0xee, 0x6a, 0xbf, 0x55, 0x70, 0xf5, 0xac, 0xdb, 0xd7, 0x7e, 0x9b, 0xd7, + 0xff, 0x98, 0x87, 0x22, 0x1a, 0xf8, 0xfd, 0x6e, 0xcd, 0xde, 0x00, 0x65, 0x42, 0x37, 0x57, 0xdb, + 0xae, 0x09, 0x1a, 0x95, 0x84, 0xbd, 0x1c, 0x57, 0x70, 0xd7, 0x8a, 0xf0, 0xcf, 0xda, 0xf6, 0x86, + 0x20, 0x26, 0xc9, 0x06, 0xe9, 0x0b, 0x76, 0x13, 0x94, 0x97, 0xd2, 0x59, 0xeb, 0x82, 0x2e, 0xd2, + 0x0d, 0x52, 0x5f, 0xb2, 0x4d, 0x28, 0x4c, 0x02, 0x91, 0xfa, 0x53, 0xba, 0x08, 0xf6, 0xbd, 0x1c, + 0x47, 0x12, 0xea, 0x9f, 0xd2, 0xb5, 0xa6, 0xfa, 0x93, 0x5b, 0x41, 0x0d, 0x53, 0x76, 0x07, 0x0a, + 0xd1, 0x72, 0x4c, 0x77, 0x5b, 0xdb, 0xbe, 0x7c, 0x2e, 0xc6, 0x50, 0x4d, 0xb4, 0x1c, 0xb3, 0xbb, + 0x50, 0x9c, 0x04, 0x61, 0x48, 0xb7, 0x9c, 0xa6, 0xe8, 0x55, 0x6a, 0xc1, 0x52, 0x82, 0x74, 0xb6, + 0x09, 0x4a, 0x4c, 0x45, 0x22, 0x65, 0x5a, 0x45, 0x3f, 0x3e, 0x30, 0x66, 0xef, 0xc8, 0x84, 0x01, + 0x59, 0x9b, 0x92, 0x74, 0x82, 0x7a, 0x90, 0xba, 0x53, 0x86, 0xa2, 0x73, 0xb2, 0x08, 0xf5, 0x1b, + 0x50, 0x4d, 0x6b, 0x06, 0xab, 0x83, 0x62, 0xc9, 0xb0, 0x50, 0x2c, 0x7d, 0x0b, 0x53, 0x78, 0x52, + 0x15, 0xd6, 0x69, 0x08, 0x25, 0xc1, 0xa2, 0x8c, 0x31, 0xc2, 0x30, 0xad, 0x76, 0x5e, 0x91, 0xa4, + 0xdf, 0x81, 0x82, 0xe5, 0xcd, 0x88, 0x7d, 0x63, 0x9b, 0x25, 0x5b, 0x9b, 0x2f, 0x42, 0x27, 0x8a, + 0xc4, 0x2d, 0x5a, 0xde, 0x2c, 0xb9, 0xe3, 0xc2, 0xc5, 0x77, 0xfc, 0x33, 0xa8, 0xc8, 0xda, 0x21, + 0x2f, 0xab, 0x21, 0x38, 0x3a, 0x02, 0xc9, 0x13, 0x2a, 0x6b, 0x42, 0x65, 0x11, 0xba, 0x73, 0x2b, + 0x3c, 0x15, 0x05, 0x9b, 0x27, 0x20, 0xe6, 0xda, 0xc5, 0x0b, 0xd7, 0x3e, 0x49, 0x3a, 0x08, 0x02, + 0x90, 0x7f, 0x12, 0xcc, 0xe7, 0x8e, 0x1f, 0xcb, 0xf8, 0x4b, 0x40, 0xfd, 0x37, 0x50, 0x91, 0xda, + 0xd9, 0xdb, 0x50, 0xc7, 0x66, 0x62, 0x64, 0x8d, 0x5d, 0xcf, 0x8d, 0x4f, 0x65, 0x8b, 0x51, 0x43, + 0x5c, 0x4b, 0xa0, 0x30, 0xba, 0xf0, 0x40, 0xa5, 0x1f, 0xae, 0x45, 0x17, 0xe2, 0xd9, 0x6d, 0x68, + 0x04, 0xa1, 0x3b, 0x73, 0xfd, 0x51, 0x14, 0x87, 0xae, 0x3f, 0x93, 0x39, 0xb3, 0x2e, 0x90, 0x43, + 0xc2, 0xe9, 0x7f, 0xab, 0x80, 0xda, 0xf5, 0x6d, 0xe7, 0x04, 0x8f, 0xf2, 0x5e, 0x36, 0x3b, 0x37, + 0x85, 0xc2, 0x84, 0x28, 0x16, 0xab, 0xe3, 0x49, 0x8e, 0x3d, 0x9f, 0x39, 0xf6, 0x37, 0xa0, 0x8a, + 0x45, 0x07, 0xd7, 0x51, 0xb3, 0xb0, 0x59, 0xd8, 0xaa, 0x72, 0x75, 0x12, 0x78, 0x98, 0x3d, 0x22, + 0xfd, 0x3e, 0x54, 0x53, 0x15, 0xac, 0x06, 0x95, 0x6e, 0xff, 0xb0, 0xd5, 0xed, 0x75, 0xb4, 0x1c, + 0x02, 0xdf, 0x0c, 0xfa, 0xc6, 0xd3, 0xd6, 0xbe, 0xa6, 0x60, 0x12, 0xdd, 0x19, 0x76, 0xb5, 0xbc, + 0x7e, 0x07, 0x1a, 0xfb, 0xe2, 0x1c, 0x9f, 0x38, 0xa7, 0x68, 0xdd, 0x55, 0x28, 0x09, 0xcd, 0x0a, + 0x69, 0x16, 0x80, 0xbe, 0x0d, 0xea, 0x7e, 0x18, 0x2c, 0x9c, 0x30, 0x3e, 0xc5, 0x4c, 0xf9, 0xc2, + 0x39, 0x95, 0x9e, 0x80, 0x4b, 0x94, 0xa1, 0x92, 0x2f, 0xcd, 0x94, 0xf5, 0xff, 0x0b, 0x54, 0x4d, + 0x32, 0xae, 0x13, 0xa1, 0xea, 0xfb, 0x00, 0x8b, 0x14, 0x21, 0x0b, 0x5f, 0x12, 0xbb, 0x52, 0x39, + 0xcf, 0x70, 0xe8, 0x6f, 0x42, 0xe5, 0xd0, 0x75, 0x8e, 0xa5, 0xfb, 0xbd, 0x74, 0x9d, 0xe3, 0xc4, + 0xfd, 0x70, 0xad, 0xff, 0x21, 0x0f, 0xaa, 0x89, 0xbd, 0xe8, 0xab, 0xfc, 0x73, 0x13, 0x63, 0xcf, + 0x4b, 0x12, 0xe3, 0x2a, 0xca, 0x3b, 0x98, 0x3a, 0x91, 0xc2, 0xee, 0x41, 0xd1, 0x76, 0xa6, 0xe2, + 0x14, 0x6b, 0x49, 0xa5, 0x4c, 0x74, 0xa2, 0x0f, 0xd2, 0x4d, 0x10, 0xcf, 0xeb, 0xff, 0xa8, 0x90, + 0xdf, 0xd0, 0xc1, 0xde, 0x81, 0xfc, 0xe2, 0x85, 0x4c, 0x5b, 0x57, 0x92, 0x1d, 0x64, 0x4e, 0x71, + 0x2f, 0xc7, 0xf3, 0x8b, 0x17, 0x4c, 0x87, 0x02, 0xfa, 0x65, 0x3e, 0x1b, 0xb1, 0xc9, 0x4d, 0x63, + 0x82, 0x40, 0x3f, 0xfd, 0x64, 0xed, 0x50, 0x0a, 0xeb, 0x2a, 0x33, 0xa7, 0x87, 0x5d, 0xd6, 0x8a, + 0x11, 0x2b, 0x03, 0x1d, 0xc8, 0x5a, 0xd0, 0xc8, 0xd3, 0xc2, 0x64, 0x80, 0xc4, 0x9d, 0x12, 0x14, + 0x6c, 0x67, 0xaa, 0x87, 0x50, 0x6c, 0x07, 0x51, 0x8c, 0x67, 0x34, 0xb1, 0x42, 0xd1, 0xe0, 0x2b, + 0x9c, 0xd6, 0x18, 0x26, 0x61, 0x70, 0x4c, 0x45, 0x3b, 0x4f, 0xe8, 0x04, 0xc4, 0x6b, 0xf6, 0xed, + 0x97, 0xa2, 0x93, 0xe6, 0xb8, 0xa4, 0x56, 0x3d, 0xb6, 0x42, 0x11, 0xa9, 0x0a, 0x17, 0x00, 0x62, + 0xe3, 0x20, 0x96, 0x7d, 0xb4, 0xc2, 0x05, 0xa0, 0xff, 0x83, 0x02, 0x15, 0x3c, 0x6a, 0x2b, 0xb6, + 0xd0, 0x61, 0xb1, 0x33, 0x98, 0x04, 0x4b, 0x3f, 0x96, 0x0d, 0x14, 0xb6, 0x0a, 0x6d, 0x84, 0xd9, + 0x9b, 0x00, 0x14, 0x82, 0x82, 0x2a, 0x9a, 0x90, 0x2a, 0x62, 0x04, 0x19, 0xdd, 0x71, 0xe9, 0x79, + 0xe2, 0x8a, 0x54, 0x2e, 0x00, 0xb4, 0xcd, 0x7d, 0xb0, 0xdd, 0x2c, 0x6e, 0x16, 0xb0, 0x9d, 0x74, + 0x1f, 0x6c, 0x13, 0xe6, 0xd1, 0xc3, 0x66, 0x69, 0xb3, 0x80, 0xe5, 0xdb, 0x7d, 0xf4, 0x10, 0x31, + 0xd3, 0x07, 0xdb, 0xcd, 0xf2, 0x66, 0x61, 0x2b, 0xcf, 0x71, 0x49, 0x98, 0x47, 0x0f, 0x9b, 0x95, + 0xcd, 0x02, 0xee, 0x68, 0x2a, 0x12, 0x63, 0xd4, 0x54, 0xc9, 0xd1, 0x95, 0x48, 0x7f, 0x06, 0xc0, + 0x83, 0xe3, 0xc8, 0x89, 0xc9, 0xea, 0xbb, 0x69, 0xa3, 0xa0, 0x64, 0xef, 0x2f, 0xf1, 0x8e, 0xb4, + 0x71, 0x78, 0x7b, 0xcd, 0xcb, 0x1a, 0x2b, 0x2f, 0xb3, 0x62, 0x4b, 0xb8, 0x99, 0xfe, 0x9f, 0x0a, + 0xd4, 0x06, 0xa1, 0xed, 0x84, 0x3b, 0xa7, 0xc3, 0x85, 0x33, 0x49, 0x73, 0x8a, 0xf2, 0x8a, 0x9c, + 0x72, 0x93, 0x22, 0xdc, 0xb3, 0xb0, 0xda, 0xc8, 0x98, 0x5a, 0x21, 0xd8, 0xc7, 0x50, 0x9c, 0x7a, + 0x96, 0x48, 0x34, 0x1b, 0xdb, 0x6f, 0xca, 0xa6, 0x60, 0xa5, 0x3e, 0x59, 0x63, 0xbd, 0xe7, 0xc4, + 0xaa, 0xff, 0x3a, 0x7d, 0x3e, 0x35, 0x01, 0xd8, 0x42, 0x0d, 0xdb, 0x5a, 0x0e, 0xbb, 0x81, 0x8e, + 0x31, 0x6c, 0x6b, 0x0a, 0xbb, 0x04, 0x35, 0x2c, 0xde, 0xc3, 0xd1, 0xe3, 0x2e, 0x1f, 0x9a, 0x5a, + 0x9e, 0x7a, 0x32, 0x42, 0xf4, 0x5a, 0x43, 0x53, 0xb4, 0x01, 0x07, 0xfd, 0xee, 0xaf, 0x0e, 0x0c, + 0x4d, 0x5d, 0x6b, 0x1d, 0x34, 0xec, 0x2f, 0xe0, 0x99, 0xeb, 0xdb, 0xc1, 0x31, 0x6d, 0xee, 0x03, + 0xa8, 0x2f, 0xac, 0x30, 0x76, 0xd1, 0xd6, 0xd1, 0xf8, 0xf4, 0x82, 0x06, 0xb7, 0x96, 0xd2, 0x77, + 0x4e, 0xd9, 0xfb, 0xa0, 0x06, 0x68, 0x1a, 0xb2, 0x8a, 0x23, 0xbc, 0x7c, 0x6e, 0x47, 0xbc, 0x12, + 0x08, 0x00, 0x5d, 0xd8, 0x73, 0x2c, 0x5b, 0xb6, 0xd5, 0xb4, 0xc6, 0x6b, 0xc5, 0xe3, 0x10, 0xd3, + 0x26, 0x2e, 0x31, 0x33, 0x54, 0x0f, 0x16, 0x38, 0x69, 0xb5, 0xe3, 0x93, 0x6c, 0x9b, 0xa6, 0xac, + 0xb5, 0x69, 0x37, 0x40, 0x8d, 0xc7, 0x22, 0x91, 0xca, 0x53, 0xae, 0xc4, 0x63, 0x2f, 0x69, 0xed, + 0x16, 0xa1, 0x3b, 0xc2, 0x3c, 0x27, 0xf2, 0x79, 0x79, 0x11, 0xba, 0x4f, 0x1c, 0x2c, 0x07, 0x35, + 0x49, 0x18, 0x61, 0x68, 0xa7, 0x23, 0x2e, 0x12, 0xbb, 0xf6, 0x09, 0xea, 0x3c, 0x72, 0x6d, 0x87, + 0x24, 0x45, 0xc7, 0x58, 0x41, 0x18, 0x45, 0x37, 0xa1, 0x9e, 0x90, 0x46, 0xab, 0x72, 0x05, 0x92, + 0x8c, 0xc2, 0x1f, 0x40, 0x6d, 0x49, 0x66, 0x8f, 0xc8, 0xa3, 0x2a, 0x17, 0xe4, 0x2d, 0x10, 0x0c, + 0x6d, 0xcc, 0x5e, 0x6f, 0x41, 0x2d, 0x88, 0x8f, 0x9c, 0x70, 0x64, 0xc5, 0x71, 0x98, 0xf8, 0x31, + 0x10, 0xaa, 0x85, 0x18, 0x62, 0xa0, 0xb3, 0x15, 0x0c, 0x55, 0xc9, 0x80, 0x28, 0x62, 0xc0, 0x02, + 0x5f, 0x6b, 0xf9, 0x96, 0x77, 0xfa, 0xad, 0xd3, 0xf5, 0xa7, 0x01, 0x06, 0xa3, 0xeb, 0x2f, 0x96, + 0xf1, 0x08, 0x93, 0x80, 0xec, 0x0a, 0xaa, 0x84, 0xc1, 0xc0, 0x20, 0x7d, 0xcb, 0x38, 0xa5, 0x8b, + 0x3e, 0x01, 0x04, 0x8a, 0x18, 0x52, 0x79, 0x4a, 0x28, 0x85, 0x8c, 0x3c, 0xce, 0x01, 0x19, 0x79, + 0xa2, 0x17, 0xb3, 0xf2, 0xc4, 0x70, 0x1b, 0x1a, 0x38, 0x89, 0x8e, 0x26, 0x81, 0x1f, 0x2d, 0xe7, + 0x8e, 0x4d, 0x47, 0x58, 0x10, 0xe3, 0x69, 0x5b, 0xe2, 0x50, 0xcb, 0xdc, 0x99, 0x07, 0xe1, 0xa9, + 0xd0, 0x52, 0x16, 0x5a, 0x04, 0x8a, 0xc6, 0x8d, 0x7f, 0xae, 0x43, 0xb1, 0x1f, 0xd8, 0x0e, 0xfb, + 0x08, 0xaa, 0x34, 0xdd, 0xc4, 0xa7, 0x0b, 0x47, 0xd6, 0x5b, 0x99, 0x5a, 0x91, 0x4c, 0x3f, 0x94, + 0xe0, 0x55, 0x5f, 0xae, 0x5e, 0x3d, 0x0f, 0xdd, 0xc2, 0x28, 0x8f, 0xe2, 0xf5, 0x36, 0x06, 0xb3, + 0x2a, 0x27, 0x3c, 0x79, 0x7d, 0x18, 0x60, 0x63, 0x3e, 0xa2, 0x2e, 0xad, 0x78, 0x81, 0xd7, 0x0b, + 0x3a, 0x4d, 0x7f, 0xaf, 0x83, 0x4a, 0x53, 0x53, 0xe8, 0xf8, 0x94, 0xb3, 0x4a, 0x3c, 0x85, 0xd1, + 0xea, 0xe7, 0x81, 0xeb, 0x0b, 0xab, 0xcb, 0xe7, 0xac, 0xfe, 0x32, 0x70, 0x7d, 0x0a, 0x6d, 0x15, + 0xb9, 0xc8, 0xea, 0xdb, 0x50, 0x09, 0x7c, 0xf1, 0xdc, 0xca, 0xb9, 0xe7, 0x96, 0x03, 0x9f, 0x1e, + 0xf9, 0x1e, 0xd4, 0xa6, 0xae, 0x17, 0x3b, 0xa1, 0x60, 0x54, 0xcf, 0x31, 0x82, 0x20, 0x13, 0xf3, + 0x1d, 0x50, 0x67, 0x61, 0xb0, 0x5c, 0x60, 0x54, 0x56, 0xcf, 0x71, 0x56, 0x88, 0xb6, 0x73, 0x8a, + 0xbb, 0xa6, 0xa5, 0xeb, 0xcf, 0x46, 0x91, 0x83, 0xbd, 0xe9, 0xb9, 0x5d, 0x27, 0xf4, 0xa1, 0x43, + 0x5a, 0xad, 0xd9, 0x4c, 0x3c, 0xbf, 0x76, 0x5e, 0xab, 0x35, 0x9b, 0xd1, 0xc3, 0xb3, 0x29, 0xa1, + 0xfe, 0x83, 0x29, 0xe1, 0xa3, 0x55, 0xd0, 0xc4, 0x27, 0x51, 0xb3, 0x41, 0x02, 0x72, 0x54, 0x4a, + 0x93, 0x40, 0x1a, 0x37, 0xf1, 0x49, 0xc4, 0xde, 0x03, 0xf5, 0x18, 0xfb, 0xb5, 0x85, 0x33, 0xa1, + 0x37, 0x18, 0x69, 0xcb, 0xbd, 0xca, 0x62, 0xbc, 0x72, 0xec, 0xfa, 0x94, 0xce, 0x36, 0xa1, 0xe4, + 0xb9, 0x73, 0x37, 0x6e, 0x5e, 0x3a, 0x3f, 0xf8, 0x12, 0x81, 0xe9, 0x50, 0x0e, 0xa6, 0x53, 0xdc, + 0xbe, 0x76, 0x8e, 0x45, 0x52, 0xd8, 0x7b, 0x50, 0x8d, 0xb1, 0x70, 0x8c, 0x6c, 0x67, 0xda, 0xbc, + 0x7c, 0x61, 0x3d, 0x51, 0xe3, 0xa4, 0x97, 0xd9, 0x02, 0x9c, 0x06, 0x47, 0xa1, 0x33, 0x6d, 0xb2, + 0x8b, 0x07, 0xbf, 0x72, 0x30, 0x7e, 0x8e, 0x43, 0xef, 0xc7, 0x50, 0x0b, 0xa9, 0x62, 0x8d, 0x6c, + 0x2b, 0xb6, 0x9a, 0x57, 0xb2, 0x9b, 0x59, 0x95, 0x32, 0x0e, 0xe1, 0xaa, 0xac, 0xdd, 0x86, 0x86, + 0x73, 0x12, 0x87, 0xd6, 0x28, 0x58, 0x60, 0x06, 0x8e, 0x9a, 0x57, 0x45, 0xbf, 0x4a, 0xc8, 0x81, + 0xc0, 0xb1, 0x5f, 0xc0, 0x25, 0xdb, 0xf1, 0x9c, 0xd8, 0x21, 0xeb, 0xa2, 0x76, 0x7c, 0xd2, 0x7c, + 0x8d, 0xce, 0xf5, 0x6a, 0xd2, 0x9d, 0xa7, 0x44, 0x3c, 0xdc, 0xb3, 0xcc, 0xd8, 0x57, 0x8f, 0x5d, + 0xdf, 0x46, 0xb7, 0x88, 0xad, 0x59, 0xd4, 0xbc, 0x46, 0x2e, 0x5e, 0x93, 0x38, 0xd3, 0x9a, 0x45, + 0xec, 0x21, 0xd4, 0x2d, 0x91, 0x79, 0x46, 0xae, 0x3f, 0x0d, 0x9a, 0xd7, 0xb3, 0x83, 0x54, 0x26, + 0x27, 0xf1, 0x9a, 0xb5, 0x02, 0xf4, 0x7f, 0x2f, 0x80, 0x9a, 0x84, 0x2d, 0x76, 0xb4, 0x07, 0xfd, + 0x27, 0xfd, 0xc1, 0xb3, 0xbe, 0x96, 0xc3, 0x7a, 0x75, 0xd8, 0xea, 0x1d, 0x18, 0xa3, 0x61, 0xbb, + 0xd5, 0x17, 0xef, 0x14, 0x68, 0x9e, 0x15, 0x70, 0x9e, 0x5d, 0x86, 0xc6, 0xe3, 0x83, 0x7e, 0xdb, + 0xec, 0x0e, 0xfa, 0x02, 0x55, 0x40, 0x94, 0xf1, 0x95, 0x28, 0x63, 0x02, 0x55, 0x44, 0xd4, 0xd3, + 0x96, 0x69, 0xf0, 0x6e, 0x82, 0x2a, 0xe1, 0x53, 0xf6, 0xf9, 0xe0, 0x4b, 0xa3, 0x6d, 0x6a, 0xc0, + 0x5e, 0x83, 0xcb, 0xa9, 0x48, 0xa2, 0x4e, 0xab, 0x61, 0x41, 0x4c, 0xc4, 0xb4, 0xab, 0xa8, 0x84, + 0x1b, 0xed, 0x03, 0x3e, 0xec, 0x1e, 0x1a, 0xa3, 0xb6, 0x69, 0x68, 0xaf, 0x61, 0xa1, 0x1d, 0x76, + 0xfb, 0x4f, 0xb4, 0x6b, 0xac, 0x01, 0x55, 0x5c, 0x09, 0xed, 0xd7, 0xa9, 0x14, 0xef, 0xee, 0x6a, + 0xb7, 0x50, 0x45, 0xa7, 0x3b, 0x34, 0xbb, 0xfd, 0xb6, 0xa9, 0xbd, 0x85, 0xd5, 0xf6, 0x71, 0xb7, + 0x67, 0x1a, 0x5c, 0xdb, 0x44, 0xd9, 0x2f, 0x07, 0xdd, 0xbe, 0xf6, 0x36, 0x8d, 0xe2, 0xad, 0xa7, + 0xfb, 0x3d, 0x43, 0xd3, 0x49, 0xe3, 0x80, 0x9b, 0xda, 0x6d, 0x56, 0x85, 0xd2, 0x41, 0x1f, 0xed, + 0x78, 0x07, 0x95, 0xd3, 0x72, 0xd4, 0xea, 0xf5, 0xb4, 0x3b, 0x99, 0x9a, 0x7d, 0x17, 0xd7, 0xcf, + 0xba, 0xfd, 0xce, 0xe0, 0x99, 0xf6, 0x33, 0x64, 0xdb, 0xe1, 0x83, 0x56, 0xa7, 0x8d, 0xa5, 0x7d, + 0x0b, 0x15, 0x0c, 0xf7, 0x7b, 0x5d, 0x53, 0x7b, 0x17, 0xb9, 0x76, 0x5b, 0xe6, 0x9e, 0xc1, 0xb5, + 0x7b, 0xb8, 0x6e, 0x0d, 0x87, 0x06, 0x37, 0xb5, 0x6d, 0x5c, 0x77, 0xfb, 0xb4, 0x7e, 0x40, 0x5a, + 0xf7, 0x3b, 0x2d, 0xd3, 0xd0, 0x1e, 0xe2, 0xba, 0x63, 0xf4, 0x0c, 0xd3, 0xd0, 0x3e, 0x41, 0xad, + 0xd4, 0x15, 0x0c, 0xf1, 0xa8, 0x1e, 0xe1, 0x29, 0xa4, 0x20, 0xd9, 0xf3, 0x73, 0x7c, 0xd0, 0xd3, + 0x6e, 0xff, 0x60, 0xa8, 0x7d, 0x8a, 0xcc, 0xb4, 0x24, 0xca, 0x67, 0xfa, 0x73, 0x50, 0x93, 0xbc, + 0x86, 0x5c, 0xdd, 0x7e, 0xdf, 0xe0, 0xa2, 0x3f, 0xe9, 0x19, 0x8f, 0x4d, 0x4d, 0x41, 0x24, 0xef, + 0xee, 0xee, 0x61, 0x67, 0x52, 0x85, 0xd2, 0xe0, 0x00, 0x8f, 0xa6, 0x40, 0x87, 0x60, 0x3c, 0xed, + 0x6a, 0x45, 0x5c, 0xb5, 0xfa, 0x66, 0x57, 0x2b, 0xd1, 0x21, 0x75, 0xfb, 0xbb, 0x3d, 0x43, 0x2b, + 0x23, 0xf6, 0x69, 0x8b, 0x3f, 0xd1, 0x2a, 0x28, 0xd4, 0xda, 0xdf, 0xef, 0x7d, 0xad, 0xa9, 0xfa, + 0x16, 0x54, 0x5a, 0xb3, 0xd9, 0x53, 0x2c, 0x10, 0x2a, 0x14, 0x1f, 0x1f, 0xf4, 0x7a, 0xe2, 0x75, + 0xd4, 0xce, 0xc0, 0x34, 0x07, 0x4f, 0xc5, 0x70, 0x64, 0x0e, 0xf6, 0xb5, 0xbc, 0xfe, 0x07, 0x05, + 0x36, 0xd6, 0x5d, 0x9d, 0x5d, 0x03, 0xd9, 0x3d, 0x9c, 0xe9, 0x25, 0x9a, 0x90, 0xf4, 0x0e, 0x67, + 0x5b, 0x09, 0x1d, 0xea, 0xcb, 0xc8, 0x11, 0x6a, 0x9e, 0xa4, 0xfd, 0xc4, 0x1a, 0x8e, 0x6d, 0x42, + 0x6d, 0x62, 0xf9, 0x66, 0xb8, 0xf4, 0x27, 0x56, 0x2c, 0x0a, 0xa3, 0xca, 0xb3, 0x28, 0x6c, 0x09, + 0xdd, 0x68, 0x4f, 0xb4, 0x0a, 0x72, 0x00, 0x5e, 0x21, 0xf4, 0xdf, 0xe5, 0xa1, 0xf4, 0xab, 0xa5, + 0x13, 0x9e, 0xb2, 0x47, 0x50, 0x8d, 0xe2, 0x79, 0x9c, 0x2d, 0x79, 0x37, 0x44, 0x4c, 0x11, 0xfd, + 0xfe, 0x30, 0xb6, 0x62, 0x07, 0xc7, 0x60, 0x51, 0xf8, 0x90, 0x97, 0x62, 0x89, 0x7a, 0x7b, 0x67, + 0x21, 0xda, 0xd8, 0x12, 0x17, 0x00, 0x26, 0x3f, 0xac, 0x7f, 0xc9, 0x80, 0x04, 0xab, 0x32, 0xc4, + 0x05, 0x01, 0x93, 0xdf, 0xc2, 0x0a, 0xad, 0x79, 0x74, 0x41, 0xc5, 0x93, 0x14, 0x2c, 0x76, 0x47, + 0x8e, 0x85, 0x91, 0x1f, 0x51, 0xb1, 0xab, 0xf2, 0x14, 0xd6, 0x9f, 0x41, 0x63, 0xcd, 0xa4, 0xf5, + 0xa0, 0xc6, 0xbb, 0x34, 0x7a, 0xe8, 0x4f, 0x4a, 0xc6, 0x05, 0xf3, 0x19, 0xb7, 0x2b, 0x64, 0xdc, + 0xb1, 0x48, 0x0e, 0x66, 0xf0, 0x5d, 0x43, 0x2b, 0xe9, 0x7f, 0x9f, 0x87, 0xcb, 0x66, 0x68, 0xf9, + 0x11, 0x35, 0xcd, 0xed, 0xc0, 0x8f, 0xc3, 0xc0, 0x63, 0x7f, 0x06, 0x6a, 0x3c, 0xf1, 0xb2, 0xa7, + 0xf3, 0x96, 0x4c, 0xc3, 0x67, 0x59, 0xef, 0x9b, 0x13, 0x8f, 0xce, 0xa8, 0x12, 0x8b, 0x05, 0xfb, + 0x00, 0x4a, 0x63, 0x67, 0xe6, 0xfa, 0x72, 0x9e, 0x7b, 0xed, 0xac, 0xe0, 0x0e, 0x12, 0xf7, 0x72, + 0x5c, 0x70, 0xb1, 0x8f, 0xa0, 0x3c, 0x09, 0xe6, 0x58, 0x39, 0x44, 0xcf, 0x70, 0xed, 0xfc, 0x83, + 0x90, 0xba, 0x97, 0xe3, 0x92, 0x8f, 0x3d, 0x02, 0x35, 0x0c, 0x3c, 0x6f, 0x6c, 0x4d, 0x5e, 0xc8, + 0xb9, 0xae, 0x79, 0x56, 0x86, 0x4b, 0xfa, 0x5e, 0x8e, 0xa7, 0xbc, 0xfa, 0x7d, 0xa8, 0x48, 0x63, + 0xf1, 0x00, 0x76, 0x8c, 0xdd, 0xae, 0x3c, 0xbb, 0xf6, 0xe0, 0xe9, 0xd3, 0x2e, 0x9e, 0x5d, 0x1d, + 0x54, 0x3e, 0xe8, 0xf5, 0x76, 0x5a, 0xed, 0x27, 0x5a, 0x7e, 0x47, 0x85, 0xb2, 0x45, 0x6f, 0xb2, + 0xf4, 0xbf, 0x52, 0xe0, 0xd2, 0x99, 0x0d, 0xb0, 0x4f, 0xa1, 0x38, 0x0f, 0xec, 0xe4, 0x78, 0xde, + 0xb9, 0x70, 0x97, 0x19, 0x18, 0xe3, 0x88, 0x93, 0x84, 0xfe, 0x19, 0x6c, 0xac, 0xe3, 0x33, 0x6f, + 0x1b, 0x1b, 0x50, 0xe5, 0x46, 0xab, 0x33, 0x1a, 0xf4, 0x7b, 0x5f, 0x8b, 0xec, 0x4c, 0xe0, 0x33, + 0xde, 0x35, 0x0d, 0x2d, 0xaf, 0xff, 0x1a, 0xb4, 0xb3, 0x07, 0xc3, 0x76, 0xe1, 0xd2, 0x24, 0x98, + 0x2f, 0x3c, 0x87, 0x26, 0x89, 0xcc, 0x95, 0xdd, 0xba, 0xe0, 0x24, 0x25, 0x1b, 0xdd, 0xd8, 0xc6, + 0x64, 0x0d, 0xd6, 0xff, 0x02, 0xd8, 0xf9, 0x13, 0xfc, 0xd3, 0xa9, 0xff, 0x0f, 0x05, 0x8a, 0xfb, + 0x9e, 0xe5, 0xb3, 0xdb, 0x50, 0xa2, 0xd7, 0x7f, 0x72, 0xae, 0xab, 0x65, 0xe2, 0x0e, 0xdd, 0x82, + 0x68, 0xec, 0x3d, 0x28, 0xc4, 0x13, 0x4f, 0xfa, 0xd0, 0xf5, 0x57, 0x38, 0xdf, 0x5e, 0x8e, 0x23, + 0x17, 0xdb, 0x82, 0x82, 0x6d, 0x7b, 0xd2, 0x81, 0x92, 0xda, 0x6b, 0xc5, 0x56, 0xc7, 0x99, 0xba, + 0xbe, 0x2b, 0x5f, 0x46, 0x22, 0x0b, 0xbb, 0x03, 0x05, 0x7b, 0xe2, 0x49, 0xb7, 0xb9, 0xbc, 0xe2, + 0xcc, 0x28, 0xb4, 0x27, 0x1e, 0xbb, 0x0b, 0x05, 0xd7, 0x8f, 0xe4, 0x7b, 0x4f, 0x96, 0xbc, 0x91, + 0x88, 0x9c, 0x30, 0x3e, 0xb4, 0xbc, 0xa5, 0x13, 0xd1, 0x5b, 0x09, 0x3f, 0xda, 0x29, 0x03, 0x7d, + 0x49, 0xd4, 0xff, 0x47, 0x81, 0x7a, 0x96, 0xfe, 0x93, 0x86, 0xa9, 0x8f, 0xb1, 0xe5, 0x58, 0x78, + 0xee, 0xc4, 0x8d, 0xc5, 0x60, 0x53, 0xb8, 0x60, 0xb0, 0xa9, 0x27, 0x2c, 0x34, 0xda, 0xbc, 0x07, + 0x62, 0x8e, 0x11, 0xfc, 0xc5, 0x0b, 0xf8, 0xab, 0x44, 0x4f, 0xe7, 0xa0, 0xcc, 0x98, 0x53, 0x3a, + 0x3b, 0xe6, 0xb0, 0xbb, 0xf4, 0x99, 0x66, 0x39, 0xf7, 0x23, 0x7a, 0x1d, 0x90, 0xaa, 0x12, 0x48, + 0x9e, 0x10, 0xf5, 0xf7, 0x31, 0x64, 0x71, 0x89, 0x69, 0x4d, 0xac, 0x2e, 0x18, 0x5f, 0x25, 0x45, + 0xff, 0xbf, 0x3c, 0xd4, 0x32, 0x47, 0xcc, 0x1e, 0x82, 0x6a, 0xaf, 0xe7, 0x96, 0x1b, 0xe7, 0xee, + 0xe1, 0x7e, 0x27, 0xc9, 0x2a, 0xb6, 0x8c, 0xd8, 0xcf, 0xa0, 0x81, 0xfd, 0xdb, 0x4b, 0x2b, 0x74, + 0xa9, 0x7d, 0x92, 0x9e, 0x21, 0xef, 0x66, 0xe8, 0xc4, 0x87, 0x09, 0x65, 0x2f, 0xc7, 0xeb, 0x51, + 0x06, 0x66, 0xef, 0xe2, 0x90, 0xea, 0x2c, 0xac, 0xd0, 0x91, 0x1e, 0xd2, 0x48, 0xde, 0x1b, 0x11, + 0x72, 0x2f, 0xc7, 0x13, 0x3a, 0xb2, 0x3a, 0x27, 0xce, 0x64, 0x29, 0x8b, 0x4b, 0xca, 0x6a, 0x08, + 0x24, 0xb2, 0x4a, 0x3a, 0xdb, 0x06, 0xb0, 0x1d, 0xcb, 0xf3, 0x02, 0x2a, 0x45, 0xa5, 0x6c, 0x4b, + 0xd9, 0x49, 0xf1, 0xe2, 0x9b, 0x5f, 0x02, 0xe9, 0x33, 0xa8, 0xc8, 0x8d, 0x61, 0xd9, 0x1f, 0x1a, + 0xe6, 0xe8, 0xb0, 0xc5, 0xbb, 0xd8, 0x7e, 0x0d, 0xb5, 0x1c, 0x26, 0xa5, 0x5d, 0xde, 0xea, 0xcb, + 0x24, 0xce, 0x8d, 0xc3, 0xc1, 0x13, 0x43, 0xcb, 0x8b, 0x97, 0x0f, 0xfd, 0xaf, 0xb5, 0x82, 0x68, + 0xb1, 0x8c, 0xfd, 0x16, 0xc7, 0x1c, 0x5e, 0x83, 0x8a, 0xf1, 0x95, 0xd1, 0x3e, 0x30, 0x0d, 0xad, + 0x84, 0x79, 0xa2, 0x63, 0xb4, 0x7a, 0xbd, 0x41, 0x1b, 0x13, 0x7c, 0x79, 0xa7, 0x8a, 0x37, 0x49, + 0x27, 0xa9, 0xff, 0x65, 0x15, 0x36, 0xd6, 0x63, 0x81, 0xfd, 0x1c, 0x54, 0xdb, 0x5e, 0xbb, 0x81, + 0x9b, 0x17, 0xc5, 0xcc, 0xfd, 0x8e, 0x9d, 0x5c, 0x82, 0x58, 0xb0, 0xb7, 0x93, 0xc8, 0xcd, 0x9f, + 0x8b, 0xdc, 0x24, 0x6e, 0xbf, 0x80, 0x4b, 0x93, 0xd0, 0xc1, 0x31, 0x03, 0x5b, 0xed, 0xb1, 0x15, + 0x39, 0xeb, 0x61, 0xd9, 0x26, 0x62, 0x47, 0xd2, 0xf6, 0x72, 0x7c, 0x63, 0xb2, 0x86, 0x61, 0x9f, + 0xc3, 0x86, 0x45, 0xe3, 0x57, 0x2a, 0x5f, 0xcc, 0xbe, 0xec, 0x6b, 0x21, 0x2d, 0x23, 0xde, 0xb0, + 0xb2, 0x08, 0x74, 0x13, 0x3b, 0x0c, 0x16, 0x2b, 0xe1, 0xb5, 0x10, 0xee, 0x84, 0xc1, 0x22, 0x23, + 0x5b, 0xb7, 0x33, 0x30, 0x7b, 0x04, 0x75, 0x69, 0x39, 0x4d, 0x18, 0xf2, 0xa3, 0xc6, 0xe5, 0xac, + 0xd9, 0xd4, 0xde, 0xec, 0xe5, 0x78, 0x6d, 0xb2, 0x02, 0xd9, 0x03, 0xa8, 0x09, 0x83, 0x85, 0x58, + 0x25, 0xeb, 0x09, 0x64, 0x6d, 0x22, 0x05, 0x56, 0x0a, 0xb1, 0x8f, 0x00, 0xc8, 0x4e, 0x21, 0xa3, + 0x66, 0xc7, 0x17, 0x34, 0x32, 0x11, 0xa9, 0xda, 0x09, 0x90, 0x31, 0xcf, 0xf5, 0x6d, 0xe7, 0x44, + 0x7e, 0x04, 0x59, 0x33, 0x8f, 0xde, 0x99, 0xae, 0xcc, 0x23, 0x70, 0x65, 0x9e, 0x10, 0x83, 0x73, + 0xe6, 0x25, 0x52, 0xc2, 0x3c, 0x21, 0x94, 0x98, 0x27, 0x64, 0x6a, 0x67, 0xcd, 0x4b, 0x44, 0xc8, + 0x3c, 0x21, 0xf1, 0x39, 0x6c, 0xc4, 0xb2, 0x09, 0x93, 0x9b, 0xaa, 0x67, 0xaf, 0x2d, 0x69, 0xd0, + 0x92, 0x8d, 0x35, 0xe2, 0x2c, 0x02, 0xa5, 0xa3, 0xa3, 0xe0, 0x38, 0x13, 0xde, 0x8d, 0xac, 0xf4, + 0xf0, 0x28, 0x38, 0xce, 0xc6, 0x77, 0x23, 0xca, 0x22, 0xf4, 0xbf, 0x29, 0x40, 0x45, 0xfa, 0x2a, + 0xbb, 0x02, 0x97, 0xda, 0xdc, 0x68, 0x99, 0xc6, 0xa8, 0xd3, 0x32, 0x5b, 0x3b, 0xad, 0x21, 0x56, + 0x55, 0x06, 0x1b, 0x2d, 0x9c, 0x12, 0x56, 0x38, 0x05, 0x03, 0xb0, 0xc3, 0x07, 0xfb, 0x2b, 0x54, + 0x9e, 0x69, 0x50, 0x97, 0xb2, 0xe2, 0x13, 0x5f, 0x81, 0x5d, 0x82, 0x9a, 0x10, 0x14, 0x88, 0x22, + 0x05, 0x1a, 0x4a, 0x09, 0xb8, 0x94, 0x11, 0xe9, 0xf6, 0x3b, 0xc6, 0x57, 0x5a, 0x79, 0x25, 0x22, + 0x10, 0x95, 0x54, 0x44, 0xc0, 0x2a, 0x1a, 0x63, 0xf2, 0x83, 0x7e, 0x7b, 0xf5, 0x9c, 0x2a, 0xbb, + 0x0e, 0x57, 0x86, 0x7b, 0x83, 0x67, 0x23, 0xa1, 0x2b, 0x35, 0x09, 0xd8, 0x55, 0xd0, 0x32, 0x04, + 0xc1, 0x5e, 0x43, 0x15, 0x84, 0x4d, 0x18, 0x87, 0x5a, 0x1d, 0x9f, 0x4b, 0x38, 0x53, 0xa4, 0x93, + 0x06, 0x9a, 0x26, 0x44, 0x07, 0xbd, 0x83, 0xa7, 0xfd, 0xa1, 0xb6, 0x81, 0x96, 0x10, 0x46, 0x58, + 0x72, 0x29, 0x55, 0xb3, 0x4a, 0x42, 0x1a, 0xe5, 0x25, 0xc4, 0x3d, 0x6b, 0xf1, 0x7e, 0xb7, 0xbf, + 0x3b, 0xd4, 0x2e, 0xa7, 0x9a, 0x0d, 0xce, 0x07, 0x7c, 0xa8, 0xb1, 0x14, 0x31, 0x34, 0x5b, 0xe6, + 0xc1, 0x50, 0xbb, 0x92, 0x5a, 0xb9, 0xcf, 0x07, 0x6d, 0x63, 0x38, 0xec, 0x75, 0x87, 0xa6, 0x76, + 0x75, 0xa7, 0x4e, 0xff, 0x81, 0x90, 0xc9, 0x44, 0xdf, 0x87, 0x8d, 0xf5, 0xd8, 0x67, 0x3a, 0x34, + 0xdc, 0xe9, 0xc8, 0x0f, 0xe2, 0x91, 0x73, 0xe2, 0x46, 0x71, 0x94, 0x7c, 0x56, 0x72, 0xa7, 0xfd, + 0x20, 0x36, 0x08, 0x85, 0x3d, 0x71, 0x1a, 0xca, 0xa2, 0x5c, 0xa6, 0xb0, 0xbe, 0x07, 0x8d, 0xb5, + 0x6c, 0xc0, 0xde, 0x80, 0xaa, 0x3b, 0x5d, 0x57, 0xa6, 0xba, 0xd3, 0x1f, 0xa1, 0x69, 0x17, 0xea, + 0xd9, 0xd4, 0xf0, 0xd3, 0x15, 0xfd, 0x9d, 0x02, 0xb5, 0x4c, 0xaa, 0xf8, 0x51, 0x5b, 0xbc, 0x09, + 0xd5, 0xd8, 0x99, 0x2f, 0x82, 0xd0, 0x92, 0x89, 0x55, 0xe5, 0x2b, 0xc4, 0xda, 0xd3, 0x0a, 0xeb, + 0x4f, 0x5b, 0x7f, 0x5b, 0x52, 0xfc, 0xfe, 0xb7, 0x25, 0xfa, 0x00, 0x60, 0x95, 0x8d, 0xe8, 0x6b, + 0x04, 0x45, 0xa9, 0xe8, 0x4e, 0x04, 0xb0, 0xae, 0x30, 0xff, 0x03, 0x0a, 0xbf, 0x81, 0x6a, 0x9a, + 0xaa, 0x7e, 0xf2, 0x89, 0xad, 0x0c, 0x29, 0x64, 0x0c, 0xd1, 0x77, 0x93, 0x63, 0x14, 0xc9, 0xe5, + 0xc7, 0x1c, 0xe3, 0x55, 0x28, 0x89, 0x6c, 0x25, 0x3f, 0xae, 0x11, 0xa0, 0xeb, 0x72, 0xd7, 0x42, + 0x4f, 0xca, 0xa3, 0x64, 0x79, 0x7e, 0x21, 0x36, 0x22, 0x58, 0xbe, 0x77, 0x23, 0x17, 0x3f, 0xe3, + 0x0e, 0x34, 0xd6, 0xd2, 0xdb, 0xc5, 0x87, 0xab, 0x77, 0xa1, 0xb1, 0x96, 0xc7, 0x32, 0x7f, 0xd2, + 0x51, 0xb2, 0x7f, 0xd2, 0xc1, 0x69, 0xf2, 0xf8, 0xc8, 0x09, 0x9d, 0x0b, 0xfe, 0xa9, 0x20, 0x08, + 0xfa, 0xe7, 0x50, 0xcf, 0x76, 0x3c, 0xec, 0x7d, 0x28, 0xb9, 0xb1, 0x33, 0x4f, 0x3e, 0x16, 0x5e, + 0x3b, 0xdf, 0x14, 0x75, 0x63, 0x67, 0xce, 0x05, 0x93, 0xfe, 0x7b, 0x05, 0xb4, 0xb3, 0xb4, 0xcc, + 0x3f, 0x89, 0x94, 0x57, 0xfc, 0x93, 0x28, 0xbf, 0x66, 0xe4, 0x05, 0xff, 0x06, 0x42, 0xc3, 0xc5, + 0xf7, 0xcd, 0x0b, 0xfe, 0xfc, 0x42, 0x04, 0x76, 0x17, 0xd4, 0xd0, 0xa1, 0xbf, 0x86, 0xd8, 0xb2, + 0x32, 0x67, 0x99, 0x52, 0x9a, 0x7e, 0x04, 0x15, 0xd9, 0x9d, 0x5d, 0xf8, 0xc5, 0xf2, 0x5d, 0xa8, + 0x88, 0xaf, 0x4a, 0xc9, 0xe7, 0xa4, 0x73, 0x6f, 0xfe, 0x12, 0x3a, 0xbb, 0x25, 0x3a, 0xf4, 0xf5, + 0x17, 0xd2, 0x38, 0x86, 0x70, 0xd1, 0xb9, 0xff, 0x39, 0x54, 0x64, 0x73, 0x77, 0xe1, 0x93, 0x7e, + 0xe8, 0x4f, 0x23, 0x9b, 0x00, 0xab, 0x6e, 0xef, 0x22, 0x0d, 0xf7, 0xde, 0x86, 0x7a, 0xf6, 0x63, + 0x3f, 0xcd, 0x7a, 0x81, 0xef, 0x68, 0x39, 0x56, 0x81, 0x42, 0xef, 0xdb, 0x87, 0x9a, 0x72, 0xef, + 0x97, 0xd0, 0x7c, 0xd5, 0x14, 0x85, 0x4d, 0x61, 0x7b, 0xaf, 0x45, 0x93, 0x6a, 0x1d, 0xd4, 0xfe, + 0x60, 0x24, 0x20, 0x05, 0xfb, 0x3f, 0x6e, 0xf4, 0x0c, 0xaa, 0x5c, 0x3b, 0x5f, 0xfc, 0xcb, 0x77, + 0xb7, 0x94, 0x7f, 0xfd, 0xee, 0x96, 0xf2, 0xc7, 0xef, 0x6e, 0xe5, 0x7e, 0xff, 0xdf, 0xb7, 0x94, + 0x6f, 0xb2, 0xff, 0x6d, 0x9c, 0x5b, 0x71, 0xe8, 0x9e, 0x88, 0x2f, 0xed, 0x09, 0xe0, 0x3b, 0x1f, + 0x2e, 0x5e, 0xcc, 0x3e, 0x5c, 0x8c, 0x3f, 0xc4, 0x2d, 0x8d, 0xcb, 0xf4, 0x17, 0xc7, 0x07, 0xff, + 0x1f, 0x00, 0x00, 0xff, 0xff, 0x49, 0xaf, 0x36, 0xcd, 0x25, 0x29, 0x00, 0x00, } func (m *Type) Marshal() (dAtA []byte, err error) { @@ -6812,6 +6874,40 @@ func (m *PropertiesDef) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ViewDef) Marshal() (dAtA []byte, err error) { + size := m.ProtoSize() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ViewDef) MarshalTo(dAtA []byte) (int, error) { + size := m.ProtoSize() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ViewDef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.View) > 0 { + i -= len(m.View) + copy(dAtA[i:], m.View) + i = encodeVarintPlan(dAtA, i, uint64(len(m.View))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *TableDef) Marshal() (dAtA []byte, err error) { size := m.ProtoSize() dAtA = make([]byte, size) @@ -6973,6 +7069,27 @@ func (m *TableDef_DefType_Properties) MarshalToSizedBuffer(dAtA []byte) (int, er } return len(dAtA) - i, nil } +func (m *TableDef_DefType_View) MarshalTo(dAtA []byte) (int, error) { + size := m.ProtoSize() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TableDef_DefType_View) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.View != nil { + { + size, err := m.View.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPlan(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} func (m *Cost) Marshal() (dAtA []byte, err error) { size := m.ProtoSize() dAtA = make([]byte, size) @@ -7065,9 +7182,9 @@ func (m *ColData) MarshalToSizedBuffer(dAtA []byte) (int, error) { } if len(m.F64) > 0 { for iNdEx := len(m.F64) - 1; iNdEx >= 0; iNdEx-- { - f22 := math.Float64bits(float64(m.F64[iNdEx])) + f23 := math.Float64bits(float64(m.F64[iNdEx])) i -= 8 - encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f22)) + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f23)) } i = encodeVarintPlan(dAtA, i, uint64(len(m.F64)*8)) i-- @@ -7075,49 +7192,49 @@ func (m *ColData) MarshalToSizedBuffer(dAtA []byte) (int, error) { } if len(m.F32) > 0 { for iNdEx := len(m.F32) - 1; iNdEx >= 0; iNdEx-- { - f23 := math.Float32bits(float32(m.F32[iNdEx])) + f24 := math.Float32bits(float32(m.F32[iNdEx])) i -= 4 - encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f23)) + encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f24)) } i = encodeVarintPlan(dAtA, i, uint64(len(m.F32)*4)) i-- dAtA[i] = 0x32 } if len(m.I64) > 0 { - dAtA25 := make([]byte, len(m.I64)*10) - var j24 int + dAtA26 := make([]byte, len(m.I64)*10) + var j25 int for _, num1 := range m.I64 { num := uint64(num1) for num >= 1<<7 { - dAtA25[j24] = uint8(uint64(num)&0x7f | 0x80) + dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j24++ + j25++ } - dAtA25[j24] = uint8(num) - j24++ + dAtA26[j25] = uint8(num) + j25++ } - i -= j24 - copy(dAtA[i:], dAtA25[:j24]) - i = encodeVarintPlan(dAtA, i, uint64(j24)) + i -= j25 + copy(dAtA[i:], dAtA26[:j25]) + i = encodeVarintPlan(dAtA, i, uint64(j25)) i-- dAtA[i] = 0x2a } if len(m.I32) > 0 { - dAtA27 := make([]byte, len(m.I32)*10) - var j26 int + dAtA28 := make([]byte, len(m.I32)*10) + var j27 int for _, num1 := range m.I32 { num := uint64(num1) for num >= 1<<7 { - dAtA27[j26] = uint8(uint64(num)&0x7f | 0x80) + dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j26++ + j27++ } - dAtA27[j26] = uint8(num) - j26++ + dAtA28[j27] = uint8(num) + j27++ } - i -= j26 - copy(dAtA[i:], dAtA27[:j26]) - i = encodeVarintPlan(dAtA, i, uint64(j26)) + i -= j27 + copy(dAtA[i:], dAtA28[:j27]) + i = encodeVarintPlan(dAtA, i, uint64(j27)) i-- dAtA[i] = 0x22 } @@ -7509,21 +7626,21 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xba } if len(m.BindingTags) > 0 { - dAtA32 := make([]byte, len(m.BindingTags)*10) - var j31 int + dAtA33 := make([]byte, len(m.BindingTags)*10) + var j32 int for _, num1 := range m.BindingTags { num := uint64(num1) for num >= 1<<7 { - dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) + dAtA33[j32] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j31++ + j32++ } - dAtA32[j31] = uint8(num) - j31++ + dAtA33[j32] = uint8(num) + j32++ } - i -= j31 - copy(dAtA[i:], dAtA32[:j31]) - i = encodeVarintPlan(dAtA, i, uint64(j31)) + i -= j32 + copy(dAtA[i:], dAtA33[:j32]) + i = encodeVarintPlan(dAtA, i, uint64(j32)) i-- dAtA[i] = 0x1 i-- @@ -7738,21 +7855,21 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x30 } if len(m.Children) > 0 { - dAtA40 := make([]byte, len(m.Children)*10) - var j39 int + dAtA41 := make([]byte, len(m.Children)*10) + var j40 int for _, num1 := range m.Children { num := uint64(num1) for num >= 1<<7 { - dAtA40[j39] = uint8(uint64(num)&0x7f | 0x80) + dAtA41[j40] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j39++ + j40++ } - dAtA40[j39] = uint8(num) - j39++ + dAtA41[j40] = uint8(num) + j40++ } - i -= j39 - copy(dAtA[i:], dAtA40[:j39]) - i = encodeVarintPlan(dAtA, i, uint64(j39)) + i -= j40 + copy(dAtA[i:], dAtA41[:j40]) + i = encodeVarintPlan(dAtA, i, uint64(j40)) i-- dAtA[i] = 0x2a } @@ -7925,21 +8042,21 @@ func (m *Query) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.Steps) > 0 { - dAtA43 := make([]byte, len(m.Steps)*10) - var j42 int + dAtA44 := make([]byte, len(m.Steps)*10) + var j43 int for _, num1 := range m.Steps { num := uint64(num1) for num >= 1<<7 { - dAtA43[j42] = uint8(uint64(num)&0x7f | 0x80) + dAtA44[j43] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j42++ + j43++ } - dAtA43[j42] = uint8(num) - j42++ + dAtA44[j43] = uint8(num) + j43++ } - i -= j42 - copy(dAtA[i:], dAtA43[:j42]) - i = encodeVarintPlan(dAtA, i, uint64(j42)) + i -= j43 + copy(dAtA[i:], dAtA44[:j43]) + i = encodeVarintPlan(dAtA, i, uint64(j43)) i-- dAtA[i] = 0x12 } @@ -10287,6 +10404,22 @@ func (m *PropertiesDef) ProtoSize() (n int) { return n } +func (m *ViewDef) ProtoSize() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.View) + if l > 0 { + n += 1 + l + sovPlan(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *TableDef) ProtoSize() (n int) { if m == nil { return 0 @@ -10366,6 +10499,18 @@ func (m *TableDef_DefType_Properties) ProtoSize() (n int) { } return n } +func (m *TableDef_DefType_View) ProtoSize() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.View != nil { + l = m.View.ProtoSize() + n += 1 + l + sovPlan(uint64(l)) + } + return n +} func (m *Cost) ProtoSize() (n int) { if m == nil { return 0 @@ -14626,6 +14771,89 @@ func (m *PropertiesDef) Unmarshal(dAtA []byte) error { } return nil } +func (m *ViewDef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ViewDef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ViewDef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field View", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPlan + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPlan + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.View = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPlan(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPlan + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *TableDef) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -14911,6 +15139,41 @@ func (m *TableDef_DefType) Unmarshal(dAtA []byte) error { } m.Def = &TableDef_DefType_Properties{v} iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field View", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPlan + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPlan + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ViewDef{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Def = &TableDef_DefType_View{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipPlan(dAtA[iNdEx:]) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index c51d0ef8dbbbb8f9b68eb98f4792c14d2a476bbe..bbc8cd06751aac1d8ae682dc6a0f406f78650b1d 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -124,6 +124,10 @@ func planDefsToExeDefs(planDefs []*plan.TableDef_DefType) []engine.TableDef { exeDefs[i] = &engine.PropertiesDef{ Properties: properties, } + case *plan.TableDef_DefType_View: + exeDefs[i] = &engine.ViewDef{ + View: defVal.View.View, + } } } return exeDefs diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index d5d307472153b5cf09e19b2f2478c263e489eafa..92673e889cb578cfb10d7e40fed3657c04a8789f 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -966,7 +966,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:7102 +//line mysql_sql.y:7109 //line yacctab:1 var yyExca = [...]int{ @@ -974,2324 +974,2323 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 63, - 21, 430, - -2, 411, + 21, 432, + -2, 413, -1, 68, - 199, 581, - -2, 617, - -1, 84, + 199, 583, + -2, 619, + -1, 85, 226, 291, 227, 291, -2, 312, - -1, 361, - 21, 431, - -2, 394, - -1, 435, - 94, 1298, - 105, 1298, - 124, 1298, - -2, 1109, - -1, 464, - 21, 431, - -2, 394, - -1, 621, - 58, 1446, - -2, 1453, - -1, 629, - 58, 1447, - -2, 1461, - -1, 631, - 58, 1443, - -2, 1463, - -1, 632, - 58, 1444, - -2, 1464, - -1, 637, - 58, 1445, - -2, 1470, - -1, 638, + -1, 362, + 21, 433, + -2, 396, + -1, 436, + 94, 1300, + 105, 1300, + 124, 1300, + -2, 1111, + -1, 466, + 21, 433, + -2, 396, + -1, 624, 58, 1448, - -2, 1471, - -1, 639, + -2, 1455, + -1, 632, 58, 1449, - -2, 1472, + -2, 1463, + -1, 634, + 58, 1445, + -2, 1465, + -1, 635, + 58, 1446, + -2, 1466, -1, 640, - 58, 872, - -2, 1473, + 58, 1447, + -2, 1472, -1, 641, - 58, 873, - -2, 1474, + 58, 1450, + -2, 1473, -1, 642, + 58, 1451, + -2, 1474, + -1, 643, 58, 874, -2, 1475, -1, 644, - 58, 1450, - -2, 1477, + 58, 875, + -2, 1476, -1, 645, - 58, 892, - -2, 1478, - -1, 646, - 58, 891, + 58, 876, + -2, 1477, + -1, 647, + 58, 1452, -2, 1479, + -1, 648, + 58, 894, + -2, 1480, -1, 649, - 58, 1451, - -2, 1482, - -1, 650, - 58, 1452, - -2, 1483, - -1, 656, - 58, 954, - -2, 1298, - -1, 657, - 58, 963, - -2, 1323, - -1, 658, - 58, 967, - -2, 1362, + 58, 893, + -2, 1481, + -1, 652, + 58, 1453, + -2, 1484, + -1, 653, + 58, 1454, + -2, 1485, -1, 659, - 58, 978, - -2, 1422, + 58, 956, + -2, 1300, -1, 660, - 58, 980, - -2, 1432, + 58, 965, + -2, 1325, -1, 661, - 58, 968, - -2, 1437, + 58, 969, + -2, 1364, -1, 662, - 58, 976, - -2, 1441, + 58, 980, + -2, 1424, -1, 663, - 58, 957, - -2, 1442, - -1, 819, - 1, 607, - 60, 607, - 478, 607, - -2, 614, - -1, 956, - 21, 430, - -2, 800, - -1, 1003, - 124, 1119, - -2, 1117, - -1, 1005, - 124, 529, - -2, 1114, - -1, 1006, - 124, 530, - -2, 1115, - -1, 1210, - 1, 608, - 60, 608, - 478, 608, - -2, 614, - -1, 1298, - 58, 1021, + 58, 982, + -2, 1434, + -1, 664, + 58, 970, -2, 1439, - -1, 1299, - 58, 1022, - -2, 1440, - -1, 1458, - 56, 351, - 59, 351, - -2, 706, - -1, 1784, - 79, 614, - 120, 614, - 156, 614, - 159, 614, - -2, 654, - -1, 1786, - 260, 767, - -2, 748, - -1, 1808, - 56, 351, - 59, 351, - -2, 707, - -1, 1889, - 79, 614, - 120, 614, - 156, 614, - 159, 614, - -2, 655, - -1, 1917, - 260, 767, - -2, 749, - -1, 2310, - 59, 629, - 60, 629, - -2, 614, + -1, 665, + 58, 978, + -2, 1443, + -1, 666, + 58, 959, + -2, 1444, + -1, 822, + 1, 609, + 60, 609, + 478, 609, + -2, 616, + -1, 960, + 21, 432, + -2, 802, + -1, 1007, + 124, 1121, + -2, 1119, + -1, 1009, + 124, 531, + -2, 1116, + -1, 1010, + 124, 532, + -2, 1117, + -1, 1214, + 1, 610, + 60, 610, + 478, 610, + -2, 616, + -1, 1302, + 58, 1023, + -2, 1441, + -1, 1303, + 58, 1024, + -2, 1442, + -1, 1462, + 56, 353, + 59, 353, + -2, 708, + -1, 1788, + 79, 616, + 120, 616, + 156, 616, + 159, 616, + -2, 656, + -1, 1790, + 260, 769, + -2, 750, + -1, 1812, + 56, 353, + 59, 353, + -2, 709, + -1, 1893, + 79, 616, + 120, 616, + 156, 616, + 159, 616, + -2, 657, + -1, 1921, + 260, 769, + -2, 751, -1, 2314, - 59, 629, - 60, 629, - -2, 614, - -1, 2326, - 59, 633, - 60, 633, - -2, 614, - -1, 2329, - 59, 634, - 60, 634, - -2, 614, + 59, 631, + 60, 631, + -2, 616, + -1, 2318, + 59, 631, + 60, 631, + -2, 616, + -1, 2330, + 59, 635, + 60, 635, + -2, 616, + -1, 2333, + 59, 636, + 60, 636, + -2, 616, } const yyPrivate = 57344 -const yyLast = 21366 +const yyLast = 21370 var yyAct = [...]int{ - 803, 1301, 2316, 2314, 2313, 2321, 2287, 666, 2261, 1950, - 796, 2152, 685, 2232, 2276, 1258, 1929, 2213, 2125, 2214, - 1885, 2129, 2106, 553, 1778, 1196, 1948, 887, 101, 2061, - 1949, 852, 1302, 314, 320, 792, 320, 599, 2113, 1254, - 1608, 362, 664, 590, 1837, 361, 104, 697, 63, 1937, - 318, 22, 324, 1802, 1918, 1965, 823, 433, 1936, 100, - 825, 1461, 1641, 531, 1604, 872, 1848, 1840, 1830, 620, - 1482, 389, 541, 846, 1613, 1471, 1253, 1790, 306, 1852, - 63, 1609, 1180, 985, 1689, 1671, 1545, 1681, 812, 665, - 1660, 1623, 434, 1216, 1619, 1473, 459, 330, 995, 1000, - 101, 1003, 986, 1385, 994, 62, 1508, 675, 1443, 1371, - 1289, 849, 1240, 865, 543, 1481, 1440, 1215, 847, 832, - 1893, 805, 317, 15, 3, 1177, 315, 6, 790, 441, - 30, 461, 1300, 1303, 436, 316, 5, 795, 438, 667, - 813, 440, 391, 613, 1211, 63, 1315, 869, 22, 923, - 1202, 809, 474, 782, 310, 833, 834, 892, 789, 1256, - 425, 1280, 30, 388, 307, 582, 513, 332, 889, 566, - 12, 7, 333, 4, 1184, 97, 1976, 1881, 1777, 800, - 988, 600, 612, 96, 493, 1206, 92, 319, 1945, 1425, - 2179, 96, 96, 27, 86, 69, 1181, 568, 96, 439, - 27, 86, 69, 2169, 95, 1429, 91, 96, 378, 27, - 86, 69, 529, 80, 560, 96, 426, 305, 512, 1432, - 15, 96, 458, 322, 6, 410, 96, 30, 27, 86, - 69, 93, 1442, 5, 51, 783, 747, 787, 836, 93, - 93, 854, 855, 1571, 569, 798, 93, 2201, 327, 744, - 386, 554, 555, 767, 510, 93, 446, 445, 2199, 506, - 2140, 786, 552, 93, 2236, 551, 554, 555, 2059, 746, - 1596, 396, 2143, 1979, 93, 1441, 2217, 2218, 2062, 2063, - 2064, 2065, 1597, 1779, 1598, 799, 444, 1413, 468, 866, - 2128, 1774, 1651, 477, 1798, 1187, 1957, 1819, 2037, 1591, - 1653, 501, 1203, 411, 1962, 497, 87, 88, 467, 89, - 90, 1642, 1836, 1835, 574, 778, 496, 466, 1589, 508, - 509, 329, 320, 575, 101, 380, 862, 2203, 1422, 502, - 448, 2178, 1934, 507, 2045, 377, 376, 1954, 1647, 1648, - 1649, 2227, 321, 785, 2031, 2306, 442, 463, 465, 2322, - 358, 438, 464, 359, 1650, 484, 372, 412, 2241, 63, - 63, 440, 358, 2198, 363, 359, 2150, 2151, 477, 2154, - 2154, 1475, 68, 85, 94, 2176, 49, 2248, 2025, 68, - 2297, 94, 1994, 1993, 1292, 1293, 1294, 360, 389, 2216, - 2020, 2160, 84, 79, 78, 1290, 2127, 2181, 2182, 84, - 443, 1513, 1293, 1294, 1430, 1448, 1449, 1450, 1451, 499, - 561, 518, 1480, 2323, 1445, 578, 370, 2205, 2206, 439, - 504, 500, 503, 486, 2317, 488, 1645, 505, 434, 434, - 434, 784, 2288, 594, 594, 533, 534, 2279, 536, 1982, - 530, 30, 30, 498, 550, 549, 460, 1546, 375, 320, - 616, 616, 447, 81, 82, 479, 478, 437, 2114, 2115, - 2116, 2118, 2117, 749, 2091, 532, 470, 471, 592, 592, - 371, 2016, 328, 2138, 567, 1418, 1267, 596, 1185, 807, - 535, 765, 615, 615, 1775, 602, 59, 538, 323, 306, - 83, 1501, 60, 594, 1263, 594, 467, 572, 485, 1832, - 1831, 750, 383, 384, 385, 797, 545, 63, 857, 482, - 745, 1265, 1264, 557, 558, 570, 571, 858, 1262, 577, - 63, 856, 379, 414, 415, 2204, 2301, 2265, 1811, 63, - 479, 478, 774, 493, 594, 417, 1818, 819, 1617, 1631, - 389, 61, 1599, 824, 515, 1510, 2280, 101, 546, 802, - 1462, 815, 806, 2180, 1420, 472, 1419, 1182, 1182, 1412, - 880, 841, 554, 555, 2038, 1592, 594, 101, 517, 1182, - 1654, 2126, 1407, 554, 555, 1643, 867, 1231, 829, 1194, - 434, 941, 594, 839, 419, 418, 1172, 2021, 2022, 904, - 1183, 753, 598, 808, 1646, 1291, 588, 589, 1958, 881, - 1946, 1426, 30, 480, 773, 70, 828, 594, 770, 886, - 101, 30, 1512, 70, 70, 873, 901, 769, 837, 838, - 70, 873, 873, 776, 1474, 842, 890, 756, 305, 70, - 791, 751, 814, 742, 827, 794, 611, 70, 540, 576, - 779, 888, 601, 70, 585, 586, 587, 752, 70, 487, - 905, 861, 772, 771, 844, 768, 1618, 891, 402, 788, - 564, 565, 1614, 1617, 830, 831, 793, 2277, 2278, 556, - 437, 958, 559, 1478, 1479, 492, 863, 2092, 2094, 2095, - 2096, 2093, 801, 462, 2018, 760, 761, 1477, 2017, 1588, - 402, 605, 606, 607, 608, 609, 610, 1305, 1304, 1454, - 1179, 1635, 957, 821, 1586, 885, 547, 820, 583, 835, - 965, 1378, 451, 456, 457, 544, 843, 956, 581, 584, - 2283, 1749, 868, 2274, 1444, 1376, 1377, 1375, 845, 967, - 2164, 1988, 1386, 1658, 1409, 404, 878, 879, 403, 1587, - 864, 1269, 469, 1386, 791, 1551, 416, 992, 992, 997, - 1178, 875, 876, 877, 381, 1438, 811, 883, 900, 897, - 959, 960, 961, 962, 897, 884, 882, 404, 2027, 1005, - 403, 764, 2011, 2026, 1794, 439, 2312, 1789, 824, 763, - 2296, 1618, 594, 1310, 963, 2293, 1611, 1313, 2258, 580, - 1612, 1615, 2242, 2102, 440, 548, 2188, 1314, 931, 981, - 1006, 2136, 2135, 2100, 1554, 63, 2108, 1553, 101, 101, - 942, 943, 944, 945, 946, 947, 948, 941, 1455, 2086, - 2295, 1217, 944, 945, 946, 947, 948, 941, 2101, 1754, - 898, 899, 900, 897, 1174, 2085, 314, 420, 2099, 1199, - 1201, 413, 1616, 1233, 2098, 991, 2084, 2088, 2081, 890, - 2075, 2072, 439, 975, 1728, 1725, 1726, 1727, 1955, 1221, - 1759, 2210, 1758, 1757, 1755, 898, 899, 900, 897, 2071, - 1176, 453, 454, 455, 1751, 1533, 1977, 1874, 1970, 2097, - 891, 594, 2087, 898, 899, 900, 897, 30, 1969, 1968, - 1222, 1223, 1224, 1956, 616, 1964, 101, 1197, 1198, 1259, - 984, 1261, 1963, 1285, 1738, 1287, 1816, 1815, 873, 873, - 873, 1171, 1170, 1004, 1873, 1652, 1274, 998, 1583, 999, - 1532, 754, 1756, 1311, 1312, 1620, 615, 816, 817, 818, - 1281, 1282, 1283, 1284, 1175, 1886, 898, 899, 900, 897, - 1212, 1817, 898, 899, 900, 897, 1556, 1225, 898, 899, - 900, 897, 1308, 1277, 1227, 358, 1229, 1266, 359, 1260, - 2237, 981, 2226, 2209, 1520, 1350, 2107, 2158, 2157, 1279, - 2134, 898, 899, 900, 897, 2089, 2082, 1295, 1395, 2078, - 2077, 2076, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, - 1367, 1368, 1369, 1370, 1234, 835, 1230, 1380, 1381, 1387, - 1228, 1390, 1226, 908, 909, 910, 911, 912, 913, 914, - 906, 2039, 1704, 898, 899, 900, 897, 898, 899, 900, - 897, 2013, 1397, 1270, 1271, 1272, 898, 899, 900, 897, - 1978, 1966, 1884, 1882, 2326, 1760, 1761, 1278, 1814, 1813, - 1805, 2294, 1796, 1379, 1767, 1401, 2185, 1622, 1593, 1504, - 1400, 1306, 1307, 1191, 1309, 952, 1190, 955, 977, 1373, - 1345, 1346, 1347, 1348, 1349, 713, 712, 1355, 1356, 1357, - 1358, 953, 954, 951, 938, 940, 939, 949, 950, 942, - 943, 944, 945, 946, 947, 948, 941, 940, 939, 949, - 950, 942, 943, 944, 945, 946, 947, 948, 941, 2132, - 1193, 1389, 1391, 1392, 2304, 937, 755, 1624, 1692, 810, - 2184, 1396, 2165, 1398, 1388, 1560, 1399, 2052, 1516, 1559, - 2048, 898, 899, 900, 897, 1711, 1715, 1717, 1719, 1721, - 1722, 1724, 2047, 1728, 1725, 1726, 1727, 1192, 826, 1706, - 1707, 1708, 1709, 1690, 1691, 1712, 1877, 1693, 1875, 1694, - 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1710, - 898, 899, 900, 897, 1516, 2331, 1872, 1714, 1716, 1718, - 1720, 1723, 1864, 1414, 1829, 365, 366, 367, 368, 1784, - 2057, 1250, 594, 1769, 594, 1670, 594, 2036, 364, 1636, - 467, 2325, 2324, 1189, 2307, 1435, 2303, 2302, 1563, 1427, - 1561, 1705, 898, 899, 900, 897, 1558, 594, 1557, 898, - 899, 900, 897, 1189, 2291, 1458, 1189, 2290, 1555, 1423, - 1525, 1464, 2264, 2263, 826, 1433, 1434, 1522, 806, 604, - 1515, 1971, 1469, 2041, 2224, 2041, 2219, 1500, 467, 101, - 101, 101, 101, 1276, 2207, 1394, 1456, 1483, 2196, 2195, - 467, 101, 1498, 898, 899, 900, 897, 2041, 2174, 1483, - 1860, 2041, 2173, 2041, 2172, 1859, 63, 1657, 594, 22, - 1453, 1393, 1437, 603, 1424, 1858, 101, 101, 2041, 2171, - 1459, 407, 898, 899, 900, 897, 1465, 898, 899, 900, - 897, 2163, 2162, 2056, 2055, 1499, 2282, 898, 899, 900, - 897, 1417, 1259, 1766, 2054, 2053, 1630, 1506, 1507, 1460, - 1421, 1521, 1249, 1415, 1682, 1683, 1516, 1436, 780, 791, - 2050, 2051, 491, 402, 1460, 898, 899, 900, 897, 2050, - 2049, 1212, 1457, 1220, 2046, 1206, 1517, 2041, 2040, 1518, - 1519, 15, 1466, 1463, 1467, 6, 1250, 1446, 30, 1402, - 1468, 1470, 1516, 1743, 5, 1452, 1502, 1484, 1485, 1486, - 1487, 1495, 1497, 1516, 1729, 1496, 949, 950, 942, 943, - 944, 945, 946, 947, 948, 941, 1540, 1785, 1527, 1528, - 1529, 1530, 1531, 1505, 1535, 1516, 1524, 1770, 1536, 1537, - 1538, 1539, 1516, 1523, 1220, 1416, 1411, 1410, 1405, 1404, - 404, 1511, 1748, 403, 1514, 1565, 992, 1236, 1575, 992, - 1220, 1219, 1578, 1189, 1188, 1205, 1548, 1713, 895, 1552, - 1543, 1544, 956, 781, 898, 899, 900, 897, 1581, 758, - 757, 1206, 1564, 1250, 96, 401, 873, 86, 69, 1206, - 467, 493, 873, 405, 2327, 2271, 490, 1408, 101, 1607, - 491, 1383, 63, 1276, 1181, 1572, 1195, 1173, 539, 1582, - 101, 1217, 893, 1634, 579, 2273, 1542, 493, 2267, 1570, - 96, 2249, 2246, 2244, 2187, 1577, 2123, 2111, 2109, 1625, - 439, 2104, 93, 1373, 2066, 1541, 1839, 2034, 1550, 2033, - 1574, 940, 939, 949, 950, 942, 943, 944, 945, 946, - 947, 948, 941, 2032, 1573, 1567, 2029, 1590, 1566, 2024, - 2009, 1674, 1579, 1576, 1580, 542, 1585, 1849, 93, 2030, - 1841, 1742, 1853, 1856, 1846, 1845, 1825, 1637, 1638, 1800, - 1795, 1374, 93, 1632, 345, 1439, 344, 348, 340, 1403, - 1268, 1218, 1656, 898, 899, 900, 897, 983, 982, 1676, - 336, 1741, 980, 1629, 1633, 594, 1740, 1668, 979, 1730, - 355, 594, 1626, 1627, 1628, 1640, 1736, 1737, 1644, 1739, - 978, 1669, 1655, 898, 899, 900, 897, 1665, 898, 899, - 900, 897, 1208, 1639, 1750, 594, 976, 924, 973, 1763, - 592, 898, 899, 900, 897, 972, 592, 970, 1762, 969, - 1674, 968, 101, 966, 1764, 1765, 936, 935, 934, 933, - 932, 1788, 398, 930, 400, 410, 483, 1747, 1735, 397, - 395, 394, 406, 399, 929, 408, 409, 594, 594, 1744, - 928, 101, 1808, 1783, 927, 926, 1746, 925, 1753, 922, - 898, 899, 900, 897, 921, 920, 919, 918, 63, 917, - 916, 1782, 1768, 915, 2311, 1771, 1734, 777, 467, 748, - 1733, 495, 592, 1803, 1661, 1662, 2254, 1483, 1773, 2252, - 1801, 390, 2215, 1772, 1664, 1828, 1259, 1792, 898, 899, - 900, 897, 898, 899, 900, 897, 1732, 1791, 1447, 1791, - 1787, 873, 1793, 1809, 1824, 1786, 1810, 1826, 1821, 1799, - 1812, 1275, 438, 494, 1807, 1827, 1806, 1731, 898, 899, - 900, 897, 1667, 1666, 1492, 338, 337, 341, 1679, 1493, - 1490, 1489, 1678, 343, 1823, 1491, 1488, 1406, 1822, 898, - 899, 900, 897, 1677, 1213, 347, 1594, 1843, 1844, 514, - 898, 899, 900, 897, 898, 899, 900, 897, 1601, 339, - 50, 1847, 1833, 1204, 1851, 898, 899, 900, 897, 1842, - 939, 949, 950, 942, 943, 944, 945, 946, 947, 948, - 941, 1861, 1197, 1198, 29, 1850, 101, 1494, 28, 1246, - 1247, 302, 489, 1980, 1863, 1600, 467, 1890, 1382, 1252, - 1938, 1940, 822, 1938, 1938, 1607, 1305, 1304, 2229, 1865, - 563, 467, 1867, 873, 1869, 303, 1854, 1879, 1857, 304, - 898, 899, 900, 897, 562, 1862, 526, 527, 524, 525, - 522, 523, 1169, 1866, 2268, 1868, 824, 1935, 1944, 1870, - 1871, 520, 521, 342, 346, 349, 1878, 350, 351, 516, - 1939, 352, 353, 354, 2192, 2190, 356, 357, 1672, 2145, - 1915, 1941, 1942, 1237, 2144, 2142, 1887, 2069, 1943, 1959, - 2067, 1883, 1947, 2269, 1781, 1780, 1673, 1952, 1953, 519, - 1810, 364, 1509, 1242, 1245, 1246, 1247, 1243, 826, 1244, - 1248, 1584, 1960, 1242, 1245, 1246, 1247, 1243, 1526, 1244, - 1248, 481, 1984, 365, 366, 367, 368, 2256, 2255, 2255, - 859, 2256, 1967, 1974, 1251, 392, 364, 1972, 35, 940, - 939, 949, 950, 942, 943, 944, 945, 946, 947, 948, - 941, 1, 1235, 1186, 1797, 1621, 594, 537, 382, 1351, - 528, 762, 450, 476, 759, 101, 475, 473, 1384, 1316, - 698, 987, 993, 2105, 1940, 2228, 2260, 2186, 2231, 775, - 684, 1987, 2137, 1595, 2058, 2139, 2060, 1431, 1935, 1973, - 1428, 1803, 511, 1568, 2012, 1569, 2028, 710, 701, 971, - 703, 743, 2010, 452, 700, 1820, 1476, 369, 449, 2014, - 393, 1961, 1776, 1834, 2043, 1855, 2070, 1838, 2320, 2310, - 2286, 2266, 2153, 2035, 2044, 2042, 2305, 2197, 438, 2247, - 1985, 1986, 2240, 1989, 1990, 1991, 1992, 1921, 2103, 1995, - 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2149, 1981, 334, 860, 573, 63, 423, - 467, 2068, 2124, 467, 467, 467, 335, 2083, 2177, 2110, - 373, 1924, 467, 1207, 1259, 374, 1210, 1919, 1209, 1296, - 907, 1372, 1932, 1933, 974, 964, 2112, 618, 1920, 2120, - 2121, 2122, 1549, 674, 668, 1472, 1930, 2147, 2131, 1503, - 2119, 840, 2130, 34, 594, 594, 33, 32, 896, 1001, - 699, 103, 2133, 1232, 1002, 2146, 1975, 2233, 2148, 683, - 2141, 682, 1925, 681, 680, 679, 2073, 2074, 1241, 1239, - 1238, 851, 2079, 2080, 850, 101, 894, 2212, 2211, 592, - 592, 2167, 467, 2168, 1880, 2023, 2090, 2155, 2156, 2019, - 2015, 2159, 1889, 1888, 467, 1916, 1917, 1923, 1688, 1684, - 1686, 1687, 2161, 1685, 1752, 1680, 888, 1605, 2170, 1606, - 1603, 1602, 2166, 1663, 1659, 989, 996, 804, 98, 848, - 2175, 11, 10, 766, 9, 14, 21, 20, 2183, 19, - 58, 57, 56, 2191, 2189, 2193, 2194, 55, 18, 8, - 54, 53, 52, 17, 2200, 2202, 1931, 16, 1610, 47, - 48, 45, 44, 43, 42, 41, 2208, 40, 2235, 39, - 46, 38, 37, 2220, 2221, 2222, 2223, 2239, 36, 67, - 2234, 66, 65, 1927, 64, 23, 24, 25, 26, 76, - 75, 77, 72, 2238, 74, 73, 71, 31, 13, 2, - 0, 0, 0, 0, 0, 1926, 1928, 0, 0, 2250, - 0, 0, 2253, 2251, 0, 0, 0, 2262, 0, 0, - 0, 2257, 2243, 2259, 2245, 467, 0, 467, 0, 0, - 0, 0, 0, 0, 797, 2270, 797, 2272, 0, 0, - 0, 0, 0, 0, 0, 2235, 2285, 0, 0, 0, - 0, 2281, 0, 0, 467, 0, 0, 2234, 2284, 0, - 2289, 0, 0, 797, 2292, 1934, 0, 2225, 0, 0, - 2262, 2298, 2275, 0, 0, 0, 0, 1922, 0, 0, - 0, 0, 2308, 0, 0, 0, 0, 0, 0, 0, - 2309, 0, 0, 0, 0, 0, 2300, 2319, 0, 2318, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2330, - 2329, 2328, 2319, 1115, 1157, 0, 0, 1102, 0, 1064, - 1117, 1038, 1053, 1125, 1054, 1055, 1089, 1017, 1073, 227, - 1051, 0, 1105, 1009, 1041, 1042, 1011, 1048, 1012, 1039, - 1066, 172, 1037, 1076, 197, 1123, 0, 0, 256, 211, - 0, 0, 1069, 1107, 1071, 1094, 1063, 1090, 1025, 1083, - 1118, 1052, 1087, 1119, 0, 0, 0, 0, 0, 816, - 817, 818, 0, 0, 0, 0, 154, 0, 0, 0, - 0, 0, 1086, 1112, 1050, 0, 157, 1116, 1070, 1088, - 0, 0, 1010, 1084, 0, 1015, 1018, 1124, 1110, 1045, - 1046, 0, 0, 0, 0, 0, 0, 0, 1067, 1072, - 1091, 1060, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1043, 0, 1080, 0, 0, 0, 1020, 1016, 0, - 1065, 0, 146, 261, 275, 155, 252, 288, 160, 259, - 151, 226, 248, 0, 1156, 148, 273, 258, 208, 191, - 192, 147, 0, 243, 170, 183, 167, 224, 0, 1114, - 300, 166, 291, 1019, 283, 150, 1151, 282, 223, 270, - 274, 209, 203, 149, 272, 207, 202, 195, 174, 187, - 235, 201, 236, 188, 213, 212, 214, 1135, 1136, 1137, - 1138, 1139, 1147, 1148, 0, 1152, 1153, 1154, 1024, 0, - 1044, 1092, 0, 1008, 1100, 1108, 1062, 285, 1111, 1059, - 1058, 1142, 0, 1141, 260, 1143, 1144, 196, 1106, 1040, - 1049, 301, 1047, 246, 229, 1113, 1079, 1155, 244, 199, - 271, 237, 276, 262, 284, 240, 238, 142, 263, 169, - 210, 152, 153, 165, 171, 173, 175, 176, 219, 220, - 232, 251, 264, 265, 266, 168, 161, 245, 162, 185, - 163, 143, 253, 164, 144, 233, 269, 1140, 181, 241, - 206, 145, 205, 234, 268, 267, 292, 298, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1149, 0, 1150, 297, 179, 1007, 280, 0, 225, 1103, - 1013, 1023, 1021, 1056, 1081, 1082, 221, 296, 1096, 1099, - 1097, 1126, 249, 0, 0, 0, 0, 0, 190, 231, - 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1014, 0, 257, 278, 290, 1158, 1159, 1160, - 1161, 0, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 281, - 1057, 1031, 1068, 289, 1034, 1032, 1095, 1033, 1085, 1128, - 215, 216, 217, 218, 182, 0, 159, 1077, 1061, 1129, - 1130, 1131, 1132, 1133, 1134, 1036, 1109, 178, 184, 0, - 186, 158, 230, 180, 287, 193, 1101, 222, 189, 254, - 194, 200, 242, 286, 228, 247, 156, 277, 255, 204, - 1030, 1035, 1029, 1074, 1075, 1120, 1121, 1122, 1093, 1022, - 1104, 1026, 1028, 1027, 940, 939, 949, 950, 942, 943, - 944, 945, 946, 947, 948, 941, 0, 0, 0, 0, - 0, 0, 0, 1098, 0, 1078, 141, 0, 198, 1127, - 239, 177, 706, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, - 676, 0, 0, 0, 172, 0, 0, 197, 0, 0, - 0, 256, 211, 0, 1876, 0, 0, 721, 727, 1145, - 1146, 293, 294, 295, 279, 0, 0, 0, 669, 0, - 0, 0, 619, 713, 712, 686, 695, 0, 0, 154, - 687, 0, 694, 688, 692, 691, 689, 690, 0, 656, - 0, 0, 0, 0, 0, 0, 617, 673, 0, 677, - 940, 939, 949, 950, 942, 943, 944, 945, 946, 947, - 948, 941, 0, 0, 0, 0, 0, 0, 0, 0, - 670, 671, 0, 0, 0, 0, 707, 0, 672, 0, - 0, 709, 0, 696, 0, 146, 261, 275, 155, 252, - 288, 160, 259, 151, 226, 248, 0, 0, 148, 273, - 258, 208, 191, 192, 147, 0, 243, 170, 183, 167, - 224, 693, 705, 662, 166, 660, 704, 283, 150, 1745, - 282, 223, 270, 274, 209, 203, 149, 272, 207, 202, - 195, 174, 187, 235, 201, 236, 188, 213, 212, 214, - 940, 939, 949, 950, 942, 943, 944, 945, 946, 947, - 948, 941, 0, 0, 0, 0, 0, 702, 0, 0, - 285, 0, 0, 720, 0, 0, 0, 260, 0, 0, - 196, 0, 0, 0, 663, 0, 246, 229, 730, 0, - 0, 244, 199, 271, 237, 276, 262, 284, 240, 238, - 142, 263, 169, 210, 152, 153, 165, 171, 173, 175, - 176, 219, 220, 232, 251, 264, 265, 266, 168, 161, - 245, 162, 185, 163, 143, 253, 164, 144, 233, 269, - 0, 181, 241, 206, 145, 205, 234, 268, 267, 292, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1353, 1352, 1354, 297, 179, 0, 280, - 718, 225, 729, 714, 715, 716, 719, 722, 723, 658, - 661, 724, 726, 728, 731, 249, 0, 0, 0, 1547, - 0, 190, 231, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 278, 290, - 940, 939, 949, 950, 942, 943, 944, 945, 946, 947, - 948, 941, 659, 0, 0, 0, 289, 0, 0, 0, - 0, 0, 708, 215, 216, 217, 218, 657, 0, 159, - 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 184, 0, 186, 158, 230, 180, 287, 193, 0, - 222, 189, 254, 194, 200, 242, 286, 228, 247, 156, - 277, 255, 204, 737, 717, 736, 738, 739, 735, 740, - 741, 725, 678, 0, 733, 732, 734, 940, 939, 949, - 950, 942, 943, 944, 945, 946, 947, 948, 941, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, - 0, 198, 0, 239, 177, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 120, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 711, 0, 0, 293, 294, 295, 279, 96, 0, - 706, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 676, 0, - 0, 0, 172, 0, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 721, 727, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, - 619, 713, 712, 686, 695, 0, 0, 154, 687, 0, - 694, 688, 692, 691, 689, 690, 0, 656, 0, 0, - 0, 0, 0, 0, 617, 673, 0, 677, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, - 0, 0, 0, 0, 707, 0, 672, 0, 0, 709, - 0, 696, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 693, - 705, 662, 166, 660, 704, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 702, 0, 0, 285, 0, - 0, 720, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 663, 0, 246, 229, 730, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 718, 225, - 729, 714, 715, 716, 719, 722, 723, 658, 661, 724, - 726, 728, 731, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 659, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 708, 215, 216, 217, 218, 657, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 737, 717, 736, 738, 739, 735, 740, 741, 725, - 678, 0, 733, 732, 734, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 198, - 70, 239, 177, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 120, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 711, - 706, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 676, 0, - 0, 0, 172, 874, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 721, 727, 0, 0, 0, - 0, 0, 0, 870, 0, 0, 669, 0, 0, 0, - 619, 713, 712, 686, 695, 0, 0, 154, 687, 0, - 694, 688, 692, 691, 689, 690, 0, 656, 0, 0, - 0, 0, 0, 0, 617, 673, 0, 677, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, - 0, 0, 0, 0, 707, 0, 672, 0, 0, 871, - 0, 696, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 693, - 705, 662, 166, 660, 704, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 702, 0, 0, 285, 0, - 0, 720, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 663, 0, 246, 229, 730, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 718, 225, - 729, 714, 715, 716, 719, 722, 723, 658, 661, 724, - 726, 728, 731, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 659, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 708, 215, 216, 217, 218, 657, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 737, 717, 736, 738, 739, 735, 740, 741, 725, - 678, 0, 733, 732, 734, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 198, - 0, 239, 177, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 120, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 711, - 706, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 676, 0, - 0, 0, 172, 2299, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 721, 727, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, - 619, 713, 712, 686, 695, 0, 0, 154, 687, 0, - 694, 688, 692, 691, 689, 690, 0, 656, 0, 0, - 0, 0, 0, 0, 617, 673, 0, 677, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, - 0, 0, 0, 0, 707, 0, 672, 0, 0, 709, - 0, 696, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 693, - 705, 662, 166, 660, 704, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 702, 0, 0, 285, 0, - 0, 720, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 663, 0, 246, 229, 730, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 718, 225, - 729, 714, 715, 716, 719, 722, 723, 658, 661, 724, - 726, 728, 731, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 659, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 708, 215, 216, 217, 218, 657, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 737, 717, 736, 738, 739, 735, 740, 741, 725, - 678, 0, 733, 732, 734, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 198, - 0, 239, 177, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 120, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 711, - 706, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 676, 0, - 0, 0, 172, 874, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 721, 727, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, - 619, 713, 712, 686, 695, 0, 0, 154, 687, 0, - 694, 688, 692, 691, 689, 690, 0, 656, 0, 0, - 0, 0, 0, 0, 617, 673, 0, 677, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, - 0, 0, 0, 0, 707, 0, 672, 0, 0, 709, - 0, 696, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 693, - 705, 662, 166, 660, 704, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 702, 0, 0, 285, 0, - 0, 720, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 663, 0, 246, 229, 730, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 718, 225, - 729, 714, 715, 716, 719, 722, 723, 658, 661, 724, - 726, 728, 731, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 659, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 708, 215, 216, 217, 218, 657, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 737, 717, 736, 738, 739, 735, 740, 741, 725, - 678, 0, 733, 732, 734, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 198, - 0, 239, 177, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 120, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 711, - 0, 0, 293, 294, 295, 279, 706, 0, 0, 1534, - 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 617, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 706, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 617, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 614, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 706, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 617, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 706, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 227, 0, 0, 0, - 1297, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 0, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 1298, 1299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 706, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 0, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 706, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 676, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, - 0, 721, 727, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 619, 713, 712, 686, - 695, 0, 0, 154, 687, 0, 694, 688, 692, 691, - 689, 690, 0, 656, 0, 0, 0, 0, 0, 0, - 617, 673, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, - 707, 0, 672, 0, 0, 709, 0, 696, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 693, 705, 662, 166, 660, - 704, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 702, 0, 0, 285, 0, 0, 720, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 663, 0, - 246, 229, 730, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 718, 225, 729, 714, 715, 716, - 719, 722, 723, 658, 661, 724, 726, 728, 731, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 708, 215, 216, 217, - 218, 657, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 737, 717, 736, - 738, 739, 735, 740, 741, 725, 678, 0, 733, 732, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 198, 0, 239, 177, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 120, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 711, 0, 0, 293, 294, - 295, 279, 96, 0, 27, 86, 69, 0, 0, 0, - 0, 0, 0, 0, 227, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 0, 0, 197, - 0, 0, 0, 256, 211, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 102, 0, 0, 0, 0, 0, - 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 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, 146, 261, 275, - 155, 252, 288, 160, 259, 151, 226, 248, 0, 0, - 148, 273, 258, 208, 191, 192, 147, 0, 243, 170, - 183, 167, 224, 0, 0, 300, 166, 291, 0, 283, - 150, 0, 282, 223, 270, 274, 209, 203, 149, 272, - 207, 202, 195, 174, 187, 235, 201, 236, 188, 213, - 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 260, - 0, 0, 196, 0, 0, 0, 301, 0, 246, 229, - 0, 0, 0, 244, 199, 271, 237, 276, 262, 284, - 240, 238, 142, 263, 169, 210, 152, 153, 165, 171, - 173, 175, 176, 219, 220, 232, 251, 264, 265, 266, - 168, 161, 245, 162, 185, 163, 143, 253, 164, 144, - 233, 269, 0, 181, 241, 206, 145, 205, 234, 268, - 267, 292, 298, 299, 0, 0, 0, 0, 0, 0, - 0, 1336, 0, 0, 0, 0, 0, 0, 297, 179, - 0, 280, 0, 225, 0, 0, 0, 0, 0, 0, - 0, 221, 296, 0, 0, 0, 0, 249, 0, 0, - 0, 0, 0, 190, 231, 0, 250, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 278, 290, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 281, 0, 0, 0, 289, 0, - 0, 0, 0, 0, 0, 215, 216, 217, 218, 309, - 311, 159, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 178, 184, 0, 186, 158, 230, 180, 287, - 193, 0, 222, 189, 254, 194, 200, 242, 286, 228, - 247, 156, 277, 255, 204, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1332, 0, 1329, 0, - 0, 0, 1331, 1328, 1330, 1334, 1335, 0, 0, 0, - 1333, 141, 0, 198, 70, 239, 177, 105, 106, 107, + 806, 1305, 2320, 2318, 2317, 2325, 2291, 669, 2265, 1954, + 799, 2156, 688, 2236, 2280, 1262, 1933, 2217, 2129, 2218, + 1889, 2133, 2110, 555, 1782, 1200, 1952, 890, 102, 2065, + 1953, 855, 1306, 315, 321, 795, 321, 601, 2117, 1258, + 1612, 105, 667, 592, 1841, 363, 1941, 700, 63, 1806, + 319, 22, 325, 1922, 434, 1969, 826, 1465, 1940, 101, + 828, 1645, 1608, 533, 875, 1852, 1844, 623, 1834, 1856, + 362, 390, 543, 1486, 1257, 849, 1613, 1475, 307, 1685, + 63, 989, 1184, 1617, 1794, 1675, 1693, 668, 815, 1664, + 1220, 1627, 1549, 435, 1623, 1477, 461, 1004, 331, 1007, + 998, 102, 990, 62, 1512, 1389, 678, 999, 1447, 1375, + 1293, 852, 1244, 545, 1485, 868, 1444, 1219, 850, 442, + 30, 808, 1897, 318, 15, 3, 316, 6, 816, 1181, + 317, 5, 463, 798, 835, 1215, 793, 1304, 1307, 437, + 392, 1319, 441, 616, 872, 670, 63, 893, 785, 22, + 896, 1206, 30, 476, 927, 584, 837, 1260, 812, 426, + 792, 836, 311, 568, 439, 1284, 515, 308, 389, 333, + 12, 98, 334, 7, 4, 1188, 1980, 1885, 1781, 803, + 992, 320, 602, 615, 97, 1949, 27, 87, 69, 2183, + 1429, 96, 495, 2173, 1210, 93, 531, 397, 440, 1185, + 97, 1433, 27, 87, 69, 570, 562, 514, 786, 379, + 790, 387, 857, 858, 2205, 1436, 554, 323, 30, 553, + 556, 557, 15, 97, 460, 6, 306, 97, 411, 5, + 97, 1446, 94, 839, 789, 556, 557, 2221, 2222, 770, + 97, 427, 27, 87, 69, 750, 328, 97, 94, 801, + 512, 508, 571, 2240, 2063, 1575, 1600, 2144, 747, 447, + 446, 448, 2203, 1783, 1601, 97, 1602, 27, 87, 69, + 2147, 94, 1983, 802, 1445, 94, 1417, 470, 749, 479, + 92, 2066, 2067, 2068, 2069, 2132, 869, 81, 94, 445, + 1778, 781, 1655, 576, 1802, 94, 1191, 1823, 1646, 1207, + 1966, 412, 577, 1961, 1657, 1840, 1839, 499, 51, 469, + 2041, 1426, 330, 94, 1938, 1595, 788, 2049, 468, 510, + 511, 1593, 498, 321, 509, 102, 381, 1651, 1958, 359, + 2182, 2231, 360, 450, 2207, 322, 378, 377, 2035, 1652, + 1653, 2310, 2326, 2245, 364, 1479, 1517, 1297, 1298, 443, + 2220, 865, 465, 467, 1654, 413, 486, 373, 2202, 2158, + 63, 63, 441, 2154, 2155, 68, 2158, 95, 1296, 1297, + 1298, 2252, 2131, 503, 2301, 2180, 2029, 439, 466, 1294, + 88, 89, 1998, 90, 91, 85, 1997, 359, 361, 390, + 360, 2118, 2119, 2120, 2122, 2121, 2185, 2186, 2209, 2210, + 1434, 504, 563, 444, 787, 1484, 2164, 1449, 479, 580, + 552, 551, 520, 506, 488, 1649, 2327, 371, 440, 507, + 1452, 1453, 1454, 1455, 532, 2321, 2292, 490, 1986, 435, + 435, 435, 30, 30, 596, 596, 535, 536, 438, 538, + 1550, 481, 480, 462, 534, 329, 68, 86, 95, 376, + 49, 321, 619, 619, 2142, 449, 569, 1422, 1271, 1189, + 2020, 810, 495, 537, 1779, 752, 85, 80, 79, 594, + 594, 372, 1621, 324, 1505, 472, 473, 540, 598, 1836, + 1835, 501, 1267, 768, 618, 618, 604, 574, 2024, 860, + 307, 1269, 1268, 502, 505, 596, 861, 596, 469, 487, + 384, 385, 386, 753, 484, 1266, 547, 800, 415, 63, + 572, 573, 748, 559, 560, 500, 859, 2283, 2305, 416, + 2269, 579, 63, 380, 1815, 1635, 1603, 82, 83, 556, + 557, 63, 2208, 1514, 777, 1466, 596, 1424, 1423, 822, + 2095, 1416, 390, 418, 1411, 827, 517, 2130, 474, 102, + 1235, 805, 2184, 818, 809, 548, 519, 1516, 1198, 1176, + 59, 908, 1647, 844, 84, 1186, 60, 1186, 596, 102, + 481, 480, 1186, 870, 1658, 756, 2042, 556, 557, 1295, + 832, 1596, 435, 1650, 596, 842, 600, 590, 591, 482, + 1622, 1187, 420, 419, 30, 811, 558, 1950, 1478, 561, + 542, 884, 1430, 30, 494, 1962, 70, 776, 831, 596, + 773, 889, 102, 102, 772, 61, 782, 876, 578, 905, + 840, 841, 70, 876, 876, 797, 2284, 845, 794, 894, + 603, 779, 614, 754, 830, 817, 745, 759, 306, 403, + 892, 489, 464, 891, 891, 70, 1822, 1482, 1483, 70, + 755, 438, 70, 909, 775, 895, 847, 774, 771, 566, + 567, 1481, 70, 791, 883, 833, 834, 945, 796, 70, + 587, 588, 589, 2022, 962, 1639, 864, 2021, 1592, 866, + 1458, 763, 764, 1183, 804, 2025, 2026, 70, 1309, 1308, + 607, 608, 609, 610, 611, 612, 613, 1618, 1621, 1590, + 585, 546, 2287, 823, 2278, 961, 583, 1448, 888, 2168, + 824, 586, 871, 969, 1662, 549, 405, 838, 1413, 404, + 960, 1273, 453, 458, 459, 846, 471, 1753, 1591, 1390, + 403, 1555, 971, 1182, 848, 881, 882, 902, 903, 904, + 901, 867, 794, 878, 879, 880, 1755, 2281, 2282, 417, + 996, 996, 1001, 2096, 2098, 2099, 2100, 2097, 1390, 382, + 1442, 963, 964, 965, 966, 901, 886, 767, 885, 887, + 814, 1992, 1009, 2031, 1314, 766, 440, 582, 904, 901, + 2030, 827, 1798, 1793, 2015, 596, 967, 953, 954, 946, + 947, 948, 949, 950, 951, 952, 945, 441, 1010, 1459, + 985, 2106, 2316, 1382, 550, 2300, 935, 405, 63, 2104, + 404, 102, 102, 2297, 1925, 2102, 1622, 1380, 1381, 1379, + 2092, 1615, 2262, 1959, 1221, 1616, 1619, 946, 947, 948, + 949, 950, 951, 952, 945, 2246, 2105, 1178, 2192, 315, + 1820, 421, 1203, 1205, 2103, 2299, 1237, 414, 1928, 1890, + 2101, 2140, 894, 440, 1923, 2091, 2139, 995, 1960, 1936, + 1937, 979, 1225, 2112, 1317, 1924, 948, 949, 950, 951, + 952, 945, 2090, 1180, 1318, 1821, 2089, 1620, 895, 1878, + 30, 455, 456, 457, 596, 912, 913, 914, 915, 916, + 917, 918, 910, 1226, 1227, 1228, 988, 1263, 619, 1929, + 102, 2088, 2085, 2079, 1265, 1197, 2076, 1289, 2075, 1291, + 1981, 876, 876, 876, 1008, 1175, 1877, 1974, 1973, 1278, + 1002, 1972, 1003, 1174, 1968, 1967, 1558, 1315, 1316, 1557, + 618, 1819, 1179, 1656, 1285, 1286, 1287, 1288, 902, 903, + 904, 901, 1196, 1587, 757, 1216, 1624, 359, 2330, 1229, + 360, 1742, 902, 903, 904, 901, 1312, 1281, 2241, 2230, + 1264, 1270, 985, 1201, 1202, 902, 903, 904, 901, 1354, + 2213, 2111, 1231, 2162, 1233, 1283, 819, 820, 821, 1299, + 2161, 2138, 1399, 1935, 1230, 1614, 1363, 1364, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1238, 1234, + 2093, 1384, 1385, 1391, 838, 1394, 1232, 2086, 2082, 1758, + 1931, 1524, 2081, 1708, 902, 903, 904, 901, 902, 903, + 904, 901, 2080, 1274, 1275, 1276, 1401, 2043, 2214, 1537, + 2017, 1982, 1930, 1932, 1732, 1729, 1730, 1731, 1560, 2308, + 1763, 1282, 1762, 1761, 1759, 1383, 1970, 1628, 1888, 1405, + 902, 903, 904, 901, 902, 903, 904, 901, 1886, 1749, + 1310, 1311, 1377, 1313, 902, 903, 904, 901, 1818, 1349, + 1350, 1351, 1352, 1353, 1536, 1817, 1359, 1360, 1361, 1362, + 944, 943, 953, 954, 946, 947, 948, 949, 950, 951, + 952, 945, 1938, 2136, 1809, 1800, 902, 903, 904, 901, + 1771, 1626, 1760, 1597, 1926, 902, 903, 904, 901, 1696, + 1393, 1395, 1396, 1392, 1508, 902, 903, 904, 901, 1404, + 1400, 1195, 1402, 716, 715, 1403, 1715, 1719, 1721, 1723, + 1725, 1726, 1728, 1194, 1732, 1729, 1730, 1731, 981, 2061, + 1710, 1711, 1712, 1713, 1694, 1695, 1716, 942, 1697, 941, + 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, + 1714, 902, 903, 904, 901, 758, 813, 2189, 1718, 1720, + 1722, 1724, 1727, 2040, 2188, 1564, 2169, 1418, 1520, 1563, + 1520, 2335, 1975, 2329, 2328, 2056, 596, 2052, 596, 2051, + 596, 1193, 2311, 1881, 469, 902, 903, 904, 901, 1439, + 2307, 2306, 1709, 1431, 902, 903, 904, 901, 1193, 2295, + 1879, 596, 1193, 2294, 1876, 1764, 1765, 2268, 2267, 1462, + 2045, 2228, 1868, 1427, 1833, 1468, 2045, 2223, 1788, 1437, + 1438, 1773, 809, 1280, 2211, 1864, 1473, 2200, 2199, 2045, + 2178, 1674, 469, 102, 102, 102, 102, 2045, 2177, 1640, + 1460, 1487, 2045, 2176, 469, 102, 1502, 902, 903, 904, + 901, 1863, 1567, 1487, 2045, 2175, 2167, 2166, 1565, 1862, + 63, 1457, 596, 22, 2060, 2059, 1441, 1566, 1428, 1562, + 102, 102, 1770, 902, 903, 904, 901, 2058, 2057, 1561, + 1469, 902, 903, 904, 901, 2054, 2055, 2054, 2053, 1503, + 1559, 1263, 1224, 2050, 902, 903, 904, 901, 1529, 1421, + 1526, 1510, 1511, 2045, 2044, 1525, 1520, 1747, 1519, 794, + 1504, 1440, 1425, 1419, 944, 943, 953, 954, 946, 947, + 948, 949, 950, 951, 952, 945, 1461, 1216, 829, 1450, + 1521, 1398, 30, 1522, 1523, 1470, 15, 1471, 1467, 6, + 1456, 1752, 1397, 5, 605, 1474, 1520, 1733, 1520, 1528, + 1506, 1488, 1489, 1490, 1491, 1499, 1501, 1463, 1500, 1472, + 1520, 1527, 2286, 902, 903, 904, 901, 1746, 1224, 1420, + 1544, 1254, 1531, 1532, 1533, 1534, 1535, 1253, 1539, 1509, + 1415, 1414, 1540, 1541, 1542, 1543, 1409, 1408, 829, 902, + 903, 904, 901, 1224, 1223, 1515, 1745, 1518, 1193, 1192, + 996, 1464, 1579, 996, 761, 760, 1582, 1520, 1717, 1634, + 1552, 1254, 1464, 1556, 1547, 1548, 960, 899, 902, 903, + 904, 901, 1585, 1240, 1210, 784, 1568, 2331, 1744, 97, + 876, 1661, 87, 69, 469, 1209, 876, 1406, 2277, 2298, + 783, 1743, 102, 1611, 493, 1789, 63, 1210, 1586, 1576, + 902, 903, 904, 901, 102, 1221, 492, 1638, 1546, 1210, + 493, 897, 1574, 902, 903, 904, 901, 1774, 1581, 495, + 1569, 1254, 440, 1629, 495, 1412, 1377, 94, 2271, 1545, + 1387, 1280, 1578, 1185, 1554, 944, 943, 953, 954, 946, + 947, 948, 949, 950, 951, 952, 945, 1199, 1177, 1571, + 1570, 1594, 1739, 1580, 1583, 1678, 1584, 1577, 1738, 541, + 581, 1589, 2253, 2034, 2250, 1737, 2248, 2191, 2127, 97, + 2115, 1641, 1642, 2113, 902, 903, 904, 901, 2108, 1636, + 902, 903, 904, 901, 2070, 1843, 1660, 902, 903, 904, + 901, 2038, 2037, 1680, 2036, 1637, 2033, 1633, 1212, 596, + 1736, 1672, 2028, 1734, 2013, 596, 1630, 1631, 1632, 1644, + 1740, 1741, 1648, 544, 1735, 1673, 1659, 94, 1853, 1845, + 1669, 1857, 902, 903, 904, 901, 1643, 1860, 1754, 596, + 1241, 1850, 1849, 1767, 594, 1829, 902, 903, 904, 901, + 594, 1804, 1766, 1799, 1678, 1378, 102, 94, 1768, 1769, + 1246, 1249, 1250, 1251, 1247, 1792, 1248, 1252, 1683, 1751, + 943, 953, 954, 946, 947, 948, 949, 950, 951, 952, + 945, 596, 596, 1443, 1407, 102, 1812, 1787, 1750, 1748, + 902, 903, 904, 901, 1757, 366, 367, 368, 369, 1272, + 1222, 987, 63, 986, 984, 1786, 1772, 1775, 365, 983, + 1682, 982, 469, 485, 980, 2275, 594, 1807, 928, 977, + 976, 1487, 1777, 974, 1805, 1263, 973, 1776, 972, 1832, + 970, 1796, 902, 903, 904, 901, 940, 939, 938, 1791, + 937, 1790, 936, 934, 933, 876, 1814, 1813, 1828, 606, + 1795, 1830, 1795, 1797, 1816, 1803, 1825, 932, 1810, 1831, + 1811, 944, 943, 953, 954, 946, 947, 948, 949, 950, + 951, 952, 945, 931, 1681, 930, 2315, 1827, 1386, 929, + 926, 439, 925, 924, 923, 1826, 922, 921, 920, 919, + 780, 1847, 1848, 956, 751, 959, 902, 903, 904, 901, + 902, 903, 904, 901, 497, 1851, 1837, 2258, 1855, 957, + 958, 955, 1846, 944, 943, 953, 954, 946, 947, 948, + 949, 950, 951, 952, 945, 1865, 1665, 1666, 1854, 2256, + 102, 2219, 1668, 1451, 1279, 496, 1671, 1496, 1867, 1670, + 469, 1894, 1497, 408, 1942, 1944, 1494, 1942, 1942, 1611, + 1858, 1495, 1861, 1869, 1493, 469, 1871, 876, 1873, 1492, + 1498, 1883, 1250, 1251, 1410, 1217, 1598, 1866, 1246, 1249, + 1250, 1251, 1247, 516, 1248, 1252, 1870, 2273, 1872, 1605, + 827, 1939, 1948, 1874, 1875, 403, 1201, 1202, 50, 1882, + 1984, 1943, 1208, 491, 1604, 1256, 825, 1309, 1308, 528, + 529, 2233, 1919, 565, 29, 1945, 1946, 28, 526, 527, + 1891, 564, 1947, 1963, 1173, 1951, 524, 525, 518, 303, + 1814, 1956, 1957, 944, 943, 953, 954, 946, 947, 948, + 949, 950, 951, 952, 945, 304, 1964, 2272, 305, 522, + 523, 366, 367, 368, 369, 1551, 1988, 2196, 2194, 2149, + 2148, 2146, 2073, 2071, 365, 365, 1971, 1978, 1887, 1785, + 1784, 1976, 405, 1677, 521, 404, 944, 943, 953, 954, + 946, 947, 948, 949, 950, 951, 952, 945, 1676, 1513, + 596, 829, 2260, 2259, 1255, 1588, 1530, 483, 2259, 102, + 2260, 862, 393, 35, 1, 1239, 1190, 402, 1944, 1801, + 1625, 539, 1991, 383, 1355, 406, 530, 765, 452, 478, + 762, 477, 1939, 475, 1388, 1807, 1320, 701, 2016, 991, + 2032, 997, 2109, 2232, 2264, 2014, 2190, 2235, 778, 2018, + 687, 2141, 1599, 2062, 2143, 2064, 1435, 1977, 2047, 1432, + 2074, 513, 1572, 1573, 2039, 713, 704, 975, 706, 2046, + 746, 1880, 2048, 454, 1989, 1990, 703, 1993, 1994, 1995, + 1996, 1824, 2107, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2008, 2009, 2010, 2011, 2012, 439, 1480, 370, + 451, 394, 63, 1965, 469, 2072, 1780, 469, 469, 469, + 1838, 2087, 1859, 1263, 1842, 2324, 469, 944, 943, 953, + 954, 946, 947, 948, 949, 950, 951, 952, 945, 2314, + 2116, 2290, 2270, 2124, 2125, 2126, 2157, 2309, 2201, 2251, + 2244, 2151, 2135, 2153, 2123, 1985, 2134, 335, 596, 596, + 863, 575, 424, 2128, 336, 2181, 2137, 2114, 374, 1211, + 375, 1214, 2152, 1213, 2145, 1300, 911, 1376, 978, 968, + 2077, 2078, 621, 1553, 677, 671, 2083, 2084, 1476, 102, + 1934, 1507, 843, 594, 594, 34, 469, 33, 32, 900, + 1005, 2159, 2160, 702, 399, 104, 401, 411, 469, 1236, + 1006, 398, 396, 395, 407, 400, 2165, 409, 410, 2150, + 891, 1979, 2174, 2237, 686, 685, 2170, 684, 683, 682, + 1245, 1243, 1242, 854, 2179, 853, 898, 2216, 2215, 2171, + 2172, 1884, 2187, 2027, 2094, 2023, 2019, 2195, 2193, 2197, + 2198, 2163, 1893, 1892, 1920, 1921, 1927, 1692, 2204, 2206, + 1688, 1690, 1691, 391, 1689, 1756, 1684, 1609, 1610, 1607, + 2212, 1606, 2239, 1667, 1663, 993, 1000, 2224, 2225, 2226, + 2227, 2243, 807, 99, 2238, 944, 943, 953, 954, 946, + 947, 948, 949, 950, 951, 952, 945, 2242, 851, 11, + 10, 769, 9, 14, 21, 20, 19, 58, 57, 56, + 55, 18, 8, 2254, 54, 53, 2257, 2255, 52, 17, + 16, 2266, 47, 48, 45, 2261, 2247, 2263, 2249, 469, + 44, 469, 43, 42, 41, 40, 39, 46, 800, 2274, + 800, 2276, 38, 37, 36, 67, 66, 65, 64, 2239, + 2289, 23, 24, 25, 26, 2285, 77, 76, 469, 78, + 74, 2238, 2288, 72, 2293, 75, 73, 800, 2296, 71, + 31, 2229, 13, 2, 2266, 2302, 2279, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2312, 0, 0, 0, + 0, 0, 0, 0, 2313, 0, 0, 0, 0, 0, + 2304, 2323, 0, 2322, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2334, 2333, 2332, 2323, 1119, 1161, 0, + 0, 1106, 0, 1068, 1121, 1042, 1057, 1129, 1058, 1059, + 1093, 1021, 1077, 228, 1055, 0, 1109, 1013, 1045, 1046, + 1015, 1052, 1016, 1043, 1070, 173, 1041, 1080, 198, 1127, + 0, 0, 257, 212, 0, 0, 1073, 1111, 1075, 1098, + 1067, 1094, 1029, 1087, 1122, 1056, 1091, 1123, 0, 0, + 0, 0, 0, 819, 820, 821, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 1090, 1116, 1054, 0, + 158, 1120, 1074, 1092, 0, 0, 1014, 1088, 0, 1019, + 1022, 1128, 1114, 1049, 1050, 0, 0, 0, 0, 0, + 0, 0, 1071, 1076, 1095, 1064, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1047, 0, 1084, 0, 0, + 0, 1024, 1020, 0, 1069, 0, 147, 262, 276, 156, + 253, 289, 161, 260, 152, 227, 249, 0, 1160, 149, + 274, 259, 209, 192, 193, 148, 0, 244, 171, 184, + 168, 225, 0, 1118, 301, 167, 292, 1023, 284, 151, + 1155, 283, 224, 271, 275, 210, 204, 150, 273, 208, + 203, 196, 175, 188, 236, 202, 237, 189, 214, 213, + 215, 1139, 1140, 1141, 1142, 1143, 1151, 1152, 0, 1156, + 1157, 1158, 1028, 0, 1048, 1096, 0, 1012, 1104, 1112, + 1066, 286, 1115, 1063, 1062, 1146, 0, 1145, 261, 1147, + 1148, 197, 1110, 1044, 1053, 302, 1051, 247, 230, 1117, + 1083, 1159, 245, 200, 272, 238, 277, 263, 285, 241, + 239, 143, 264, 170, 211, 153, 154, 166, 172, 174, + 176, 177, 220, 221, 233, 252, 265, 266, 267, 169, + 162, 246, 163, 186, 164, 144, 254, 165, 145, 234, + 270, 1144, 182, 242, 207, 146, 206, 235, 269, 268, + 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1153, 0, 1154, 298, 180, 1011, + 281, 0, 226, 1107, 1017, 1027, 1025, 1060, 1085, 1086, + 222, 297, 1100, 1103, 1101, 1130, 250, 0, 0, 0, + 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1018, 0, 258, 279, + 291, 1162, 1163, 1164, 1165, 0, 1166, 1167, 1168, 1169, + 1170, 1171, 1172, 282, 1061, 1035, 1072, 290, 1038, 1036, + 1099, 1037, 1089, 1132, 216, 217, 218, 219, 183, 0, + 160, 1081, 1065, 1133, 1134, 1135, 1136, 1137, 1138, 1040, + 1113, 179, 185, 0, 187, 159, 231, 181, 288, 194, + 1105, 223, 190, 255, 195, 201, 243, 287, 229, 248, + 157, 278, 256, 205, 1034, 1039, 1033, 1078, 1079, 1124, + 1125, 1126, 1097, 1026, 1108, 1030, 1032, 1031, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 1082, + 142, 0, 199, 1131, 240, 178, 709, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 0, 679, 0, 0, 0, 173, 0, + 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, + 0, 724, 730, 1149, 1150, 294, 295, 296, 280, 0, + 0, 0, 672, 0, 0, 0, 622, 716, 715, 689, + 698, 0, 0, 155, 690, 0, 697, 691, 695, 694, + 692, 693, 0, 659, 0, 0, 0, 0, 0, 0, + 620, 676, 0, 680, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 673, 674, 0, 0, 0, 0, + 710, 0, 675, 0, 0, 712, 0, 699, 0, 147, + 262, 276, 156, 253, 289, 161, 260, 152, 227, 249, + 0, 0, 149, 274, 259, 209, 192, 193, 148, 0, + 244, 171, 184, 168, 225, 696, 708, 665, 167, 663, + 707, 284, 151, 0, 283, 224, 271, 275, 210, 204, + 150, 273, 208, 203, 196, 175, 188, 236, 202, 237, + 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 705, 0, 0, 286, 0, 0, 723, 0, 0, + 0, 261, 0, 0, 197, 0, 0, 0, 666, 0, + 247, 230, 733, 0, 0, 245, 200, 272, 238, 277, + 263, 285, 241, 239, 143, 264, 170, 211, 153, 154, + 166, 172, 174, 176, 177, 220, 221, 233, 252, 265, + 266, 267, 169, 162, 246, 163, 186, 164, 144, 254, + 165, 145, 234, 270, 0, 182, 242, 207, 146, 206, + 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1357, 1356, 1358, + 298, 180, 0, 281, 721, 226, 732, 717, 718, 719, + 722, 725, 726, 661, 664, 727, 729, 731, 734, 250, + 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 711, 216, 217, 218, + 219, 660, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 185, 0, 187, 159, 231, + 181, 288, 194, 0, 223, 190, 255, 195, 201, 243, + 287, 229, 248, 157, 278, 256, 205, 740, 720, 739, + 741, 742, 738, 743, 744, 728, 681, 0, 736, 735, + 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 0, 199, 0, 240, 178, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 121, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 714, 0, 0, 294, 295, + 296, 280, 97, 0, 709, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 679, 0, 0, 0, 173, 0, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 724, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 0, 0, 0, 622, 716, 715, 689, 698, 0, + 0, 155, 690, 0, 697, 691, 695, 694, 692, 693, + 0, 659, 0, 0, 0, 0, 0, 0, 620, 676, + 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 0, 0, 0, 0, 710, 0, + 675, 0, 0, 712, 0, 699, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 696, 708, 665, 167, 663, 707, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 0, 0, 286, 0, 0, 723, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 666, 0, 247, 230, + 733, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 721, 226, 732, 717, 718, 719, 722, 725, + 726, 661, 664, 727, 729, 731, 734, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 662, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 711, 216, 217, 218, 219, 660, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 740, 720, 739, 741, 742, + 738, 743, 744, 728, 681, 0, 736, 735, 737, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 199, 70, 240, 178, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 121, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 714, 709, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 679, 0, 0, 0, 173, 877, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 724, + 730, 0, 0, 0, 0, 0, 0, 873, 0, 0, + 672, 0, 0, 0, 622, 716, 715, 689, 698, 0, + 0, 155, 690, 0, 697, 691, 695, 694, 692, 693, + 0, 659, 0, 0, 0, 0, 0, 0, 620, 676, + 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 0, 0, 0, 0, 710, 0, + 675, 0, 0, 874, 0, 699, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 696, 708, 665, 167, 663, 707, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 0, 0, 286, 0, 0, 723, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 666, 0, 247, 230, + 733, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 721, 226, 732, 717, 718, 719, 722, 725, + 726, 661, 664, 727, 729, 731, 734, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 662, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 711, 216, 217, 218, 219, 660, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 740, 720, 739, 741, 742, + 738, 743, 744, 728, 681, 0, 736, 735, 737, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 199, 0, 240, 178, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 121, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 714, 709, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 679, 0, 0, 0, 173, 2303, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 724, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 0, 0, 0, 622, 716, 715, 689, 698, 0, + 0, 155, 690, 0, 697, 691, 695, 694, 692, 693, + 0, 659, 0, 0, 0, 0, 0, 0, 620, 676, + 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 0, 0, 0, 0, 710, 0, + 675, 0, 0, 712, 0, 699, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 696, 708, 665, 167, 663, 707, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 0, 0, 286, 0, 0, 723, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 666, 0, 247, 230, + 733, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 721, 226, 732, 717, 718, 719, 722, 725, + 726, 661, 664, 727, 729, 731, 734, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 662, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 711, 216, 217, 218, 219, 660, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 740, 720, 739, 741, 742, + 738, 743, 744, 728, 681, 0, 736, 735, 737, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 199, 0, 240, 178, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 121, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 714, 709, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 679, 0, 0, 0, 173, 877, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 724, + 730, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 0, 0, 0, 622, 716, 715, 689, 698, 0, + 0, 155, 690, 0, 697, 691, 695, 694, 692, 693, + 0, 659, 0, 0, 0, 0, 0, 0, 620, 676, + 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 0, 0, 0, 0, 710, 0, + 675, 0, 0, 712, 0, 699, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 696, 708, 665, 167, 663, 707, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 0, 0, 286, 0, 0, 723, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 666, 0, 247, 230, + 733, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 721, 226, 732, 717, 718, 719, 722, 725, + 726, 661, 664, 727, 729, 731, 734, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 662, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 711, 216, 217, 218, 219, 660, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 740, 720, 739, 741, 742, + 738, 743, 744, 728, 681, 0, 736, 735, 737, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 199, 0, 240, 178, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 121, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 714, 0, 0, 294, 295, 296, 280, + 709, 0, 0, 1538, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 620, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 0, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 709, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 620, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 617, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 709, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 620, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 0, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 709, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 228, 0, 0, 0, 1301, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 0, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 0, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 1302, 1303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 709, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 0, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 0, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 709, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 679, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 724, 730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 622, 716, 715, 689, 698, 0, 0, 155, 690, 0, + 697, 691, 695, 694, 692, 693, 0, 659, 0, 0, + 0, 0, 0, 0, 620, 676, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 673, 674, + 0, 0, 0, 0, 710, 0, 675, 0, 0, 712, + 0, 699, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 696, + 708, 665, 167, 663, 707, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 705, 0, 0, 286, 0, + 0, 723, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 666, 0, 247, 230, 733, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 721, 226, + 732, 717, 718, 719, 722, 725, 726, 661, 664, 727, + 729, 731, 734, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 711, 216, 217, 218, 219, 660, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 740, 720, 739, 741, 742, 738, 743, 744, 728, + 681, 0, 736, 735, 737, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 0, 199, + 0, 240, 178, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 121, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 714, + 0, 0, 294, 295, 296, 280, 97, 0, 27, 87, + 69, 0, 0, 0, 0, 0, 0, 0, 228, 309, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 173, 0, 0, 198, 0, 0, 0, 257, 212, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 103, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 346, 0, 345, 349, 341, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, + 0, 147, 262, 276, 156, 253, 289, 161, 260, 152, + 227, 249, 0, 0, 149, 274, 259, 209, 192, 193, + 148, 0, 244, 171, 184, 168, 225, 0, 0, 301, + 167, 292, 0, 284, 151, 0, 283, 224, 271, 275, + 210, 204, 150, 273, 208, 203, 196, 175, 188, 236, + 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 286, 0, 0, 0, + 0, 0, 0, 261, 0, 0, 197, 0, 0, 0, + 302, 0, 247, 230, 0, 0, 0, 245, 200, 272, + 238, 277, 263, 285, 241, 239, 143, 264, 170, 211, + 153, 154, 166, 172, 174, 176, 177, 220, 221, 233, + 252, 265, 266, 267, 169, 162, 246, 163, 186, 164, + 144, 254, 165, 145, 234, 270, 0, 182, 242, 207, + 146, 206, 235, 269, 268, 293, 299, 300, 0, 0, + 0, 339, 338, 342, 0, 1340, 0, 0, 0, 344, + 0, 0, 298, 180, 0, 281, 0, 226, 0, 0, + 0, 348, 0, 0, 0, 222, 297, 0, 0, 0, + 0, 250, 0, 0, 0, 340, 0, 191, 232, 0, + 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 258, 279, 291, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, + 0, 0, 290, 0, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 310, 312, 160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 179, 185, 0, 187, + 159, 231, 181, 288, 194, 0, 223, 190, 255, 195, + 201, 243, 287, 229, 248, 157, 278, 256, 205, 343, + 347, 350, 0, 351, 352, 0, 0, 353, 354, 355, + 0, 0, 357, 358, 0, 0, 0, 0, 0, 0, + 1336, 0, 1333, 0, 0, 0, 1335, 1332, 1334, 1338, + 1339, 0, 0, 0, 1337, 142, 0, 199, 70, 240, + 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 228, 0, 0, + 294, 295, 296, 280, 0, 0, 0, 0, 0, 173, + 0, 0, 198, 0, 0, 0, 257, 212, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 158, 1618, 1621, 1321, 1322, 1323, + 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1343, 1344, + 1345, 1346, 1347, 1348, 1341, 1342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 147, 262, 276, 156, 253, 289, 161, 260, 152, 227, + 249, 0, 0, 149, 274, 259, 209, 192, 193, 148, + 0, 244, 171, 184, 168, 225, 0, 0, 301, 167, + 292, 0, 284, 151, 0, 283, 224, 271, 275, 210, + 204, 150, 273, 208, 203, 196, 175, 188, 236, 202, + 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1622, 286, 0, 0, 0, 1615, + 0, 1614, 261, 1616, 1619, 197, 0, 0, 0, 302, + 0, 247, 230, 0, 0, 0, 245, 200, 272, 238, + 277, 263, 285, 241, 239, 143, 264, 170, 211, 153, + 154, 166, 172, 174, 176, 177, 220, 221, 233, 252, + 265, 266, 267, 169, 162, 246, 163, 186, 164, 144, + 254, 165, 145, 234, 270, 1620, 182, 242, 207, 146, + 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 298, 180, 0, 281, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 222, 297, 0, 0, 0, 0, + 250, 0, 0, 0, 0, 0, 191, 232, 0, 251, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, + 0, 290, 0, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 185, 0, 187, 159, + 231, 181, 288, 194, 0, 223, 190, 255, 195, 201, + 243, 287, 229, 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 228, 0, 0, 294, + 295, 296, 280, 906, 0, 0, 0, 0, 173, 0, + 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 0, 0, 907, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 0, 0, 902, 903, 904, 901, + 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, 147, + 262, 276, 156, 253, 289, 161, 260, 152, 227, 249, + 0, 0, 149, 274, 259, 209, 192, 193, 148, 0, + 244, 171, 184, 168, 225, 0, 0, 301, 167, 292, + 0, 284, 151, 0, 283, 224, 271, 275, 210, 204, + 150, 273, 208, 203, 196, 175, 188, 236, 202, 237, + 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 197, 0, 0, 0, 302, 0, + 247, 230, 0, 0, 0, 245, 200, 272, 238, 277, + 263, 285, 241, 239, 143, 264, 170, 211, 153, 154, + 166, 172, 174, 176, 177, 220, 221, 233, 252, 265, + 266, 267, 169, 162, 246, 163, 186, 164, 144, 254, + 165, 145, 234, 270, 0, 182, 242, 207, 146, 206, + 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 180, 0, 281, 0, 226, 0, 0, 0, 0, + 0, 0, 0, 222, 297, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 185, 0, 187, 159, 231, + 181, 288, 194, 0, 223, 190, 255, 195, 201, 243, + 287, 229, 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 228, 0, 0, 294, 295, + 296, 280, 0, 0, 0, 0, 0, 173, 423, 0, + 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 431, 432, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 436, 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, 147, 262, + 276, 156, 253, 289, 161, 260, 152, 227, 249, 0, + 0, 149, 274, 259, 209, 192, 193, 148, 0, 244, + 171, 184, 168, 225, 0, 0, 301, 167, 292, 405, + 284, 151, 404, 283, 224, 271, 275, 210, 204, 150, + 273, 208, 203, 196, 175, 188, 236, 202, 237, 189, + 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 197, 0, 0, 0, 302, 0, 247, + 230, 0, 0, 0, 245, 200, 272, 238, 277, 263, + 285, 422, 239, 143, 264, 170, 211, 153, 154, 166, + 172, 174, 176, 177, 220, 221, 233, 252, 265, 266, + 267, 169, 162, 246, 163, 186, 164, 144, 254, 165, + 145, 234, 270, 0, 182, 242, 207, 146, 206, 235, + 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, + 180, 0, 281, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 222, 297, 0, 0, 0, 0, 250, 0, + 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 282, 0, 0, 0, 290, + 0, 0, 0, 0, 0, 425, 216, 217, 218, 219, + 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 185, 0, 187, 159, 231, 181, + 288, 194, 0, 433, 428, 429, 195, 201, 243, 287, + 229, 248, 157, 278, 256, 430, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 227, 0, 0, 293, 294, 295, 279, - 0, 0, 0, 0, 0, 172, 0, 0, 197, 0, - 0, 0, 256, 211, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 1614, 1617, 1317, 1318, 1319, 1320, 1321, 1322, 1323, - 1324, 1325, 1326, 1327, 1339, 1340, 1341, 1342, 1343, 1344, - 1337, 1338, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 261, 275, 155, - 252, 288, 160, 259, 151, 226, 248, 0, 0, 148, - 273, 258, 208, 191, 192, 147, 0, 243, 170, 183, - 167, 224, 0, 0, 300, 166, 291, 0, 283, 150, - 0, 282, 223, 270, 274, 209, 203, 149, 272, 207, - 202, 195, 174, 187, 235, 201, 236, 188, 213, 212, - 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1618, 285, 0, 0, 0, 1611, 0, 1610, 260, 1612, - 1615, 196, 0, 0, 0, 301, 0, 246, 229, 0, - 0, 0, 244, 199, 271, 237, 276, 262, 284, 240, - 238, 142, 263, 169, 210, 152, 153, 165, 171, 173, - 175, 176, 219, 220, 232, 251, 264, 265, 266, 168, - 161, 245, 162, 185, 163, 143, 253, 164, 144, 233, - 269, 1616, 181, 241, 206, 145, 205, 234, 268, 267, - 292, 298, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 179, 0, - 280, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 221, 296, 0, 0, 0, 0, 249, 0, 0, 0, - 0, 0, 190, 231, 0, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 278, - 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 281, 0, 0, 0, 289, 0, 0, - 0, 0, 0, 0, 215, 216, 217, 218, 182, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 184, 0, 186, 158, 230, 180, 287, 193, - 0, 222, 189, 254, 194, 200, 242, 286, 228, 247, - 156, 277, 255, 204, 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, - 141, 0, 198, 0, 239, 177, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 227, 0, 0, 293, 294, 295, 279, 902, - 0, 0, 0, 0, 172, 0, 0, 197, 0, 0, - 0, 256, 211, 0, 0, 0, 0, 0, 0, 0, + 138, 139, 140, 141, 97, 0, 0, 294, 295, 296, + 280, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, + 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 903, 0, 0, 0, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 898, 899, 900, 897, 0, 0, 0, 0, + 0, 0, 94, 0, 994, 0, 103, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 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, 146, 261, 275, 155, 252, - 288, 160, 259, 151, 226, 248, 0, 0, 148, 273, - 258, 208, 191, 192, 147, 0, 243, 170, 183, 167, - 224, 0, 0, 300, 166, 291, 0, 283, 150, 0, - 282, 223, 270, 274, 209, 203, 149, 272, 207, 202, - 195, 174, 187, 235, 201, 236, 188, 213, 212, 214, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 262, 276, 156, 253, 289, 161, 260, 152, 227, 249, + 0, 0, 149, 274, 259, 209, 192, 193, 148, 0, + 244, 171, 184, 168, 225, 0, 0, 301, 167, 292, + 0, 284, 151, 0, 283, 224, 271, 275, 210, 204, + 150, 273, 208, 203, 196, 175, 188, 236, 202, 237, + 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 197, 0, 0, 0, 302, 0, + 247, 230, 0, 0, 0, 245, 200, 272, 238, 277, + 263, 285, 241, 239, 143, 264, 170, 211, 153, 154, + 166, 172, 174, 176, 177, 220, 221, 233, 252, 265, + 266, 267, 169, 162, 246, 163, 186, 164, 144, 254, + 165, 145, 234, 270, 0, 182, 242, 207, 146, 206, + 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 196, 0, 0, 0, 301, 0, 246, 229, 0, 0, - 0, 244, 199, 271, 237, 276, 262, 284, 240, 238, - 142, 263, 169, 210, 152, 153, 165, 171, 173, 175, - 176, 219, 220, 232, 251, 264, 265, 266, 168, 161, - 245, 162, 185, 163, 143, 253, 164, 144, 233, 269, - 0, 181, 241, 206, 145, 205, 234, 268, 267, 292, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 179, 0, 280, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 221, - 296, 0, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 190, 231, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 278, 290, + 298, 180, 0, 281, 0, 226, 0, 0, 0, 0, + 0, 0, 0, 222, 297, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 281, 0, 0, 0, 289, 0, 0, 0, - 0, 0, 0, 215, 216, 217, 218, 182, 0, 159, + 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 185, 0, 187, 159, 231, + 181, 288, 194, 0, 223, 190, 255, 195, 201, 243, + 287, 229, 248, 157, 278, 256, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 184, 0, 186, 158, 230, 180, 287, 193, 0, - 222, 189, 254, 194, 200, 242, 286, 228, 247, 156, - 277, 255, 204, 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, 141, - 0, 198, 0, 239, 177, 105, 106, 107, 108, 109, + 0, 0, 0, 142, 0, 199, 70, 240, 178, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 228, 0, 0, 294, 295, + 296, 280, 0, 0, 0, 0, 0, 173, 0, 0, + 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 431, 432, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 436, 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, 147, 262, + 276, 156, 253, 289, 161, 260, 152, 227, 249, 0, + 0, 149, 274, 259, 209, 192, 193, 148, 0, 244, + 171, 184, 168, 225, 0, 0, 301, 167, 292, 405, + 284, 151, 404, 283, 224, 271, 275, 210, 204, 150, + 273, 208, 203, 196, 175, 188, 236, 202, 237, 189, + 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 197, 0, 0, 0, 302, 0, 247, + 230, 0, 0, 0, 245, 200, 272, 238, 277, 263, + 285, 241, 239, 143, 264, 170, 211, 153, 154, 166, + 172, 174, 176, 177, 220, 221, 233, 252, 265, 266, + 267, 169, 162, 246, 163, 186, 164, 144, 254, 165, + 145, 234, 270, 0, 182, 242, 207, 146, 206, 235, + 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, + 180, 0, 281, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 222, 297, 0, 0, 0, 0, 250, 0, + 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 282, 0, 0, 0, 290, + 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 185, 0, 187, 159, 231, 181, + 288, 194, 0, 433, 428, 429, 195, 201, 243, 287, + 229, 248, 157, 278, 256, 430, 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, 142, 0, 199, 0, 240, 178, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 228, 0, 0, 294, 295, 296, + 280, 0, 0, 0, 0, 0, 173, 599, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 597, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 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, 595, 0, 0, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 0, 0, 301, 167, 292, 0, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 302, 0, 247, 230, + 0, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 0, 226, 0, 0, 0, 0, 0, 0, + 0, 222, 297, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 183, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 228, 0, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 0, 173, 593, 0, 198, 0, + 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 597, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 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, 595, 0, 0, 0, 147, 262, 276, 156, + 253, 289, 161, 260, 152, 227, 249, 0, 0, 149, + 274, 259, 209, 192, 193, 148, 0, 244, 171, 184, + 168, 225, 0, 0, 301, 167, 292, 0, 284, 151, + 0, 283, 224, 271, 275, 210, 204, 150, 273, 208, + 203, 196, 175, 188, 236, 202, 237, 189, 214, 213, + 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 261, 0, + 0, 197, 0, 0, 0, 302, 0, 247, 230, 0, + 0, 0, 245, 200, 272, 238, 277, 263, 285, 241, + 239, 143, 264, 170, 211, 153, 154, 166, 172, 174, + 176, 177, 220, 221, 233, 252, 265, 266, 267, 169, + 162, 246, 163, 186, 164, 144, 254, 165, 145, 234, + 270, 0, 182, 242, 207, 146, 206, 235, 269, 268, + 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 180, 0, + 281, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 222, 297, 0, 0, 0, 0, 250, 0, 0, 0, + 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 279, + 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 282, 0, 0, 0, 290, 0, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 183, 0, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 185, 0, 187, 159, 231, 181, 288, 194, + 0, 223, 190, 255, 195, 201, 243, 287, 229, 248, + 157, 278, 256, 205, 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, + 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 227, 0, 0, 293, 294, 295, 279, 0, 0, - 0, 0, 0, 172, 422, 0, 197, 0, 0, 0, - 256, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 430, 431, 0, 0, 0, 0, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 435, 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, 146, 261, 275, 155, 252, 288, - 160, 259, 151, 226, 248, 0, 0, 148, 273, 258, - 208, 191, 192, 147, 0, 243, 170, 183, 167, 224, - 0, 0, 300, 166, 291, 404, 283, 150, 403, 282, - 223, 270, 274, 209, 203, 149, 272, 207, 202, 195, - 174, 187, 235, 201, 236, 188, 213, 212, 214, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 0, 0, 0, 0, 0, 260, 0, 0, 196, - 0, 0, 0, 301, 0, 246, 229, 0, 0, 0, - 244, 199, 271, 237, 276, 262, 284, 421, 238, 142, - 263, 169, 210, 152, 153, 165, 171, 173, 175, 176, - 219, 220, 232, 251, 264, 265, 266, 168, 161, 245, - 162, 185, 163, 143, 253, 164, 144, 233, 269, 0, - 181, 241, 206, 145, 205, 234, 268, 267, 292, 298, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 179, 0, 280, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 221, 296, - 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, - 190, 231, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 278, 290, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 281, 0, 0, 0, 289, 0, 0, 0, 0, - 0, 424, 215, 216, 217, 218, 182, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, - 184, 0, 186, 158, 230, 180, 287, 193, 0, 432, - 427, 428, 194, 200, 242, 286, 228, 247, 156, 277, - 255, 429, 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, 141, 0, - 198, 0, 239, 177, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 96, 0, 0, 293, 294, 295, 279, 0, 0, 0, - 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 0, 0, 197, 0, 0, - 0, 256, 211, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 990, 0, 102, 0, 0, 0, 0, 0, 0, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 140, 141, 228, 0, 0, 294, 295, 296, 280, 0, + 0, 0, 0, 0, 173, 0, 0, 198, 0, 0, + 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2234, 0, 103, 716, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, 146, 261, 275, 155, 252, - 288, 160, 259, 151, 226, 248, 0, 0, 148, 273, - 258, 208, 191, 192, 147, 0, 243, 170, 183, 167, - 224, 0, 0, 300, 166, 291, 0, 283, 150, 0, - 282, 223, 270, 274, 209, 203, 149, 272, 207, 202, - 195, 174, 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 262, 276, 156, 253, + 289, 161, 260, 152, 227, 249, 0, 0, 149, 274, + 259, 209, 192, 193, 148, 0, 244, 171, 184, 168, + 225, 0, 0, 301, 167, 292, 0, 284, 151, 0, + 283, 224, 271, 275, 210, 204, 150, 273, 208, 203, + 196, 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 196, 0, 0, 0, 301, 0, 246, 229, 0, 0, - 0, 244, 199, 271, 237, 276, 262, 284, 240, 238, - 142, 263, 169, 210, 152, 153, 165, 171, 173, 175, - 176, 219, 220, 232, 251, 264, 265, 266, 168, 161, - 245, 162, 185, 163, 143, 253, 164, 144, 233, 269, - 0, 181, 241, 206, 145, 205, 234, 268, 267, 292, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 179, 0, 280, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 221, - 296, 0, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 190, 231, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 281, 0, 0, 0, 289, 0, 0, 0, - 0, 0, 0, 215, 216, 217, 218, 182, 0, 159, + 286, 0, 0, 0, 0, 0, 0, 261, 0, 0, + 197, 0, 0, 0, 302, 0, 247, 230, 0, 0, + 0, 245, 200, 272, 238, 277, 263, 285, 241, 239, + 143, 264, 170, 211, 153, 154, 166, 172, 174, 176, + 177, 220, 221, 233, 252, 265, 266, 267, 169, 162, + 246, 163, 186, 164, 144, 254, 165, 145, 234, 270, + 0, 182, 242, 207, 146, 206, 235, 269, 268, 293, + 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 180, 0, 281, + 0, 226, 0, 0, 0, 0, 0, 0, 0, 222, + 297, 0, 0, 0, 0, 250, 0, 0, 0, 0, + 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 184, 0, 186, 158, 230, 180, 287, 193, 0, - 222, 189, 254, 194, 200, 242, 286, 228, 247, 156, - 277, 255, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 282, 0, 0, 0, 290, 0, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 179, 185, 0, 187, 159, 231, 181, 288, 194, 0, + 223, 190, 255, 195, 201, 243, 287, 229, 248, 157, + 278, 256, 205, 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, 141, - 0, 198, 70, 239, 177, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 227, 0, 0, 293, 294, 295, 279, 0, 0, - 0, 0, 0, 172, 0, 0, 197, 0, 0, 0, - 256, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 430, 431, 0, 0, 0, 0, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 435, 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, 146, 261, 275, 155, 252, 288, - 160, 259, 151, 226, 248, 0, 0, 148, 273, 258, - 208, 191, 192, 147, 0, 243, 170, 183, 167, 224, - 0, 0, 300, 166, 291, 404, 283, 150, 403, 282, - 223, 270, 274, 209, 203, 149, 272, 207, 202, 195, - 174, 187, 235, 201, 236, 188, 213, 212, 214, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 0, 0, 0, 0, 0, 260, 0, 0, 196, - 0, 0, 0, 301, 0, 246, 229, 0, 0, 0, - 244, 199, 271, 237, 276, 262, 284, 240, 238, 142, - 263, 169, 210, 152, 153, 165, 171, 173, 175, 176, - 219, 220, 232, 251, 264, 265, 266, 168, 161, 245, - 162, 185, 163, 143, 253, 164, 144, 233, 269, 0, - 181, 241, 206, 145, 205, 234, 268, 267, 292, 298, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 179, 0, 280, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 221, 296, - 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, - 190, 231, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 278, 290, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 281, 0, 0, 0, 289, 0, 0, 0, 0, - 0, 0, 215, 216, 217, 218, 182, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, - 184, 0, 186, 158, 230, 180, 287, 193, 0, 432, - 427, 428, 194, 200, 242, 286, 228, 247, 156, 277, - 255, 429, 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, 141, 0, - 198, 0, 239, 177, 105, 106, 107, 108, 109, 110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 227, 0, 0, 293, 294, 295, 279, 0, 0, 0, - 0, 0, 172, 597, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 595, 0, 0, 0, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 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, 593, - 0, 0, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 0, - 0, 300, 166, 291, 0, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 301, 0, 246, 229, 0, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 221, 296, 0, - 0, 0, 0, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 281, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 0, 215, 216, 217, 218, 182, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 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, 141, 0, 198, - 0, 239, 177, 105, 106, 107, 108, 109, 110, 111, + 141, 228, 0, 0, 294, 295, 296, 280, 0, 0, + 0, 0, 0, 173, 0, 0, 198, 0, 0, 0, + 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 597, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, + 595, 0, 0, 0, 147, 262, 276, 156, 253, 289, + 161, 260, 152, 227, 249, 0, 0, 149, 274, 259, + 209, 192, 193, 148, 0, 244, 171, 184, 168, 225, + 0, 0, 301, 167, 292, 0, 284, 151, 0, 283, + 224, 271, 275, 210, 204, 150, 273, 208, 203, 196, + 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 261, 0, 0, 197, + 0, 0, 0, 302, 0, 247, 230, 0, 0, 0, + 245, 200, 272, 238, 277, 263, 285, 241, 239, 143, + 264, 170, 211, 153, 154, 166, 172, 174, 176, 177, + 220, 221, 233, 252, 265, 266, 267, 169, 162, 246, + 163, 186, 164, 144, 254, 165, 145, 234, 270, 0, + 182, 242, 207, 146, 206, 235, 269, 268, 293, 299, + 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 180, 0, 281, 0, + 226, 0, 0, 0, 0, 0, 0, 0, 222, 297, + 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, + 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 282, 0, 0, 0, 290, 0, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, + 185, 0, 187, 159, 231, 181, 288, 194, 0, 223, + 190, 255, 195, 201, 243, 287, 229, 248, 157, 278, + 256, 205, 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, 142, 0, + 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 227, - 0, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 0, 172, 591, 0, 197, 0, 0, 0, 256, 211, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 595, 0, 0, 0, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 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, 593, 0, - 0, 0, 146, 261, 275, 155, 252, 288, 160, 259, - 151, 226, 248, 0, 0, 148, 273, 258, 208, 191, - 192, 147, 0, 243, 170, 183, 167, 224, 0, 0, - 300, 166, 291, 0, 283, 150, 0, 282, 223, 270, - 274, 209, 203, 149, 272, 207, 202, 195, 174, 187, - 235, 201, 236, 188, 213, 212, 214, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, - 0, 0, 0, 0, 260, 0, 0, 196, 0, 0, - 0, 301, 0, 246, 229, 0, 0, 0, 244, 199, - 271, 237, 276, 262, 284, 240, 238, 142, 263, 169, - 210, 152, 153, 165, 171, 173, 175, 176, 219, 220, - 232, 251, 264, 265, 266, 168, 161, 245, 162, 185, - 163, 143, 253, 164, 144, 233, 269, 0, 181, 241, - 206, 145, 205, 234, 268, 267, 292, 298, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 179, 0, 280, 0, 225, 0, - 0, 0, 0, 0, 0, 0, 221, 296, 0, 0, - 0, 0, 249, 0, 0, 0, 0, 0, 190, 231, - 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 278, 290, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, - 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, - 215, 216, 217, 218, 182, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 178, 184, 0, - 186, 158, 230, 180, 287, 193, 0, 222, 189, 254, - 194, 200, 242, 286, 228, 247, 156, 277, 255, 204, - 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, 141, 0, 198, 0, - 239, 177, 105, 106, 107, 108, 109, 110, 111, 112, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 228, 0, 0, 294, 295, 296, 280, 0, 0, 0, + 0, 0, 173, 0, 0, 198, 0, 0, 0, 257, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 0, 597, 0, 0, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 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, 1808, + 0, 0, 0, 147, 262, 276, 156, 253, 289, 161, + 260, 152, 227, 249, 0, 0, 149, 274, 259, 209, + 192, 193, 148, 0, 244, 171, 184, 168, 225, 0, + 0, 301, 167, 292, 0, 284, 151, 0, 283, 224, + 271, 275, 210, 204, 150, 273, 208, 203, 196, 175, + 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 286, 0, + 0, 0, 0, 0, 0, 261, 0, 0, 197, 0, + 0, 0, 302, 0, 247, 230, 0, 0, 0, 245, + 200, 272, 238, 277, 263, 285, 241, 239, 143, 264, + 170, 211, 153, 154, 166, 172, 174, 176, 177, 220, + 221, 233, 252, 265, 266, 267, 169, 162, 246, 163, + 186, 164, 144, 254, 165, 145, 234, 270, 0, 182, + 242, 207, 146, 206, 235, 269, 268, 293, 299, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 180, 0, 281, 0, 226, + 0, 0, 0, 0, 0, 0, 0, 222, 297, 0, + 0, 0, 0, 250, 0, 0, 0, 0, 0, 191, + 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 282, 0, 0, 0, 290, 0, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 183, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 185, + 0, 187, 159, 231, 181, 288, 194, 0, 223, 190, + 255, 195, 201, 243, 287, 229, 248, 157, 278, 256, + 205, 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, 142, 0, 199, + 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 227, 0, - 0, 293, 294, 295, 279, 0, 0, 0, 0, 0, - 172, 0, 0, 197, 0, 0, 0, 256, 211, 0, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 228, + 0, 0, 294, 295, 296, 280, 0, 0, 0, 0, + 0, 173, 1277, 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2230, 0, 102, 713, - 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 597, 0, 0, 0, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 158, 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, 146, 261, 275, 155, 252, 288, 160, 259, 151, - 226, 248, 0, 0, 148, 273, 258, 208, 191, 192, - 147, 0, 243, 170, 183, 167, 224, 0, 0, 300, - 166, 291, 0, 283, 150, 0, 282, 223, 270, 274, - 209, 203, 149, 272, 207, 202, 195, 174, 187, 235, - 201, 236, 188, 213, 212, 214, 0, 0, 0, 0, + 0, 0, 147, 262, 276, 156, 253, 289, 161, 260, + 152, 227, 249, 0, 0, 149, 274, 259, 209, 192, + 193, 148, 0, 244, 171, 184, 168, 225, 0, 0, + 301, 167, 292, 0, 284, 151, 0, 283, 224, 271, + 275, 210, 204, 150, 273, 208, 203, 196, 175, 188, + 236, 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 260, 0, 0, 196, 0, 0, 0, - 301, 0, 246, 229, 0, 0, 0, 244, 199, 271, - 237, 276, 262, 284, 240, 238, 142, 263, 169, 210, - 152, 153, 165, 171, 173, 175, 176, 219, 220, 232, - 251, 264, 265, 266, 168, 161, 245, 162, 185, 163, - 143, 253, 164, 144, 233, 269, 0, 181, 241, 206, - 145, 205, 234, 268, 267, 292, 298, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 261, 0, 0, 197, 0, 0, + 0, 302, 0, 247, 230, 0, 0, 0, 245, 200, + 272, 238, 277, 263, 285, 241, 239, 143, 264, 170, + 211, 153, 154, 166, 172, 174, 176, 177, 220, 221, + 233, 252, 265, 266, 267, 169, 162, 246, 163, 186, + 164, 144, 254, 165, 145, 234, 270, 0, 182, 242, + 207, 146, 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 179, 0, 280, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 221, 296, 0, 0, 0, - 0, 249, 0, 0, 0, 0, 0, 190, 231, 0, - 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 278, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, - 0, 0, 289, 0, 0, 0, 0, 0, 0, 215, - 216, 217, 218, 182, 0, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 184, 0, 186, - 158, 230, 180, 287, 193, 0, 222, 189, 254, 194, - 200, 242, 286, 228, 247, 156, 277, 255, 204, 0, + 0, 0, 0, 298, 180, 0, 281, 0, 226, 0, + 0, 0, 0, 0, 0, 0, 222, 297, 0, 0, + 0, 0, 250, 0, 0, 0, 0, 0, 191, 232, + 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 279, 291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, + 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 183, 0, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 179, 185, 0, + 187, 159, 231, 181, 288, 194, 0, 223, 190, 255, + 195, 201, 243, 287, 229, 248, 157, 278, 256, 205, 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, 141, 0, 198, 0, 239, - 177, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 142, 0, 199, 0, + 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 227, 0, 0, - 293, 294, 295, 279, 0, 0, 0, 0, 0, 172, - 0, 0, 197, 0, 0, 0, 256, 211, 0, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 228, 0, + 0, 294, 295, 296, 280, 0, 0, 0, 0, 0, + 173, 0, 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, - 595, 0, 0, 0, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 716, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 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, 593, 0, 0, 0, - 146, 261, 275, 155, 252, 288, 160, 259, 151, 226, - 248, 0, 0, 148, 273, 258, 208, 191, 192, 147, - 0, 243, 170, 183, 167, 224, 0, 0, 300, 166, - 291, 0, 283, 150, 0, 282, 223, 270, 274, 209, - 203, 149, 272, 207, 202, 195, 174, 187, 235, 201, - 236, 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 260, 0, 0, 196, 0, 0, 0, 301, - 0, 246, 229, 0, 0, 0, 244, 199, 271, 237, - 276, 262, 284, 240, 238, 142, 263, 169, 210, 152, - 153, 165, 171, 173, 175, 176, 219, 220, 232, 251, - 264, 265, 266, 168, 161, 245, 162, 185, 163, 143, - 253, 164, 144, 233, 269, 0, 181, 241, 206, 145, - 205, 234, 268, 267, 292, 298, 299, 0, 0, 0, + 0, 147, 262, 276, 156, 253, 289, 161, 260, 152, + 227, 249, 0, 0, 149, 274, 259, 209, 192, 193, + 148, 0, 244, 171, 184, 168, 225, 0, 0, 301, + 167, 292, 0, 284, 151, 0, 283, 224, 271, 275, + 210, 204, 150, 273, 208, 203, 196, 175, 188, 236, + 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 179, 0, 280, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 221, 296, 0, 0, 0, 0, - 249, 0, 0, 0, 0, 0, 190, 231, 0, 250, + 0, 0, 0, 0, 0, 0, 286, 0, 0, 0, + 0, 0, 0, 261, 0, 0, 197, 0, 0, 0, + 302, 0, 247, 230, 0, 0, 0, 245, 200, 272, + 238, 277, 263, 285, 241, 239, 143, 264, 170, 211, + 153, 154, 166, 172, 174, 176, 177, 220, 221, 233, + 252, 265, 266, 267, 169, 162, 246, 163, 186, 164, + 144, 254, 165, 145, 234, 270, 0, 182, 242, 207, + 146, 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 257, 278, 290, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, - 0, 289, 0, 0, 0, 0, 0, 0, 215, 216, - 217, 218, 182, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 178, 184, 0, 186, 158, - 230, 180, 287, 193, 0, 222, 189, 254, 194, 200, - 242, 286, 228, 247, 156, 277, 255, 204, 0, 0, + 0, 0, 298, 180, 0, 281, 0, 226, 0, 0, + 0, 0, 0, 0, 0, 222, 297, 0, 0, 0, + 0, 250, 0, 0, 0, 0, 0, 191, 232, 0, + 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 258, 279, 291, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, + 0, 0, 290, 0, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 183, 0, 160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 179, 185, 0, 187, + 159, 231, 181, 288, 194, 0, 223, 190, 255, 195, + 201, 243, 287, 229, 248, 157, 278, 256, 205, 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, 141, 0, 198, 0, 239, 177, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 0, 0, 0, 0, 0, 142, 0, 199, 0, 240, + 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 227, 0, 0, 293, - 294, 295, 279, 0, 0, 0, 0, 0, 172, 0, - 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 141, 228, 0, 0, + 294, 295, 296, 280, 0, 0, 0, 0, 0, 173, + 0, 0, 198, 0, 0, 0, 257, 212, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1955, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 595, - 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 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, 1804, 0, 0, 0, 146, - 261, 275, 155, 252, 288, 160, 259, 151, 226, 248, - 0, 0, 148, 273, 258, 208, 191, 192, 147, 0, - 243, 170, 183, 167, 224, 0, 0, 300, 166, 291, - 0, 283, 150, 0, 282, 223, 270, 274, 209, 203, - 149, 272, 207, 202, 195, 174, 187, 235, 201, 236, - 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, + 147, 262, 276, 156, 253, 289, 161, 260, 152, 227, + 249, 0, 0, 149, 274, 259, 209, 192, 193, 148, + 0, 244, 171, 184, 168, 225, 0, 0, 301, 167, + 292, 0, 284, 151, 0, 283, 224, 271, 275, 210, + 204, 150, 273, 208, 203, 196, 175, 188, 236, 202, + 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 260, 0, 0, 196, 0, 0, 0, 301, 0, - 246, 229, 0, 0, 0, 244, 199, 271, 237, 276, - 262, 284, 240, 238, 142, 263, 169, 210, 152, 153, - 165, 171, 173, 175, 176, 219, 220, 232, 251, 264, - 265, 266, 168, 161, 245, 162, 185, 163, 143, 253, - 164, 144, 233, 269, 0, 181, 241, 206, 145, 205, - 234, 268, 267, 292, 298, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 261, 0, 0, 197, 0, 0, 0, 302, + 0, 247, 230, 0, 0, 0, 245, 200, 272, 238, + 277, 263, 285, 241, 239, 143, 264, 170, 211, 153, + 154, 166, 172, 174, 176, 177, 220, 221, 233, 252, + 265, 266, 267, 169, 162, 246, 163, 186, 164, 144, + 254, 165, 145, 234, 270, 0, 182, 242, 207, 146, + 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 179, 0, 280, 0, 225, 0, 0, 0, 0, - 0, 0, 0, 221, 296, 0, 0, 0, 0, 249, - 0, 0, 0, 0, 0, 190, 231, 0, 250, 0, + 0, 298, 180, 0, 281, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 222, 297, 0, 0, 0, 0, + 250, 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 278, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 281, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 0, 215, 216, 217, - 218, 182, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 184, 0, 186, 158, 230, - 180, 287, 193, 0, 222, 189, 254, 194, 200, 242, - 286, 228, 247, 156, 277, 255, 204, 0, 0, 0, + 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, + 0, 290, 0, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 185, 0, 187, 159, + 231, 181, 288, 194, 0, 223, 190, 255, 195, 201, + 243, 287, 229, 248, 157, 278, 256, 205, 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, 141, 0, 198, 0, 239, 177, 105, + 0, 0, 0, 0, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 227, 0, 0, 293, 294, - 295, 279, 0, 0, 0, 0, 0, 172, 1273, 0, - 197, 0, 0, 0, 256, 211, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 0, 0, 595, 0, - 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 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, 146, 261, - 275, 155, 252, 288, 160, 259, 151, 226, 248, 0, - 0, 148, 273, 258, 208, 191, 192, 147, 0, 243, - 170, 183, 167, 224, 0, 0, 300, 166, 291, 0, - 283, 150, 0, 282, 223, 270, 274, 209, 203, 149, - 272, 207, 202, 195, 174, 187, 235, 201, 236, 188, - 213, 212, 214, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, - 260, 0, 0, 196, 0, 0, 0, 301, 0, 246, - 229, 0, 0, 0, 244, 199, 271, 237, 276, 262, - 284, 240, 238, 142, 263, 169, 210, 152, 153, 165, - 171, 173, 175, 176, 219, 220, 232, 251, 264, 265, - 266, 168, 161, 245, 162, 185, 163, 143, 253, 164, - 144, 233, 269, 0, 181, 241, 206, 145, 205, 234, - 268, 267, 292, 298, 299, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 179, 0, 280, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 221, 296, 0, 0, 0, 0, 249, 0, - 0, 0, 0, 0, 190, 231, 0, 250, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 278, 290, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 281, 0, 0, 0, 289, - 0, 0, 0, 0, 0, 0, 215, 216, 217, 218, - 182, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 178, 184, 0, 186, 158, 230, 180, - 287, 193, 0, 222, 189, 254, 194, 200, 242, 286, - 228, 247, 156, 277, 255, 204, 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, 141, 0, 198, 0, 239, 177, 105, 106, + 136, 137, 138, 139, 140, 141, 228, 0, 0, 294, + 295, 296, 280, 0, 0, 0, 0, 0, 173, 0, + 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 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, 1639, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 262, 276, 156, 253, 289, 161, 260, 152, 227, 249, + 0, 0, 149, 274, 259, 209, 192, 193, 148, 0, + 244, 171, 184, 168, 225, 0, 0, 301, 167, 292, + 0, 284, 151, 0, 283, 224, 271, 275, 210, 204, + 150, 273, 208, 203, 196, 175, 188, 236, 202, 237, + 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 197, 0, 0, 0, 302, 0, + 247, 230, 0, 0, 0, 245, 200, 272, 238, 277, + 263, 285, 241, 239, 143, 264, 170, 211, 153, 154, + 166, 172, 174, 176, 177, 220, 221, 233, 252, 265, + 266, 267, 169, 162, 246, 163, 186, 164, 144, 254, + 165, 145, 234, 270, 0, 182, 242, 207, 146, 206, + 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 180, 0, 281, 0, 226, 0, 0, 0, 0, + 0, 0, 0, 222, 297, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 185, 0, 187, 159, 231, + 181, 288, 194, 0, 223, 190, 255, 195, 201, 243, + 287, 229, 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 227, 0, 0, 293, 294, 295, - 279, 0, 0, 0, 0, 0, 172, 0, 0, 197, - 0, 0, 0, 256, 211, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 713, 0, 0, 0, 0, - 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 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, 146, 261, 275, - 155, 252, 288, 160, 259, 151, 226, 248, 0, 0, - 148, 273, 258, 208, 191, 192, 147, 0, 243, 170, - 183, 167, 224, 0, 0, 300, 166, 291, 0, 283, - 150, 0, 282, 223, 270, 274, 209, 203, 149, 272, - 207, 202, 195, 174, 187, 235, 201, 236, 188, 213, - 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 260, - 0, 0, 196, 0, 0, 0, 301, 0, 246, 229, - 0, 0, 0, 244, 199, 271, 237, 276, 262, 284, - 240, 238, 142, 263, 169, 210, 152, 153, 165, 171, - 173, 175, 176, 219, 220, 232, 251, 264, 265, 266, - 168, 161, 245, 162, 185, 163, 143, 253, 164, 144, - 233, 269, 0, 181, 241, 206, 145, 205, 234, 268, - 267, 292, 298, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 179, - 0, 280, 0, 225, 0, 0, 0, 0, 0, 0, - 0, 221, 296, 0, 0, 0, 0, 249, 0, 0, - 0, 0, 0, 190, 231, 0, 250, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 278, 290, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 281, 0, 0, 0, 289, 0, - 0, 0, 0, 0, 0, 215, 216, 217, 218, 182, - 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 178, 184, 0, 186, 158, 230, 180, 287, - 193, 0, 222, 189, 254, 194, 200, 242, 286, 228, - 247, 156, 277, 255, 204, 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, 141, 0, 198, 0, 239, 177, 105, 106, 107, + 137, 138, 139, 140, 141, 228, 0, 0, 294, 295, + 296, 280, 0, 0, 0, 0, 0, 173, 0, 0, + 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 856, 0, 0, 0, 103, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 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, 147, 262, + 276, 156, 253, 289, 161, 260, 152, 227, 249, 0, + 0, 149, 274, 259, 209, 192, 193, 148, 0, 244, + 171, 184, 168, 225, 0, 0, 301, 167, 292, 0, + 284, 151, 0, 283, 224, 271, 275, 210, 204, 150, + 273, 208, 203, 196, 175, 188, 236, 202, 237, 189, + 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 197, 0, 0, 0, 302, 0, 247, + 230, 0, 0, 0, 245, 200, 272, 238, 277, 263, + 285, 241, 239, 143, 264, 170, 211, 153, 154, 166, + 172, 174, 176, 177, 220, 221, 233, 252, 265, 266, + 267, 169, 162, 246, 163, 186, 164, 144, 254, 165, + 145, 234, 270, 0, 182, 242, 207, 146, 206, 235, + 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, + 180, 0, 281, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 222, 297, 0, 0, 0, 0, 250, 0, + 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 282, 0, 0, 0, 290, + 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 185, 0, 187, 159, 231, 181, + 288, 194, 0, 223, 190, 255, 195, 201, 243, 287, + 229, 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 227, 0, 0, 293, 294, 295, 279, - 0, 0, 0, 0, 0, 172, 0, 0, 197, 0, - 0, 0, 256, 211, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1951, - 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 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, 146, 261, 275, 155, - 252, 288, 160, 259, 151, 226, 248, 0, 0, 148, - 273, 258, 208, 191, 192, 147, 0, 243, 170, 183, - 167, 224, 0, 0, 300, 166, 291, 0, 283, 150, - 0, 282, 223, 270, 274, 209, 203, 149, 272, 207, - 202, 195, 174, 187, 235, 201, 236, 188, 213, 212, - 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 0, 0, 0, 0, 0, 0, 260, 0, - 0, 196, 0, 0, 0, 301, 0, 246, 229, 0, - 0, 0, 244, 199, 271, 237, 276, 262, 284, 240, - 238, 142, 263, 169, 210, 152, 153, 165, 171, 173, - 175, 176, 219, 220, 232, 251, 264, 265, 266, 168, - 161, 245, 162, 185, 163, 143, 253, 164, 144, 233, - 269, 0, 181, 241, 206, 145, 205, 234, 268, 267, - 292, 298, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 179, 0, - 280, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 221, 296, 0, 0, 0, 0, 249, 0, 0, 0, - 0, 0, 190, 231, 0, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 278, - 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 281, 0, 0, 0, 289, 0, 0, - 0, 0, 0, 0, 215, 216, 217, 218, 182, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 184, 0, 186, 158, 230, 180, 287, 193, - 0, 222, 189, 254, 194, 200, 242, 286, 228, 247, - 156, 277, 255, 204, 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, - 141, 0, 198, 0, 239, 177, 105, 106, 107, 108, + 138, 139, 140, 141, 228, 0, 0, 294, 295, 296, + 280, 0, 0, 0, 0, 0, 173, 0, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 597, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 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, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 0, 0, 301, 167, 292, 0, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 302, 0, 247, 230, + 0, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 0, 226, 0, 0, 0, 0, 0, 0, + 0, 222, 297, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 183, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 227, 0, 0, 293, 294, 295, 279, 0, - 0, 0, 0, 0, 172, 0, 0, 197, 0, 0, - 0, 256, 211, 0, 0, 0, 0, 0, 0, 0, + 139, 140, 141, 228, 0, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 0, 173, 0, 0, 198, 0, + 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 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, 1679, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 262, 276, 156, + 253, 289, 161, 260, 152, 227, 249, 0, 0, 149, + 274, 259, 209, 192, 193, 148, 0, 244, 171, 184, + 168, 225, 0, 0, 301, 167, 292, 0, 284, 151, + 0, 283, 224, 271, 275, 210, 204, 150, 273, 208, + 203, 196, 175, 188, 236, 202, 237, 189, 214, 213, + 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 261, 0, + 0, 197, 0, 0, 0, 302, 0, 247, 230, 0, + 0, 0, 245, 200, 272, 238, 277, 263, 285, 241, + 239, 143, 264, 170, 211, 153, 154, 166, 172, 174, + 176, 177, 220, 221, 233, 252, 265, 266, 267, 169, + 162, 246, 163, 186, 164, 144, 254, 165, 145, 234, + 270, 0, 182, 242, 207, 146, 206, 235, 269, 268, + 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 180, 0, + 281, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 222, 297, 0, 0, 0, 0, 250, 0, 0, 0, + 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 279, + 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 282, 0, 0, 0, 290, 0, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 183, 0, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 185, 0, 187, 159, 231, 181, 288, 194, + 0, 223, 190, 255, 195, 201, 243, 287, 229, 248, + 157, 278, 256, 205, 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, + 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 228, 0, 0, 294, 295, 296, 280, 0, + 0, 0, 0, 0, 173, 0, 0, 198, 0, 0, + 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 0, 0, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, 1635, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 146, 261, 275, 155, 252, - 288, 160, 259, 151, 226, 248, 0, 0, 148, 273, - 258, 208, 191, 192, 147, 0, 243, 170, 183, 167, - 224, 0, 0, 300, 166, 291, 0, 283, 150, 0, - 282, 223, 270, 274, 209, 203, 149, 272, 207, 202, - 195, 174, 187, 235, 201, 236, 188, 213, 212, 214, + 0, 0, 1292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 262, 276, 156, 253, + 289, 161, 260, 152, 227, 249, 0, 0, 149, 274, + 259, 209, 192, 193, 148, 0, 244, 171, 184, 168, + 225, 0, 0, 301, 167, 292, 0, 284, 151, 0, + 283, 224, 271, 275, 210, 204, 150, 273, 208, 203, + 196, 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 196, 0, 0, 0, 301, 0, 246, 229, 0, 0, - 0, 244, 199, 271, 237, 276, 262, 284, 240, 238, - 142, 263, 169, 210, 152, 153, 165, 171, 173, 175, - 176, 219, 220, 232, 251, 264, 265, 266, 168, 161, - 245, 162, 185, 163, 143, 253, 164, 144, 233, 269, - 0, 181, 241, 206, 145, 205, 234, 268, 267, 292, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 179, 0, 280, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 221, - 296, 0, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 190, 231, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 278, 290, + 286, 0, 0, 0, 0, 0, 0, 261, 0, 0, + 197, 0, 0, 0, 302, 0, 247, 230, 0, 0, + 0, 245, 200, 272, 238, 277, 263, 285, 241, 239, + 143, 264, 170, 211, 153, 154, 166, 172, 174, 176, + 177, 220, 221, 233, 252, 265, 266, 267, 169, 162, + 246, 163, 186, 164, 144, 254, 165, 145, 234, 270, + 0, 182, 242, 207, 146, 206, 235, 269, 268, 293, + 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 180, 0, 281, + 0, 226, 0, 0, 0, 0, 0, 0, 0, 222, + 297, 0, 0, 0, 0, 250, 0, 0, 0, 0, + 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 281, 0, 0, 0, 289, 0, 0, 0, - 0, 0, 0, 215, 216, 217, 218, 182, 0, 159, + 0, 0, 282, 0, 0, 0, 290, 0, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 184, 0, 186, 158, 230, 180, 287, 193, 0, - 222, 189, 254, 194, 200, 242, 286, 228, 247, 156, - 277, 255, 204, 0, 0, 0, 0, 0, 0, 0, + 179, 185, 0, 187, 159, 231, 181, 288, 194, 0, + 223, 190, 255, 195, 201, 243, 287, 229, 248, 157, + 278, 256, 205, 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, 141, - 0, 198, 0, 239, 177, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 227, 0, 0, 293, 294, 295, 279, 0, 0, - 0, 0, 0, 172, 0, 0, 197, 0, 0, 0, - 256, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 853, 0, 0, - 0, 102, 0, 0, 0, 0, 0, 0, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 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, 146, 261, 275, 155, 252, 288, - 160, 259, 151, 226, 248, 0, 0, 148, 273, 258, - 208, 191, 192, 147, 0, 243, 170, 183, 167, 224, - 0, 0, 300, 166, 291, 0, 283, 150, 0, 282, - 223, 270, 274, 209, 203, 149, 272, 207, 202, 195, - 174, 187, 235, 201, 236, 188, 213, 212, 214, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 0, 0, 0, 0, 0, 260, 0, 0, 196, - 0, 0, 0, 301, 0, 246, 229, 0, 0, 0, - 244, 199, 271, 237, 276, 262, 284, 240, 238, 142, - 263, 169, 210, 152, 153, 165, 171, 173, 175, 176, - 219, 220, 232, 251, 264, 265, 266, 168, 161, 245, - 162, 185, 163, 143, 253, 164, 144, 233, 269, 0, - 181, 241, 206, 145, 205, 234, 268, 267, 292, 298, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 179, 0, 280, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 221, 296, - 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, - 190, 231, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 278, 290, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 281, 0, 0, 0, 289, 0, 0, 0, 0, - 0, 0, 215, 216, 217, 218, 182, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, - 184, 0, 186, 158, 230, 180, 287, 193, 0, 222, - 189, 254, 194, 200, 242, 286, 228, 247, 156, 277, - 255, 204, 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, 141, 0, - 198, 0, 239, 177, 105, 106, 107, 108, 109, 110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 227, 0, 0, 293, 294, 295, 279, 0, 0, 0, - 0, 0, 172, 0, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 228, 0, 0, 294, 295, 296, 280, 0, 0, + 0, 0, 0, 173, 0, 0, 198, 0, 0, 0, + 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 1290, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, 147, 262, 276, 156, 253, 289, + 161, 260, 152, 227, 249, 0, 0, 149, 274, 259, + 209, 192, 193, 148, 0, 244, 171, 184, 168, 225, + 0, 0, 301, 167, 292, 0, 284, 151, 0, 283, + 224, 271, 275, 210, 204, 150, 273, 208, 203, 196, + 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 261, 0, 0, 197, + 0, 0, 0, 302, 0, 247, 230, 0, 0, 0, + 245, 200, 272, 238, 277, 263, 285, 241, 239, 143, + 264, 170, 211, 153, 154, 166, 172, 174, 176, 177, + 220, 221, 233, 252, 265, 266, 267, 169, 162, 246, + 163, 186, 164, 144, 254, 165, 145, 234, 270, 0, + 182, 242, 207, 146, 206, 235, 269, 268, 293, 299, + 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 180, 0, 281, 0, + 226, 0, 0, 0, 0, 0, 0, 0, 222, 297, + 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, + 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 282, 0, 0, 0, 290, 0, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, + 185, 0, 187, 159, 231, 181, 288, 194, 0, 223, + 190, 255, 195, 201, 243, 287, 229, 248, 157, 278, + 256, 205, 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, 142, 0, + 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 1218, 0, 0, 294, 295, 296, 280, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 595, 0, 0, 0, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 158, 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, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 0, - 0, 300, 166, 291, 0, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, + 147, 262, 276, 156, 253, 289, 161, 260, 152, 227, + 249, 0, 0, 149, 274, 259, 209, 192, 193, 148, + 0, 244, 171, 184, 168, 225, 0, 0, 301, 167, + 292, 0, 284, 151, 0, 283, 224, 271, 275, 210, + 204, 150, 273, 208, 203, 196, 175, 188, 236, 202, + 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 301, 0, 246, 229, 0, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 261, 0, 0, 197, 0, 0, 0, 302, + 0, 247, 230, 0, 0, 0, 245, 200, 272, 238, + 277, 263, 285, 241, 239, 143, 264, 170, 211, 153, + 154, 166, 172, 174, 176, 177, 220, 221, 233, 252, + 265, 266, 267, 169, 162, 246, 163, 186, 164, 144, + 254, 165, 145, 234, 270, 0, 182, 242, 207, 146, + 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 221, 296, 0, - 0, 0, 0, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, + 0, 298, 180, 0, 281, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 222, 297, 0, 0, 0, 0, + 250, 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 281, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 0, 215, 216, 217, 218, 182, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, + 0, 290, 0, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 185, 0, 187, 159, + 231, 181, 288, 194, 0, 223, 190, 255, 195, 201, + 243, 287, 229, 248, 157, 278, 256, 205, 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, 141, 0, 198, - 0, 239, 177, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 227, - 0, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 0, 172, 0, 0, 197, 0, 0, 0, 256, 211, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 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, 1675, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 261, 275, 155, 252, 288, 160, 259, - 151, 226, 248, 0, 0, 148, 273, 258, 208, 191, - 192, 147, 0, 243, 170, 183, 167, 224, 0, 0, - 300, 166, 291, 0, 283, 150, 0, 282, 223, 270, - 274, 209, 203, 149, 272, 207, 202, 195, 174, 187, - 235, 201, 236, 188, 213, 212, 214, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, - 0, 0, 0, 0, 260, 0, 0, 196, 0, 0, - 0, 301, 0, 246, 229, 0, 0, 0, 244, 199, - 271, 237, 276, 262, 284, 240, 238, 142, 263, 169, - 210, 152, 153, 165, 171, 173, 175, 176, 219, 220, - 232, 251, 264, 265, 266, 168, 161, 245, 162, 185, - 163, 143, 253, 164, 144, 233, 269, 0, 181, 241, - 206, 145, 205, 234, 268, 267, 292, 298, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 179, 0, 280, 0, 225, 0, - 0, 0, 0, 0, 0, 0, 221, 296, 0, 0, - 0, 0, 249, 0, 0, 0, 0, 0, 190, 231, - 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 278, 290, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, - 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, - 215, 216, 217, 218, 182, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 178, 184, 0, - 186, 158, 230, 180, 287, 193, 0, 222, 189, 254, - 194, 200, 242, 286, 228, 247, 156, 277, 255, 204, - 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, 141, 0, 198, 0, - 239, 177, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 227, 0, - 0, 293, 294, 295, 279, 0, 0, 0, 0, 0, - 172, 0, 0, 197, 0, 0, 0, 256, 211, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 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, 1288, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 146, 261, 275, 155, 252, 288, 160, 259, 151, - 226, 248, 0, 0, 148, 273, 258, 208, 191, 192, - 147, 0, 243, 170, 183, 167, 224, 0, 0, 300, - 166, 291, 0, 283, 150, 0, 282, 223, 270, 274, - 209, 203, 149, 272, 207, 202, 195, 174, 187, 235, - 201, 236, 188, 213, 212, 214, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 260, 0, 0, 196, 0, 0, 0, - 301, 0, 246, 229, 0, 0, 0, 244, 199, 271, - 237, 276, 262, 284, 240, 238, 142, 263, 169, 210, - 152, 153, 165, 171, 173, 175, 176, 219, 220, 232, - 251, 264, 265, 266, 168, 161, 245, 162, 185, 163, - 143, 253, 164, 144, 233, 269, 0, 181, 241, 206, - 145, 205, 234, 268, 267, 292, 298, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 179, 0, 280, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 221, 296, 0, 0, 0, - 0, 249, 0, 0, 0, 0, 0, 190, 231, 0, - 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 278, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, - 0, 0, 289, 0, 0, 0, 0, 0, 0, 215, - 216, 217, 218, 182, 0, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 184, 0, 186, - 158, 230, 180, 287, 193, 0, 222, 189, 254, 194, - 200, 242, 286, 228, 247, 156, 277, 255, 204, 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, 141, 0, 198, 0, 239, - 177, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 227, 0, 0, - 293, 294, 295, 279, 0, 0, 0, 0, 0, 172, - 0, 0, 197, 0, 0, 0, 256, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, - 1286, 0, 0, 0, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 142, 0, 199, 0, 240, 178, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 228, 0, 0, 294, + 295, 296, 280, 0, 0, 0, 0, 0, 173, 0, + 0, 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 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, - 146, 261, 275, 155, 252, 288, 160, 259, 151, 226, - 248, 0, 0, 148, 273, 258, 208, 191, 192, 147, - 0, 243, 170, 183, 167, 224, 0, 0, 300, 166, - 291, 0, 283, 150, 0, 282, 223, 270, 274, 209, - 203, 149, 272, 207, 202, 195, 174, 187, 235, 201, - 236, 188, 213, 212, 214, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 262, 276, 156, 253, 289, 161, 260, 152, 227, 249, + 0, 0, 149, 274, 259, 209, 192, 193, 148, 0, + 244, 171, 184, 168, 225, 0, 0, 301, 167, 292, + 0, 284, 151, 0, 283, 224, 271, 275, 210, 204, + 150, 273, 208, 203, 196, 175, 188, 236, 202, 237, + 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 260, 0, 0, 196, 0, 0, 0, 301, - 0, 246, 229, 0, 0, 0, 244, 199, 271, 237, - 276, 262, 284, 240, 238, 142, 263, 169, 210, 152, - 153, 165, 171, 173, 175, 176, 219, 220, 232, 251, - 264, 265, 266, 168, 161, 245, 162, 185, 163, 143, - 253, 164, 144, 233, 269, 0, 181, 241, 206, 145, - 205, 234, 268, 267, 292, 298, 299, 0, 0, 0, + 0, 0, 0, 0, 286, 0, 0, 1204, 0, 0, + 0, 261, 0, 0, 197, 0, 0, 0, 302, 0, + 247, 230, 0, 0, 0, 245, 200, 272, 238, 277, + 263, 285, 241, 239, 143, 264, 170, 211, 153, 154, + 166, 172, 174, 176, 177, 220, 221, 233, 252, 265, + 266, 267, 169, 162, 246, 163, 186, 164, 144, 254, + 165, 145, 234, 270, 0, 182, 242, 207, 146, 206, + 235, 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 179, 0, 280, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 221, 296, 0, 0, 0, 0, - 249, 0, 0, 0, 0, 0, 190, 231, 0, 250, + 298, 180, 0, 281, 0, 226, 0, 0, 0, 0, + 0, 0, 0, 222, 297, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 257, 278, 290, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, - 0, 289, 0, 0, 0, 0, 0, 0, 215, 216, - 217, 218, 182, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 178, 184, 0, 186, 158, - 230, 180, 287, 193, 0, 222, 189, 254, 194, 200, - 242, 286, 228, 247, 156, 277, 255, 204, 0, 0, + 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 185, 0, 187, 159, 231, + 181, 288, 194, 0, 223, 190, 255, 195, 201, 243, + 287, 229, 248, 157, 278, 256, 205, 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, 141, 0, 198, 0, 239, 177, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 1214, 0, 0, 293, - 294, 295, 279, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 0, 0, 197, 0, - 0, 0, 256, 211, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 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, 146, 261, 275, 155, - 252, 288, 160, 259, 151, 226, 248, 0, 0, 148, - 273, 258, 208, 191, 192, 147, 0, 243, 170, 183, - 167, 224, 0, 0, 300, 166, 291, 0, 283, 150, - 0, 282, 223, 270, 274, 209, 203, 149, 272, 207, - 202, 195, 174, 187, 235, 201, 236, 188, 213, 212, - 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 0, 0, 0, 0, 0, 0, 260, 0, - 0, 196, 0, 0, 0, 301, 0, 246, 229, 0, - 0, 0, 244, 199, 271, 237, 276, 262, 284, 240, - 238, 142, 263, 169, 210, 152, 153, 165, 171, 173, - 175, 176, 219, 220, 232, 251, 264, 265, 266, 168, - 161, 245, 162, 185, 163, 143, 253, 164, 144, 233, - 269, 0, 181, 241, 206, 145, 205, 234, 268, 267, - 292, 298, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 179, 0, - 280, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 221, 296, 0, 0, 0, 0, 249, 0, 0, 0, - 0, 0, 190, 231, 0, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 278, - 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 281, 0, 0, 0, 289, 0, 0, - 0, 0, 0, 0, 215, 216, 217, 218, 182, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 184, 0, 186, 158, 230, 180, 287, 193, - 0, 222, 189, 254, 194, 200, 242, 286, 228, 247, - 156, 277, 255, 204, 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, - 141, 0, 198, 0, 239, 177, 105, 106, 107, 108, + 0, 0, 0, 142, 0, 199, 0, 240, 178, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 228, 0, 0, 294, 295, + 296, 280, 0, 0, 0, 0, 0, 173, 0, 0, + 198, 0, 0, 0, 257, 212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 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, 147, 262, + 276, 156, 253, 289, 161, 260, 152, 227, 249, 0, + 0, 149, 274, 259, 209, 192, 193, 148, 0, 244, + 171, 184, 168, 225, 0, 0, 301, 167, 292, 0, + 284, 151, 0, 283, 224, 271, 275, 210, 204, 150, + 273, 208, 203, 196, 175, 188, 236, 202, 237, 189, + 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 197, 0, 0, 0, 302, 0, 247, + 230, 0, 0, 0, 245, 200, 272, 238, 277, 263, + 285, 241, 239, 143, 264, 170, 211, 153, 154, 166, + 172, 174, 176, 177, 220, 221, 233, 252, 265, 266, + 267, 169, 162, 246, 163, 186, 164, 144, 254, 165, + 145, 234, 270, 0, 182, 242, 207, 146, 206, 235, + 269, 268, 293, 299, 300, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, + 180, 0, 281, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 222, 297, 0, 0, 0, 0, 250, 0, + 0, 0, 0, 0, 191, 232, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 282, 0, 0, 0, 290, + 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 185, 0, 187, 159, 231, 181, + 288, 194, 0, 223, 190, 255, 195, 201, 243, 287, + 229, 248, 157, 278, 256, 205, 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, 388, + 0, 0, 142, 0, 199, 0, 240, 178, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 228, 0, 0, 294, 295, 296, + 280, 0, 0, 0, 0, 0, 173, 0, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 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, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 0, 0, 301, 167, 292, 0, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 302, 0, 247, 230, + 0, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 326, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 0, 226, 0, 0, 0, 0, 0, 0, + 0, 222, 297, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 327, 282, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 183, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 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, 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 227, 0, 0, 293, 294, 295, 279, 0, - 0, 0, 0, 0, 172, 0, 0, 197, 0, 0, - 0, 256, 211, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 0, 0, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 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, 146, 261, 275, 155, 252, - 288, 160, 259, 151, 226, 248, 0, 0, 148, 273, - 258, 208, 191, 192, 147, 0, 243, 170, 183, 167, - 224, 0, 0, 300, 166, 291, 0, 283, 150, 0, - 282, 223, 270, 274, 209, 203, 149, 272, 207, 202, - 195, 174, 187, 235, 201, 236, 188, 213, 212, 214, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 1200, 0, 0, 0, 260, 0, 0, - 196, 0, 0, 0, 301, 0, 246, 229, 0, 0, - 0, 244, 199, 271, 237, 276, 262, 284, 240, 238, - 142, 263, 169, 210, 152, 153, 165, 171, 173, 175, - 176, 219, 220, 232, 251, 264, 265, 266, 168, 161, - 245, 162, 185, 163, 143, 253, 164, 144, 233, 269, - 0, 181, 241, 206, 145, 205, 234, 268, 267, 292, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 179, 0, 280, - 0, 225, 0, 0, 0, 0, 0, 0, 0, 221, - 296, 0, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 190, 231, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 278, 290, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 281, 0, 0, 0, 289, 0, 0, 0, - 0, 0, 0, 215, 216, 217, 218, 182, 0, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 184, 0, 186, 158, 230, 180, 287, 193, 0, - 222, 189, 254, 194, 200, 242, 286, 228, 247, 156, - 277, 255, 204, 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, 141, - 0, 198, 0, 239, 177, 105, 106, 107, 108, 109, + 139, 140, 141, 228, 0, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 100, 173, 0, 0, 198, 0, + 0, 0, 257, 212, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 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, 147, 262, 276, 156, + 253, 289, 161, 260, 152, 227, 249, 0, 0, 149, + 274, 259, 209, 192, 193, 148, 0, 244, 171, 184, + 168, 225, 0, 0, 301, 167, 292, 0, 284, 151, + 0, 283, 224, 271, 275, 210, 204, 150, 273, 208, + 203, 196, 175, 188, 236, 202, 237, 189, 214, 213, + 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 261, 0, + 0, 197, 0, 0, 0, 302, 0, 247, 230, 0, + 0, 0, 245, 200, 272, 238, 277, 263, 285, 241, + 239, 143, 264, 170, 211, 153, 154, 166, 172, 174, + 176, 177, 220, 221, 233, 252, 265, 266, 267, 169, + 162, 246, 163, 186, 164, 144, 254, 165, 145, 234, + 270, 0, 182, 242, 207, 146, 206, 235, 269, 268, + 293, 299, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 180, 0, + 281, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 222, 297, 0, 0, 0, 0, 250, 0, 0, 0, + 0, 0, 191, 232, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 279, + 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 282, 0, 0, 0, 290, 0, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 183, 0, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 185, 0, 187, 159, 231, 181, 288, 194, + 0, 223, 190, 255, 195, 201, 243, 287, 229, 248, + 157, 278, 256, 205, 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, + 142, 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 227, 0, 0, 293, 294, 295, 279, 0, 0, - 0, 0, 0, 172, 0, 0, 197, 0, 0, 0, - 256, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 0, 0, 0, 0, 0, 0, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 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, 146, 261, 275, 155, 252, 288, - 160, 259, 151, 226, 248, 0, 0, 148, 273, 258, - 208, 191, 192, 147, 0, 243, 170, 183, 167, 224, - 0, 0, 300, 166, 291, 0, 283, 150, 0, 282, - 223, 270, 274, 209, 203, 149, 272, 207, 202, 195, - 174, 187, 235, 201, 236, 188, 213, 212, 214, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 0, 0, 0, 0, 0, 260, 0, 0, 196, - 0, 0, 0, 301, 0, 246, 229, 0, 0, 0, - 244, 199, 271, 237, 276, 262, 284, 240, 238, 142, - 263, 169, 210, 152, 153, 165, 171, 173, 175, 176, - 219, 220, 232, 251, 264, 265, 266, 168, 161, 245, - 162, 185, 163, 143, 253, 164, 144, 233, 269, 0, - 181, 241, 206, 145, 205, 234, 268, 267, 292, 298, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 179, 0, 280, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 221, 296, - 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, - 190, 231, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 278, 290, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 281, 0, 0, 0, 289, 0, 0, 0, 0, - 0, 0, 215, 216, 217, 218, 182, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, - 184, 0, 186, 158, 230, 180, 287, 193, 0, 222, - 189, 254, 194, 200, 242, 286, 228, 247, 156, 277, - 255, 204, 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, 387, 0, 0, 141, 0, - 198, 0, 239, 177, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 227, 0, 0, 293, 294, 295, 279, 0, 0, 0, - 0, 0, 172, 0, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 0, 0, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 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, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 0, - 0, 300, 166, 291, 0, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 301, 0, 246, 229, 0, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 325, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 221, 296, 0, - 0, 0, 0, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, - 281, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 0, 215, 216, 217, 218, 182, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 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, 141, 0, 198, - 0, 239, 177, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 227, - 0, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 99, 172, 0, 0, 197, 0, 0, 0, 256, 211, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 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, 146, 261, 275, 155, 252, 288, 160, 259, - 151, 226, 248, 0, 0, 148, 273, 258, 208, 191, - 192, 147, 0, 243, 170, 183, 167, 224, 0, 0, - 300, 166, 291, 0, 283, 150, 0, 282, 223, 270, - 274, 209, 203, 149, 272, 207, 202, 195, 174, 187, - 235, 201, 236, 188, 213, 212, 214, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, - 0, 0, 0, 0, 260, 0, 0, 196, 0, 0, - 0, 301, 0, 246, 229, 0, 0, 0, 244, 199, - 271, 237, 276, 262, 284, 240, 238, 142, 263, 169, - 210, 152, 153, 165, 171, 173, 175, 176, 219, 220, - 232, 251, 264, 265, 266, 168, 161, 245, 162, 185, - 163, 143, 253, 164, 144, 233, 269, 0, 181, 241, - 206, 145, 205, 234, 268, 267, 292, 298, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 179, 0, 280, 0, 225, 0, - 0, 0, 0, 0, 0, 0, 221, 296, 0, 0, - 0, 0, 249, 0, 0, 0, 0, 0, 190, 231, - 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 278, 290, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, - 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, - 215, 216, 217, 218, 182, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 178, 184, 0, - 186, 158, 230, 180, 287, 193, 0, 222, 189, 254, - 194, 200, 242, 286, 228, 247, 156, 277, 255, 204, + 140, 141, 228, 0, 0, 294, 295, 296, 280, 0, + 0, 0, 0, 0, 173, 0, 0, 198, 0, 0, + 0, 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, 141, 0, 198, 0, - 239, 177, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 227, 0, - 0, 293, 294, 295, 279, 0, 0, 0, 0, 0, - 172, 0, 0, 197, 0, 0, 0, 256, 211, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 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, 147, 262, 276, 156, 253, + 289, 161, 260, 152, 227, 249, 0, 0, 149, 274, + 259, 209, 192, 193, 148, 0, 244, 171, 184, 168, + 225, 0, 0, 301, 167, 292, 0, 284, 151, 0, + 283, 224, 271, 275, 210, 204, 150, 273, 208, 203, + 196, 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 146, 261, 275, 155, 252, 288, 160, 259, 151, - 226, 248, 0, 0, 148, 273, 258, 208, 191, 192, - 147, 0, 243, 170, 183, 167, 224, 0, 0, 300, - 166, 291, 0, 283, 150, 0, 282, 223, 270, 274, - 209, 203, 149, 272, 207, 202, 195, 174, 187, 235, - 201, 236, 188, 213, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 260, 0, 0, 196, 0, 0, 0, - 301, 0, 246, 229, 0, 0, 0, 244, 199, 271, - 237, 276, 262, 284, 240, 238, 142, 263, 169, 210, - 152, 153, 165, 171, 173, 175, 176, 219, 220, 232, - 251, 264, 265, 266, 168, 161, 245, 162, 185, 163, - 143, 253, 164, 144, 233, 269, 0, 181, 241, 206, - 145, 205, 234, 268, 267, 292, 298, 299, 0, 0, + 286, 0, 0, 0, 0, 0, 0, 261, 0, 0, + 197, 0, 0, 0, 302, 0, 247, 230, 0, 0, + 0, 245, 200, 272, 238, 277, 263, 285, 241, 239, + 143, 264, 170, 211, 153, 154, 166, 172, 174, 176, + 177, 220, 221, 233, 252, 265, 266, 267, 169, 162, + 246, 163, 186, 164, 144, 254, 165, 145, 234, 270, + 0, 182, 242, 207, 146, 206, 235, 269, 268, 293, + 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 180, 0, 281, + 0, 226, 0, 0, 0, 0, 0, 0, 0, 222, + 297, 0, 0, 0, 0, 250, 0, 0, 0, 0, + 0, 191, 232, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 179, 0, 280, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 221, 296, 0, 0, 0, - 0, 249, 0, 0, 0, 0, 0, 190, 231, 0, - 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 278, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, - 0, 0, 289, 0, 0, 0, 0, 0, 0, 215, - 216, 217, 218, 182, 0, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 184, 0, 186, - 158, 230, 180, 287, 193, 0, 222, 189, 254, 194, - 200, 242, 286, 228, 247, 156, 277, 255, 204, 0, + 0, 0, 282, 0, 0, 0, 290, 0, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 179, 185, 0, 187, 159, 231, 181, 288, 194, 0, + 223, 190, 255, 195, 201, 243, 287, 229, 248, 157, + 278, 256, 205, 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, 141, 0, 198, 0, 239, - 177, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 227, 0, 0, - 293, 294, 295, 279, 1255, 0, 0, 0, 0, 172, - 0, 0, 197, 0, 0, 0, 256, 211, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 816, 817, 818, - 1257, 0, 0, 0, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 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, - 146, 261, 275, 155, 252, 288, 160, 259, 151, 226, - 248, 0, 0, 148, 273, 258, 208, 191, 192, 147, - 0, 243, 170, 183, 167, 224, 0, 0, 300, 166, - 291, 0, 283, 150, 0, 282, 223, 270, 274, 209, - 203, 149, 272, 207, 202, 195, 174, 187, 235, 201, - 236, 188, 213, 212, 214, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 260, 0, 0, 196, 0, 0, 0, 301, - 0, 246, 229, 0, 0, 0, 244, 199, 271, 237, - 276, 262, 284, 240, 238, 142, 263, 169, 210, 152, - 153, 165, 171, 173, 175, 176, 219, 220, 232, 251, - 264, 265, 266, 168, 161, 245, 162, 185, 163, 143, - 253, 164, 144, 233, 269, 0, 181, 241, 206, 145, - 205, 234, 268, 267, 292, 298, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 179, 0, 280, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 221, 296, 0, 0, 0, 0, - 249, 0, 0, 0, 0, 0, 190, 231, 0, 250, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 257, 278, 290, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 281, 0, 0, - 0, 289, 0, 0, 0, 0, 0, 0, 215, 216, - 217, 218, 182, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 178, 184, 0, 186, 158, - 230, 180, 287, 193, 0, 222, 189, 254, 194, 200, - 242, 286, 228, 247, 156, 277, 255, 204, 0, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 0, 0, 197, 0, 0, 0, 256, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 141, 0, 198, 0, 239, 177, - 816, 817, 818, 1257, 0, 0, 0, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, - 294, 295, 279, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 146, 261, 275, 155, 252, 288, 160, - 259, 151, 226, 248, 0, 0, 148, 273, 258, 208, - 191, 192, 147, 0, 243, 170, 183, 167, 224, 0, - 0, 300, 166, 291, 0, 283, 150, 0, 282, 223, - 270, 274, 209, 203, 149, 272, 207, 202, 195, 174, - 187, 235, 201, 236, 188, 213, 212, 214, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 260, 0, 0, 196, 0, - 0, 0, 301, 0, 246, 229, 0, 0, 0, 244, - 199, 271, 237, 276, 262, 284, 240, 238, 142, 263, - 169, 210, 152, 153, 165, 171, 173, 175, 176, 219, - 220, 232, 251, 264, 265, 266, 168, 161, 245, 162, - 185, 163, 143, 253, 164, 144, 233, 269, 0, 181, - 241, 206, 145, 205, 234, 268, 267, 292, 298, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 179, 0, 280, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 221, 296, 0, - 0, 0, 0, 249, 0, 0, 0, 0, 0, 190, - 231, 0, 250, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 278, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 281, 0, 0, 0, 289, 0, 0, 0, 0, 0, - 0, 215, 216, 217, 218, 182, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 184, - 0, 186, 158, 230, 180, 287, 193, 0, 222, 189, - 254, 194, 200, 242, 286, 228, 247, 156, 277, 255, - 204, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 0, 0, 197, 0, - 0, 0, 256, 211, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 198, - 0, 239, 177, 816, 817, 818, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 293, 294, 295, 279, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 261, 275, 155, - 252, 288, 160, 259, 151, 226, 248, 0, 0, 148, - 273, 258, 208, 191, 192, 147, 0, 243, 170, 183, - 167, 224, 0, 0, 300, 166, 291, 0, 283, 150, - 0, 282, 223, 270, 274, 209, 203, 149, 272, 207, - 202, 195, 174, 187, 235, 201, 236, 188, 213, 212, - 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 0, 0, 0, 0, 0, 0, 260, 0, - 0, 196, 0, 0, 0, 301, 0, 246, 229, 0, - 0, 0, 244, 199, 271, 237, 276, 262, 284, 240, - 238, 142, 263, 169, 210, 152, 153, 165, 171, 173, - 175, 176, 219, 220, 232, 251, 264, 265, 266, 168, - 161, 245, 162, 185, 163, 143, 253, 164, 144, 233, - 269, 0, 181, 241, 206, 145, 205, 234, 268, 267, - 292, 298, 299, 0, 0, 0, 898, 899, 900, 897, - 0, 0, 0, 0, 0, 0, 0, 297, 179, 0, - 280, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 221, 296, 0, 0, 0, 0, 249, 0, 0, 0, - 0, 0, 190, 231, 0, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 1704, 0, 0, 0, 257, 278, - 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 281, 0, 0, 0, 289, 0, 1336, - 0, 0, 0, 0, 215, 216, 217, 218, 182, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 184, 0, 186, 158, 230, 180, 287, 193, - 0, 222, 189, 254, 194, 200, 242, 286, 228, 247, - 156, 277, 255, 204, 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, - 1692, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 141, 0, 198, 0, 239, 177, 0, 1711, 1715, 1717, - 1719, 1721, 1722, 1724, 1913, 1728, 1725, 1726, 1727, 0, - 0, 1706, 1707, 1708, 1709, 1690, 1691, 1712, 0, 1693, - 0, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, - 1703, 1710, 0, 1213, 0, 293, 294, 295, 279, 1714, - 1716, 1718, 1720, 1723, 1332, 0, 1329, 0, 0, 0, - 1331, 1328, 1330, 1334, 1335, 0, 2315, 0, 1333, 0, - 0, 0, 1913, 0, 0, 0, 0, 1895, 0, 0, - 0, 0, 0, 1705, 0, 0, 0, 0, 0, 0, - 1913, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1213, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1213, - 0, 0, 0, 0, 0, 1983, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1895, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, - 1326, 1327, 1339, 1340, 1341, 1342, 1343, 1344, 1337, 1338, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 199, 0, 240, 178, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 228, 0, 0, 294, 295, 296, 280, 1259, 0, + 0, 0, 0, 173, 0, 0, 198, 0, 0, 0, + 257, 212, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 819, 820, 821, 1261, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 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, 147, 262, 276, 156, 253, 289, + 161, 260, 152, 227, 249, 0, 0, 149, 274, 259, + 209, 192, 193, 148, 0, 244, 171, 184, 168, 225, + 0, 0, 301, 167, 292, 0, 284, 151, 0, 283, + 224, 271, 275, 210, 204, 150, 273, 208, 203, 196, + 175, 188, 236, 202, 237, 189, 214, 213, 215, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 261, 0, 0, 197, + 0, 0, 0, 302, 0, 247, 230, 0, 0, 0, + 245, 200, 272, 238, 277, 263, 285, 241, 239, 143, + 264, 170, 211, 153, 154, 166, 172, 174, 176, 177, + 220, 221, 233, 252, 265, 266, 267, 169, 162, 246, + 163, 186, 164, 144, 254, 165, 145, 234, 270, 0, + 182, 242, 207, 146, 206, 235, 269, 268, 293, 299, + 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 180, 0, 281, 0, + 226, 0, 0, 0, 0, 0, 0, 0, 222, 297, + 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, + 191, 232, 0, 251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 279, 291, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 282, 0, 0, 0, 290, 0, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 183, 0, 160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, + 185, 0, 187, 159, 231, 181, 288, 194, 0, 223, + 190, 255, 195, 201, 243, 287, 229, 248, 157, 278, + 256, 205, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 173, 0, 0, 198, + 0, 0, 0, 257, 212, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, + 199, 0, 240, 178, 819, 820, 821, 1261, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 294, 295, 296, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 262, 276, + 156, 253, 289, 161, 260, 152, 227, 249, 0, 0, + 149, 274, 259, 209, 192, 193, 148, 0, 244, 171, + 184, 168, 225, 0, 0, 301, 167, 292, 0, 284, + 151, 0, 283, 224, 271, 275, 210, 204, 150, 273, + 208, 203, 196, 175, 188, 236, 202, 237, 189, 214, + 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 197, 0, 0, 0, 302, 0, 247, 230, + 0, 0, 0, 245, 200, 272, 238, 277, 263, 285, + 241, 239, 143, 264, 170, 211, 153, 154, 166, 172, + 174, 176, 177, 220, 221, 233, 252, 265, 266, 267, + 169, 162, 246, 163, 186, 164, 144, 254, 165, 145, + 234, 270, 0, 182, 242, 207, 146, 206, 235, 269, + 268, 293, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 180, + 0, 281, 0, 226, 0, 0, 0, 0, 0, 0, + 0, 222, 297, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 0, 191, 232, 0, 251, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 279, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 0, 0, 0, 290, 0, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 183, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 185, 0, 187, 159, 231, 181, 288, + 194, 0, 223, 190, 255, 195, 201, 243, 287, 229, + 248, 157, 278, 256, 205, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 198, 0, 0, 0, 257, 212, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 199, 0, 240, 178, 819, 820, 821, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 294, 295, 296, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 147, 262, 276, 156, 253, 289, 161, 260, 152, 227, + 249, 0, 0, 149, 274, 259, 209, 192, 193, 148, + 0, 244, 171, 184, 168, 225, 0, 0, 301, 167, + 292, 0, 284, 151, 0, 283, 224, 271, 275, 210, + 204, 150, 273, 208, 203, 196, 175, 188, 236, 202, + 237, 189, 214, 213, 215, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 261, 0, 0, 197, 0, 0, 0, 302, + 0, 247, 230, 0, 0, 0, 245, 200, 272, 238, + 277, 263, 285, 241, 239, 143, 264, 170, 211, 153, + 154, 166, 172, 174, 176, 177, 220, 221, 233, 252, + 265, 266, 267, 169, 162, 246, 163, 186, 164, 144, + 254, 165, 145, 234, 270, 0, 182, 242, 207, 146, + 206, 235, 269, 268, 293, 299, 300, 0, 0, 0, + 902, 903, 904, 901, 0, 0, 0, 0, 0, 0, + 0, 298, 180, 0, 281, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 222, 297, 0, 0, 0, 0, + 250, 0, 0, 0, 0, 0, 191, 232, 0, 251, + 0, 0, 0, 0, 0, 0, 0, 0, 1708, 0, + 0, 0, 258, 279, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, + 0, 290, 0, 1340, 0, 0, 0, 0, 216, 217, + 218, 219, 183, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 185, 0, 187, 159, + 231, 181, 288, 194, 0, 223, 190, 255, 195, 201, + 243, 287, 229, 248, 157, 278, 256, 205, 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, 1696, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 142, 0, 199, 0, 240, 178, + 0, 1715, 1719, 1721, 1723, 1725, 1726, 1728, 1917, 1732, + 1729, 1730, 1731, 0, 0, 1710, 1711, 1712, 1713, 1694, + 1695, 1716, 0, 1697, 0, 1698, 1699, 1700, 1701, 1702, + 1703, 1704, 1705, 1706, 1707, 1714, 0, 1217, 0, 294, + 295, 296, 280, 1718, 1720, 1722, 1724, 1727, 1336, 0, + 1333, 0, 0, 0, 1335, 1332, 1334, 1338, 1339, 0, + 2319, 0, 1337, 0, 0, 0, 1917, 0, 0, 0, + 0, 1899, 0, 0, 0, 0, 0, 1709, 0, 0, + 0, 0, 0, 0, 1917, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1217, 0, 0, 0, 0, 0, 1987, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1899, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1903, 345, - 0, 344, 348, 340, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 1892, 0, - 0, 0, 1894, 1896, 1898, 355, 1900, 1901, 1902, 1904, - 1905, 1906, 1908, 1909, 1910, 1911, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1899, 0, 0, 0, 0, - 0, 358, 0, 0, 359, 0, 1903, 0, 0, 0, - 0, 0, 1914, 1899, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1903, 0, 1892, 0, 0, 1713, - 1894, 1896, 1898, 0, 1900, 1901, 1902, 1904, 1905, 1906, - 1908, 1909, 1910, 1911, 1892, 0, 1912, 0, 1894, 1896, - 1898, 0, 1900, 1901, 1902, 1904, 1905, 1906, 1908, 1909, - 1910, 1911, 0, 1891, 0, 0, 0, 0, 0, 0, - 1914, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 345, 0, 344, 348, 340, 0, 1914, 0, - 1907, 0, 0, 0, 0, 0, 0, 1897, 336, 0, - 0, 0, 0, 0, 1912, 0, 0, 0, 355, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1891, 1912, 0, 0, 0, 0, 0, 0, 0, - 338, 337, 341, 0, 358, 0, 0, 359, 343, 1891, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1321, 1322, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1343, 1344, 1345, 1346, + 1347, 1348, 1341, 1342, 0, 0, 0, 0, 0, 0, + 1686, 1687, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1903, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1907, 346, 0, 345, 349, 341, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 1896, 0, 0, 0, 1898, 1900, 1902, 356, + 1904, 1905, 1906, 1908, 1909, 1910, 1912, 1913, 1914, 1915, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1903, + 0, 0, 0, 0, 0, 359, 0, 0, 360, 0, + 1907, 0, 0, 0, 0, 0, 1918, 1903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1907, 0, - 347, 0, 0, 0, 0, 1897, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 0, 1907, 0, 331, 0, - 0, 0, 0, 1897, 0, 0, 0, 0, 0, 0, + 1896, 0, 0, 1717, 1898, 1900, 1902, 0, 1904, 1905, + 1906, 1908, 1909, 1910, 1912, 1913, 1914, 1915, 1896, 0, + 1916, 0, 1898, 1900, 1902, 0, 1904, 1905, 1906, 1908, + 1909, 1910, 1912, 1913, 1914, 1915, 0, 1895, 0, 0, + 0, 0, 0, 0, 1918, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 346, 0, 345, 349, + 341, 0, 1918, 0, 1911, 0, 0, 0, 0, 0, + 0, 1901, 337, 0, 0, 0, 0, 0, 1916, 0, + 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1895, 1916, 0, 0, 0, + 0, 0, 0, 0, 339, 338, 342, 0, 359, 0, + 0, 360, 344, 1895, 0, 0, 0, 0, 0, 0, + 0, 0, 1911, 0, 348, 0, 0, 0, 0, 1901, + 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, + 1911, 0, 332, 0, 0, 0, 0, 1901, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 342, 346, - 349, 0, 350, 351, 0, 0, 352, 353, 354, 0, - 0, 356, 357, 338, 337, 341, 0, 0, 0, 0, - 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 347, 350, 0, 351, 352, 0, 0, + 353, 354, 355, 0, 0, 357, 358, 339, 338, 342, + 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 340, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 342, 346, 349, 0, 350, 351, 0, 0, 352, - 353, 354, 0, 0, 356, 357, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 347, 350, 0, 351, + 352, 0, 0, 353, 354, 355, 0, 0, 357, 358, } var yyPact = [...]int{ - 181, -1000, -303, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 18627, -1000, -1000, - 1424, -1000, 7832, 19076, 70, 19076, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 290, - -1000, 18178, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 269, - 20909, 151, -1000, 1887, -1000, -1000, -1000, -1000, 128, 314, - 17729, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1244, 15, 314, 393, 397, 450, - 450, 9179, 1887, 182, 58, -1000, 686, 181, 226, 19076, - -1000, 559, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 255, -1000, -307, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 18631, -1000, -1000, + 1429, -1000, 7836, 19080, 63, 19080, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 275, + -1000, 18182, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 242, + 20913, 152, -1000, 1885, -1000, -1000, -1000, -1000, 129, 312, + 17733, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1756, 13, 312, 378, 392, + 458, 458, 9183, 1885, 237, 61, -1000, 696, 255, 223, + 19080, -1000, 518, -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, @@ -3310,77 +3309,78 @@ 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, 1887, 1887, 19076, -71, 648, - -1000, 216, 197, 173, 479, -1000, -1000, -1000, -1000, 1876, - -1000, 19076, 1560, 19076, -1000, 893, 195, 21042, 1752, 1391, - 474, 1648, -1000, -1000, 1603, -1000, 9, -16, 101, -1000, - -1000, 192, -1000, -1000, -1000, -1000, -1000, 59, -1000, 21, - -1000, 4, -1000, -1000, -1000, -115, -1000, -1000, -1000, -1000, - -174, 1706, 1818, 1460, 1849, 1805, 1794, 1792, 1790, 14, - 262, 262, 262, 281, 262, -1000, -1000, -1000, -1000, -1000, - -1000, 350, -1000, -1000, -1000, -1000, 1399, 19076, -1000, 1457, - 613, 613, 691, 218, -1000, -1000, -107, -146, 613, 613, - -146, 16, -1000, 1789, 1775, -1000, -1000, -1000, -1000, -1000, - -1000, 269, 269, 272, -1000, -188, -1000, 382, -1000, 362, - -1000, 288, 187, 1405, 695, -1000, 614, 19076, 19076, 19076, - 614, 614, 10987, 10538, 468, -1000, 1818, 1460, -1000, 1213, - 1169, 1460, 269, 269, 269, 269, 269, 269, 19076, 5524, - 5524, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 211, - 1601, -1000, 19076, 1818, 1706, 1818, -1000, 467, 851, 1041, - -1000, -1000, 216, 1370, -1000, 609, -1000, -1000, -1000, -1000, - 19076, 188, -1000, 1002, 1599, -1000, 289, 1263, 1408, -1000, - 37, 1524, 15028, 893, 15028, 19076, -1000, -1000, -1000, -1000, - -124, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -76, -1000, -1000, -294, 1706, 5984, -1000, -1000, 5984, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 279, 262, - -1000, 1047, 670, 15028, 893, 865, 19076, 272, -1000, 19076, - 1399, 1763, 19076, 1862, 6904, 1862, 19076, -1000, -1000, 613, - 613, -1000, 691, 691, -1000, -1000, -131, 1862, 1862, -122, - 19076, 262, -1000, -1000, 1047, 15028, 14579, -1000, -145, 390, - 374, 384, -1000, -1000, 1893, -1000, -1000, 1382, 300, 10089, - 224, 15028, 3678, -1000, -1000, 614, 614, 614, 3678, 3678, - 440, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19076, 1706, - -1000, -1000, -1000, -1000, -1000, 1047, 15028, 893, 19076, 19076, - 20271, -1000, 1403, -1000, -1000, 8730, 465, 5984, 909, 1595, - -1000, -1000, 1592, 1591, 1589, 1588, 1587, 1586, 1581, -1000, - 1529, -1000, -1000, 1579, 1577, 1576, 1572, -1000, -1000, -1000, - -1000, -1000, -1000, 1566, -1000, -1000, -1000, 1555, 1529, -1000, - -1000, 1552, 1551, 1550, 1549, 1548, -1000, -1000, -1000, -1000, - -1000, -1000, 1040, 1009, 969, -1000, -1000, -1000, -1000, 3218, - 6904, 6904, 6904, 6904, -1000, -1000, 1474, 5984, 1545, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 7364, -1000, 1543, 1541, - 1539, 1537, 1530, 1529, 1528, 993, 1512, 1500, 1494, 6904, - 1490, 1489, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1885, 1885, 19080, -82, + 632, -1000, 230, 190, 213, 465, -1000, -1000, -1000, -1000, + 1922, -1000, 19080, 1607, 19080, -1000, 885, 186, 21046, 1813, + 1411, 403, 1730, -1000, -1000, 1696, -1000, 15, -14, 173, + -1000, -1000, 185, -1000, -1000, -1000, -1000, -1000, 51, -1000, + 12, -1000, 4, -1000, -1000, -1000, -119, -1000, -1000, -1000, + -1000, -185, 1790, 1847, 1519, 1894, 1863, 1840, 1832, 1823, + -2, 241, 241, 241, 264, 241, -1000, -1000, -1000, -1000, + -1000, -1000, 340, -1000, -1000, -1000, -1000, 1460, 19080, -1000, + 1515, 599, 599, 700, 184, -1000, -1000, -153, -143, 599, + 599, -143, 8, -1000, 1836, 1828, -1000, -1000, -1000, -1000, + -1000, -1000, 242, 242, 254, -1000, -180, -1000, 377, -1000, + 352, -1000, 267, 181, 1461, 683, -1000, 606, 19080, 19080, + 19080, 606, 606, 10991, 10542, 462, -1000, 1847, 1519, -1000, + 1294, 1639, 1519, 242, 242, 242, 242, 242, 242, 242, + 19080, 5528, 5528, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 220, 1686, -1000, 19080, 1847, 1790, 1847, -1000, 451, + 874, 1100, -1000, -1000, 230, 1355, -1000, 605, -1000, -1000, + -1000, -1000, 19080, 174, -1000, 1060, 1682, -1000, 265, 1395, + 1420, -1000, 10, 7920, 15032, 885, 15032, 19080, -1000, -1000, + -1000, -1000, -120, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -88, -1000, -1000, -294, 1790, 5988, -1000, + -1000, 5988, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 261, 241, -1000, 1104, 684, 15032, 885, 914, 19080, 254, + -1000, 19080, 1460, 1817, 19080, 1915, 6908, 1915, 19080, -1000, + -1000, 599, 599, -1000, 700, 700, -1000, -1000, -136, 1915, + 1915, -138, 19080, 241, -1000, -1000, 1104, 15032, 14583, -1000, + -174, 385, 355, 363, -1000, -1000, 1934, -1000, -1000, 1425, + 325, 10093, 221, 15032, 3682, -1000, -1000, 606, 606, 606, + 3682, 3682, 544, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 19080, 1790, -1000, -1000, -1000, -1000, -1000, 1104, 15032, 885, + 19080, 19080, 19080, 20275, -1000, 1412, -1000, -1000, 8734, 437, + 5988, 791, 1681, -1000, -1000, 1680, 1679, 1678, 1676, 1675, + 1674, 1672, -1000, 1610, -1000, -1000, 1671, 1667, 1665, 1649, + -1000, -1000, -1000, -1000, -1000, -1000, 1636, -1000, -1000, -1000, + 1635, 1610, -1000, -1000, 1634, 1632, 1630, 1629, 1628, -1000, + -1000, -1000, -1000, -1000, -1000, 1084, 1082, 1657, -1000, -1000, + -1000, -1000, 3222, 6908, 6908, 6908, 6908, -1000, -1000, 1549, + 5988, 1622, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 7368, + -1000, 1620, 1618, 1615, 1612, 1611, 1610, 1606, 1073, 1603, + 1601, 1596, 6908, 1595, 1593, -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, 1403, -1000, -292, -1000, 9640, 19076, 19076, -1000, - 1706, -1000, 1706, 2327, -1000, 1799, -1000, 216, 98, -1000, - -1000, -1000, -1000, -1000, -1000, 462, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1398, -1000, 19076, -1000, -1000, - 37, 15028, 638, -1000, -1000, -1000, -1000, -1000, -1000, 137, - -1000, -1000, 111, -1000, 277, -48, 1354, -1000, -1000, 991, - 988, -1000, 1078, 455, 1397, -1000, 866, 17280, 19076, -28, - -1000, 1723, 1380, -1000, 1382, 1526, -1000, -1000, -1000, 1699, - 16831, -1000, 1483, 1351, -1000, -1000, 5984, -1000, -1000, 1862, - 1862, 1862, 613, 20271, 691, 19076, 691, -1000, -1000, 691, - -1000, 453, 19076, -28, 1372, 1828, 1287, -1000, -1000, -1000, - -1000, 1760, 19525, 182, -1000, -1000, 386, 359, 377, 893, - 275, -1000, -1000, 1382, -1000, -1000, -1000, 1482, 647, -1000, - -1000, 6904, -1000, 944, -1000, 3678, 3678, 3678, -1000, -1000, - 12783, -1000, -1000, -1000, 1395, 1382, 1646, 1394, -1000, -1000, - -1000, -1000, 1862, 5524, -1000, 14579, -1000, 5984, 5984, 5984, - 5984, -1000, 16375, -1000, 15926, -1000, 309, 6444, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 5984, 1770, 1770, 1770, 5984, - 671, 5984, 5984, -1000, 727, 7956, 1770, 1770, 1770, 1770, - 1770, -1000, 2750, 1770, 1770, 1770, 1770, -1000, -1000, 6904, - 6904, 6904, 6904, 6904, 6904, 6904, 6904, 6904, 6904, 6904, - 6904, 1473, 623, 6904, 6904, 6904, 1169, 1728, 1392, -1000, - -1000, -1000, -1000, -1000, 642, 944, 5984, 20464, 5984, 5984, - 5984, -1000, 1211, 1185, -1000, -1000, 5984, -1000, 5984, 6904, - 5984, -1000, 1770, 985, 1862, 1290, -1000, 1481, -1000, 1339, - 1689, -1000, 448, 1388, -1000, 640, 1337, -1000, -1000, -1000, - -1000, 435, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1412, -1000, -292, -1000, 9644, + 19080, 19080, -1000, 1790, -1000, 1790, 2331, -1000, 1841, -1000, + 230, 84, -1000, -1000, -1000, -1000, -1000, -1000, 435, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1449, -1000, + 19080, -1000, -1000, 10, 15032, 621, -1000, -1000, -1000, -1000, + -1000, -1000, 140, -1000, -1000, 112, -1000, 258, -47, 1349, + -1000, -1000, 1068, 1056, -1000, 883, 434, 1448, -1000, 932, + 17284, 19080, -31, -1000, 1812, 1410, -1000, 1425, 1502, -1000, + -1000, -1000, 1780, 16835, -1000, 1592, 1344, -1000, -1000, 5988, + -1000, -1000, 1915, 1915, 1915, 599, 20275, 700, 19080, 700, + -1000, -1000, 700, -1000, 426, 19080, -31, 1398, 1565, 1362, + -1000, -1000, -1000, -1000, 1816, 19529, 237, -1000, -1000, 373, + 347, 357, 885, 257, -1000, -1000, 1425, -1000, -1000, -1000, + 1591, 627, -1000, -1000, 6908, -1000, 972, -1000, 3682, 3682, + 3682, -1000, -1000, 12787, -1000, -1000, -1000, 1434, 1425, 1729, + 1432, -1000, 1432, -1000, -1000, -1000, 1915, 5528, -1000, 14583, + -1000, 5988, 5988, 5988, 5988, -1000, 16379, -1000, 15930, -1000, + 293, 6448, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5988, + 1821, 1821, 1821, 5988, 662, 5988, 5988, -1000, 804, 7960, + 1821, 1821, 1821, 1821, 1821, -1000, 2754, 1821, 1821, 1821, + 1821, -1000, -1000, 6908, 6908, 6908, 6908, 6908, 6908, 6908, + 6908, 6908, 6908, 6908, 6908, 1547, 715, 6908, 6908, 6908, + 1639, 1668, 1431, -1000, -1000, -1000, -1000, -1000, 668, 972, + 5988, 20468, 5988, 5988, 5988, -1000, 1292, 1281, -1000, -1000, + 5988, -1000, 5988, 6908, 5988, -1000, 1821, 1054, 1915, 1388, + -1000, 1576, -1000, 1337, 1776, -1000, 420, 1426, -1000, 624, + 1331, -1000, -1000, -1000, -1000, 417, -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, @@ -3396,167 +3396,167 @@ 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, -1000, -1000, -1000, -1000, -72, - -1000, -1000, 19076, 1002, 1335, 638, 1276, 274, 432, 430, - -1000, 15028, 17, 15028, -1000, 15028, -1000, 169, -1000, 19076, - 3, -154, 5984, 5984, 19076, 5984, -1000, -1000, -1000, 1457, - 669, 1477, -100, 630, -1000, 186, 15028, 1633, 127, -1000, - 1699, -1000, 579, -1000, 19076, 1265, -1000, 426, 181, -1000, - 19076, 944, -1000, -1000, -1000, 1862, -1000, 613, -1000, 613, - 691, 19076, -1000, -1000, -100, 335, 184, 19076, 14579, 14579, - 14579, 14579, -1000, 1681, 1676, -1000, 1675, 1669, 1732, 19076, - 14579, 19076, -1000, -1000, -1000, 19898, -1000, -1000, -1000, -1000, - 1177, 1887, -1000, -1000, -1000, 356, 1382, 15028, 984, 224, - -1000, -1000, -1000, -1000, -1000, 19076, 19076, 1855, -1000, 1374, - 1838, -1000, 674, 674, 679, -1000, -1000, 421, -1000, -1000, - 326, -1000, -1000, -1000, -1000, -1000, 1474, -1000, -1000, -1000, - 1170, 1257, 944, 5984, -1000, -1000, 5984, 5984, 935, 5984, - 1167, 1333, 1326, -1000, 1160, 1873, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -83, -1000, -1000, 19080, 1060, 1319, 621, + 1375, 256, 414, 413, -1000, 15032, 0, 15032, -1000, 15032, + -1000, 170, -1000, 19080, -1, -158, 5988, 5988, 19080, 5988, + -1000, -1000, -1000, 1515, 674, 1575, -101, 613, -1000, 179, + 15032, 1728, 142, -1000, 1780, -1000, 560, -1000, 19080, 1352, + -1000, 411, 255, -1000, 19080, 972, -1000, -1000, -1000, 1915, + -1000, 599, -1000, 599, 700, 19080, -1000, -1000, -101, 309, + 177, 19080, 14583, 14583, 14583, 14583, -1000, 1764, 1759, -1000, + 1751, 1742, 1765, 19080, 14583, 19080, -1000, -1000, -1000, 19902, + -1000, -1000, -1000, -1000, 1260, 1885, -1000, -1000, -1000, 339, + 1425, 15032, 1049, 221, -1000, -1000, -1000, -1000, -1000, 19080, + 19080, 1912, -1000, 1422, 1773, -1000, 694, 694, 680, -1000, + -1000, 409, -1000, -1000, 271, -1000, -1000, -1000, -1000, -1000, + 1549, -1000, -1000, -1000, 1258, 1358, 972, 5988, -1000, -1000, + 5988, 5988, 982, 5988, 1250, 1311, 1299, -1000, 1248, 1921, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 5984, 5984, 5984, 5984, 5984, - 860, 5064, -1000, -1000, -1000, 5984, 5984, 5984, 5984, 1258, - 1653, -1000, 710, 710, 464, 464, 464, 464, 464, 700, - 700, -1000, -1000, -1000, 3218, 1473, 6904, 6904, 6904, 232, - 2628, 2974, -1000, 5984, 653, -1000, 5984, 748, -1000, 1158, - 931, 1148, 1146, -1000, -1000, 1059, 1140, 3051, 1138, 5984, - 1346, 1855, -292, 4598, 205, 19076, -292, 19076, 19076, 4598, - -1000, 19076, 2327, 848, -1000, -1000, -1000, 1866, 893, 592, - 627, -1000, 6, -1000, 126, 234, 983, -1000, 1703, -1000, - -1000, -97, -80, 944, 944, 418, -1000, 1756, 1718, 8281, - 856, -1000, -1000, 982, -1000, 1045, -1000, 19076, -1000, -1000, - -1000, -1000, -1000, 630, 630, 630, 226, 1250, 415, 14579, - 19076, -1000, 14130, 1129, -1000, -1000, 1862, 1862, 613, -1000, - 856, 242, 335, -1000, -1000, -1000, 303, 5, 845, 230, - 1045, 1208, -1000, 639, 1609, 1619, 1609, -1000, -1000, -1000, - -1000, 1668, -1000, 1667, -1000, -1000, 1208, -1000, 1457, -1000, - -1000, -1000, 1276, 1125, -1000, -1000, -1000, -1000, 1830, 1846, - 15477, -1000, -1000, -1000, -1000, -1000, 5984, 1673, 1662, 1658, - 987, 1304, -1000, -1000, -1000, -1000, 5984, 1647, 1626, 1600, - 1596, 1558, -1000, 5984, 5984, 889, 1509, 1496, 1491, 1461, - 1293, -1000, 232, 2628, 2824, -1000, 6904, 6904, 1342, 628, - -1000, 5984, 783, 708, 11885, -1000, 5984, -1000, -1000, -1000, - 11885, -1000, 6904, -1000, 1243, 979, 1830, -1000, 1123, 1328, - -1000, -292, -1000, -1000, 1290, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 15028, 125, -1000, -1000, -1000, -1000, - -1000, -1000, -61, -1000, 286, -296, -79, 1845, 1844, 19076, - 182, 19076, 1119, 1318, -1000, -1000, -1000, 20569, 582, -1000, - 19076, 696, 457, 262, 457, 693, 1472, -1000, -1000, -1000, - 977, -49, -1000, 335, -1000, 1471, 11885, 12334, 975, 19525, - 14579, 14130, 1122, -1000, 404, -1000, -1000, -1000, -1000, 1862, - -1000, -1000, 974, 973, -1000, 837, -1000, -1000, 871, 413, - -39, -1000, -1000, -1000, -1000, -1000, 1852, 19076, 4598, -1000, - -1000, 5984, 1468, -1000, 5984, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 5984, 5984, -1000, -1000, 944, -1000, -1000, -1000, - 1114, -1000, 357, 357, -15, -1000, -1000, -1000, 1428, -1000, - 1462, 1462, 1428, 1428, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1467, 1466, -1000, 1428, 1459, 1459, 1428, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1464, 1464, 1465, 1464, -1000, - 1215, -1000, -1000, -1000, -1000, -1000, 1205, 1200, 5984, -1000, - -1000, -1000, -1000, -1000, -1000, 6904, -1000, -1000, -1000, -1000, - 944, 5984, 1112, -1000, 1428, 1462, -1000, 1428, 1459, 1428, - 357, 357, 1106, 854, 1088, 2734, -1000, 1086, -1000, -1000, - 4598, 1290, 1276, -1000, -1000, 19076, -298, 968, -1000, 1841, - 967, 870, -1000, 1457, 20784, 8281, 1972, -1000, -1000, 19076, - 19076, -1000, 19076, 19076, 262, 5984, -1000, -1000, 168, 242, - 13681, -1000, -1000, -1000, -1000, -1000, 1862, 1122, 404, -1000, - -1000, 589, -1000, -1000, -1000, 47, -1000, -1000, 823, 261, - -1000, 1818, -1000, -1000, 944, 19076, 944, 944, 1257, -1000, - -1000, -1000, -1000, -1000, -25, -1000, -1000, -1000, -1000, 832, - -1000, 825, -1000, -1000, -1000, 966, 966, -1000, -1000, 819, - -1000, -1000, -1000, 818, -1000, -1000, 808, -1000, -1000, -1000, - -1000, 1171, -1000, 944, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 5984, -1000, -1000, -1000, -1000, -122, - -300, 806, -1000, 965, -91, -1000, -1000, 1754, 219, 20766, - -1000, 630, 630, 611, 630, 630, 630, 630, 146, 145, - 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - 630, 630, 630, 630, 1452, -1000, -1000, 1972, -1000, -1000, - 697, 6904, -1000, -1000, 956, 12334, 436, 355, 1451, -1000, - 118, 692, 687, -1000, 19076, -1000, 1448, 1463, 75, 1445, - -1000, 1431, 1429, 19076, 1127, 233, 946, -1000, 1278, -1000, - 1428, 5984, 1852, -1000, -1000, -1000, 44, -1000, -1000, -1000, - 1274, -1000, -1000, 1072, 1060, 1270, -1000, 1261, 1057, 1245, - 1234, -1000, 1120, -99, -84, -1000, 1426, -1000, -1000, 1840, - 182, -1000, 1837, 20784, -1000, 799, 781, 630, 630, 780, - 916, 915, 914, 630, 630, 778, 911, 19898, 776, 765, - 749, 812, 910, 429, 809, 768, 758, 19076, 1423, 901, - -1000, -1000, 2628, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 736, 1420, -1000, -1000, 1419, 13681, - 180, 180, 13681, 13681, 13681, 1418, 310, -1000, -62, -1000, - -1000, 13681, 1741, 1039, 1818, -1000, -1000, -1000, -1000, -1000, - 905, -1000, -1000, -1000, 732, -1000, 731, -1000, 271, -106, - -84, -1000, 1835, -92, 1834, 1829, 19076, 870, -1000, 104, - -1000, -1000, -1000, 11885, 11885, -1000, -1000, -1000, -1000, 903, - 902, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5988, + 5988, 5988, 5988, 5988, 1014, 5068, -1000, -1000, -1000, 5988, + 5988, 5988, 5988, 679, 1513, -1000, 754, 754, 550, 550, + 550, 550, 550, 717, 717, -1000, -1000, -1000, 3222, 1547, + 6908, 6908, 6908, 225, 2099, 1810, -1000, 5988, 639, -1000, + 5988, 870, -1000, 1240, 1023, 1229, 1219, -1000, -1000, 1119, + 1208, 1218, 1202, 5988, 1421, 1912, -292, 4602, 217, 19080, + -292, 19080, 19080, 4602, -1000, 19080, 2331, 873, -1000, -1000, + -1000, 1920, 885, 587, 616, -1000, 9, -1000, 135, 250, + 1038, -1000, 1783, -1000, -1000, -111, -98, 972, 972, 402, + -1000, 1815, 1799, 8285, 877, -1000, -1000, 1036, -1000, 985, + -1000, 19080, -1000, -1000, -1000, -1000, -1000, 613, 613, 613, + 223, 1363, 401, 14583, 19080, -1000, 14134, 1189, -1000, -1000, + 1915, 1915, 599, -1000, 877, 229, 309, -1000, -1000, -1000, + 292, 5, 863, 234, 985, 1382, -1000, 620, 1721, 1727, + 1721, -1000, -1000, -1000, -1000, 1744, -1000, 1741, -1000, -1000, + 1382, -1000, 1515, -1000, -1000, -1000, 1375, 1181, -1000, -1000, + -1000, -1000, 1910, 1893, 15481, -1000, -1000, -1000, -1000, -1000, + 5988, 1664, 1600, 1558, 20573, 1297, -1000, -1000, -1000, -1000, + 5988, 1514, 1500, 1465, 1458, 1452, -1000, 5988, 5988, 936, + 1391, 1378, 1346, 1317, 1257, -1000, 225, 2099, 974, -1000, + 6908, 6908, 1291, 634, -1000, 5988, 655, 888, 11889, -1000, + 5988, -1000, -1000, -1000, 11889, -1000, 6908, -1000, 1222, 1035, + 1910, -1000, 1171, 1418, -1000, -292, -1000, -1000, 1388, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15032, 133, + -1000, -1000, -1000, -1000, -1000, -1000, -62, -1000, 266, -296, + -99, 1890, 1889, 19080, 237, 19080, 1168, 1396, -1000, -1000, + -1000, 988, 617, -1000, 19080, 702, 391, 241, 391, 701, + 1545, -1000, -1000, -1000, 1030, -49, -1000, 309, -1000, 1543, + 11889, 12338, 1029, 19529, 14583, 14134, 1322, -1000, 400, -1000, + -1000, -1000, -1000, 1915, -1000, -1000, 1010, 1003, -1000, 861, + -1000, -1000, 805, 523, -39, -1000, -1000, -1000, -1000, -1000, + 1886, 19080, 4602, -1000, -1000, 5988, 1537, -1000, 5988, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 5988, 5988, -1000, -1000, + 972, -1000, -1000, -1000, 1164, -1000, 337, 337, -22, -1000, + -1000, -1000, 1487, -1000, 1521, 1521, 1487, 1487, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1534, 1533, -1000, + 1487, 1520, 1520, 1487, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1523, + 1523, 1529, 1523, -1000, 1209, -1000, -1000, -1000, -1000, -1000, + 1201, 1175, 5988, -1000, -1000, -1000, -1000, -1000, -1000, 6908, + -1000, -1000, -1000, -1000, 972, 5988, 1162, -1000, 1487, 1521, + -1000, 1487, 1520, 1487, 337, 337, 1154, 856, 1150, 1941, + -1000, 1133, -1000, -1000, 4602, 1388, 1375, -1000, -1000, 19080, + -298, 993, -1000, 1888, 983, 784, -1000, 1515, 20788, 8285, + 779, -1000, -1000, 19080, 19080, -1000, 19080, 19080, 241, 5988, + -1000, -1000, 165, 229, 13685, -1000, -1000, -1000, -1000, -1000, + 1915, 1322, 400, -1000, -1000, 563, -1000, -1000, -1000, 38, + -1000, -1000, 788, 268, -1000, 1847, -1000, -1000, 972, 19080, + 972, 972, 1358, -1000, -1000, -1000, -1000, -1000, -29, -1000, + -1000, -1000, -1000, 855, -1000, 854, -1000, -1000, -1000, 981, + 981, -1000, -1000, 851, -1000, -1000, -1000, 848, -1000, -1000, + 847, -1000, -1000, -1000, -1000, 1122, -1000, 972, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5988, -1000, + -1000, -1000, -1000, -138, -300, 840, -1000, 966, -92, -1000, + -1000, 1811, 208, 20770, -1000, 613, 613, 651, 613, 613, + 613, 613, 149, 145, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 1506, -1000, + -1000, 779, -1000, -1000, 709, 6908, -1000, -1000, 965, 12338, + 425, 453, 1504, -1000, 116, 699, 692, -1000, 19080, -1000, + 1498, 1467, 69, 1496, -1000, 1494, 1493, 19080, 1113, 245, + 962, -1000, 1254, -1000, 1487, 5988, 1886, -1000, -1000, -1000, + 27, -1000, -1000, -1000, 1243, -1000, -1000, 1129, 1127, 1238, + -1000, 1236, 1125, 1228, 1215, -1000, 1079, -113, -81, -1000, + 1486, -1000, -1000, 1883, 237, -1000, 1882, 20788, -1000, 838, + 836, 613, 613, 833, 957, 947, 943, 613, 613, 832, + 942, 19902, 831, 806, 802, 785, 935, 505, 780, 774, + 766, 19080, 1480, 906, -1000, -1000, 2099, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 793, 1475, + -1000, -1000, 1472, 13685, 113, 113, 13685, 13685, 13685, 1470, + 286, -1000, -67, -1000, -1000, 13685, 1805, 1033, 1847, -1000, + -1000, -1000, -1000, -1000, 916, -1000, -1000, -1000, 786, -1000, + 781, -1000, 252, -109, -81, -1000, 1881, -94, 1880, 1879, + 19080, 784, -1000, 101, -1000, -1000, -1000, 11889, 11889, -1000, + -1000, -1000, -1000, 915, 908, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 160, 19076, 1232, -1000, 636, 1052, 5984, - -225, 13681, 1219, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1204, 1202, 1198, 13681, -1000, -1000, -1000, 114, -1000, 121, - -1000, -1000, 1741, -1000, -1000, 1050, 986, 1416, 726, -79, - 1825, -1000, 870, 1824, 870, 870, 1189, -1000, -1000, 97, - 200, 189, -1000, 246, -1000, -1000, -1000, -1000, -1000, -1000, - 185, 1184, -1000, 901, 898, -1000, 801, 1617, -1000, 18, - 1176, -1000, -1000, -1000, -1000, 1174, -1000, -1000, 630, 897, - 66, -1000, -1000, -1000, -1000, -1000, 1773, 11436, -103, -1000, - 895, -1000, 870, -1000, -1000, -1000, 19076, 91, 722, 6904, - 1415, 6904, 1414, 113, 1413, -1000, -1000, -1000, -1000, -1000, - 310, -1000, -1000, 1614, 1611, 1884, -1000, -1000, -1000, -1000, - 121, 121, 121, 121, 19, 718, -1000, 865, -1000, 19076, - -1000, 1163, -1000, -1000, -1000, 403, -1000, -1000, -1000, -1000, - 1410, 1804, -1000, 1803, 19076, 1385, 19076, 1407, 629, 6904, - -1000, -1000, 1888, -1000, 1885, 412, 412, -1000, -1000, -1000, - 1237, -1000, 626, -1000, 13232, 19076, -1000, 212, 105, -1000, - 1157, -1000, 1154, 19076, 715, 981, -1000, -1000, -1000, 745, - 123, -1000, 19076, 4138, -1000, 402, 1137, -1000, 1042, 77, - -1000, -1000, 1134, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 944, 19076, -1000, 212, 1616, -1000, 706, -1000, -1000, -1000, - 20708, 202, -1000, -1000, 20708, 82, -1000, 190, -1000, -1000, - 1132, -1000, 972, 1386, -1000, 82, 20784, 5984, -1000, 20784, - 1105, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 175, 19080, 1207, + -1000, 615, 1116, 5988, -235, 13685, 1205, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1193, 1188, 1180, 13685, -1000, -1000, + -1000, 114, -1000, 120, -1000, -1000, 1805, -1000, -1000, 1114, + 1107, 1469, 768, -99, 1878, -1000, 784, 1877, 784, 784, + 1178, -1000, -1000, 92, 204, 156, -1000, 253, -1000, -1000, + -1000, -1000, -1000, -1000, 166, 1174, -1000, 906, 905, -1000, + 968, 1726, -1000, -21, 1167, -1000, -1000, -1000, -1000, 1161, + -1000, -1000, 613, 894, 56, -1000, -1000, -1000, -1000, -1000, + 1826, 11440, -114, -1000, 893, -1000, 784, -1000, -1000, -1000, + 19080, 76, 765, 6908, 1468, 6908, 1466, 107, 1464, -1000, + -1000, -1000, -1000, -1000, 286, -1000, -1000, 1724, 1702, 1919, + -1000, -1000, -1000, -1000, 120, 120, 120, 120, 1, 752, + -1000, 914, -1000, 19080, -1000, 1158, -1000, -1000, -1000, 396, + -1000, -1000, -1000, -1000, 1430, 1867, -1000, 1767, 19080, 1605, + 19080, 1390, 610, 6908, -1000, -1000, 1927, -1000, 1924, 492, + 492, -1000, -1000, -1000, 1313, -1000, 608, -1000, 13236, 19080, + -1000, 206, 94, -1000, 1153, -1000, 1149, 19080, 743, 1389, + -1000, -1000, -1000, 770, 117, -1000, 19080, 4142, -1000, 394, + 1141, -1000, 977, 73, -1000, -1000, 1132, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 972, 19080, -1000, 206, 1688, -1000, + 732, -1000, -1000, -1000, 20712, 203, -1000, -1000, 20712, 75, + -1000, 193, -1000, -1000, 1124, -1000, 886, 1379, -1000, 75, + 20788, 5988, -1000, 20788, 1121, -1000, } var yyPgo = [...]int{ - 0, 124, 2219, 173, 135, 126, 171, 2218, 1778, 1774, - 2217, 2216, 2215, 2214, 2212, 2211, 2210, 2209, 2208, 2207, - 2206, 2205, 2204, 2202, 2201, 2199, 170, 2198, 2192, 2191, - 2190, 2189, 2187, 2185, 2184, 2183, 2182, 2181, 2180, 2179, - 122, 2177, 1750, 2173, 2172, 2171, 2170, 2169, 154, 2168, - 2167, 2162, 2161, 2160, 2159, 2157, 2156, 2155, 2154, 2153, - 2152, 2151, 166, 50, 105, 186, 47, 204, 182, 143, - 73, 117, 161, 118, 2149, 2148, 111, 25, 121, 2147, - 45, 41, 37, 181, 98, 56, 72, 96, 2146, 2145, - 90, 2144, 2143, 2141, 2140, 64, 2139, 81, 31, 93, - 27, 2137, 2135, 2134, 87, 2133, 2131, 2130, 2129, 84, - 2128, 68, 54, 2127, 2126, 2125, 2123, 2122, 43, 2121, - 53, 2120, 2119, 2116, 2115, 2114, 2113, 2111, 14, 17, - 19, 2108, 2107, 16, 2, 2106, 157, 60, 85, 106, - 2104, 364, 2101, 2100, 2099, 112, 2098, 133, 2095, 2094, - 2093, 2091, 2089, 9, 2087, 55, 2086, 2085, 2084, 57, - 2083, 2081, 2080, 101, 46, 108, 99, 2079, 2078, 76, - 159, 15, 35, 0, 168, 39, 2077, 2076, 2073, 187, - 164, 156, 2071, 114, 271, 119, 2069, 2066, 40, 95, - 75, 2065, 2064, 110, 69, 42, 2063, 89, 2062, 32, - 86, 2057, 109, 2055, 132, 1, 102, 2054, 149, 2051, - 2050, 2049, 144, 2048, 2046, 63, 120, 2045, 2043, 2040, - 26, 2039, 30, 21, 2038, 97, 172, 2036, 137, 140, - 128, 88, 158, 70, 115, 746, 113, 82, 18, 2032, - 160, 2029, 216, 165, 147, 2027, 2026, 167, 321, 153, - 2025, 125, 10, 2024, 2023, 11, 2002, 23, 1999, 1997, - 1996, 1992, 6, 1991, 1990, 1989, 3, 5, 1988, 4, - 107, 44, 67, 1987, 66, 79, 1985, 1983, 1982, 1981, - 1980, 248, 1978, 1977, 1976, 1975, 1974, 1973, 1971, 83, - 1970, 1969, 1968, 1967, 65, 1965, 1963, 1962, 1960, 1959, - 29, 1957, 1956, 20, 1955, 24, 1954, 1953, 1952, 12, - 139, 1950, 1949, 13, 1948, 1947, 7, 8, 1946, 1945, - 58, 49, 38, 77, 74, 1943, 22, 1942, 104, 1941, - 1940, 146, 1939, 103, 1938, 129, 163, 250, 1937, 152, - 1936, 1934, 1933, 1932, 1931, 1930, 1929, 754, 1928, 1927, - 169, 61, 151, 1925, 91, 150, 1924, 116, 94, 62, - 1923, 1922, 1921, 1908, 1905, 155, 1904, -} - -//line mysql_sql.y:7102 + 0, 125, 2293, 174, 130, 126, 173, 2292, 1857, 1854, + 2290, 2289, 2286, 2285, 2283, 2280, 2279, 2277, 2276, 2274, + 2273, 2272, 2271, 2268, 2267, 2266, 2265, 170, 2264, 2263, + 2262, 2257, 2256, 2255, 2254, 2253, 2252, 2250, 2244, 2243, + 2242, 123, 2240, 1838, 2239, 2238, 2235, 2234, 2232, 162, + 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, + 2221, 2220, 2219, 166, 50, 103, 195, 47, 191, 183, + 143, 75, 117, 165, 118, 2218, 2203, 111, 25, 121, + 2202, 70, 45, 37, 182, 107, 56, 72, 96, 2196, + 2195, 89, 2194, 2193, 2191, 2189, 62, 2188, 76, 31, + 90, 27, 2187, 2186, 2185, 79, 2184, 2182, 2181, 2180, + 86, 2177, 68, 53, 2176, 2175, 2174, 2173, 2172, 43, + 2171, 49, 2166, 2165, 2164, 2163, 2161, 2160, 2159, 14, + 17, 19, 2158, 2157, 16, 2, 2156, 150, 60, 85, + 104, 2155, 344, 2153, 2152, 2151, 112, 2150, 138, 2149, + 2148, 2147, 2145, 2144, 9, 2143, 55, 2141, 2139, 2130, + 54, 2129, 2125, 2123, 99, 41, 108, 97, 2120, 2119, + 74, 157, 15, 35, 0, 147, 39, 2118, 2117, 2115, + 181, 167, 156, 2112, 113, 197, 134, 2111, 2110, 40, + 95, 77, 2108, 2105, 110, 67, 42, 2104, 87, 2103, + 32, 92, 2102, 109, 2099, 137, 1, 102, 2098, 154, + 2097, 2096, 2095, 135, 2093, 2091, 63, 122, 2090, 2089, + 2088, 26, 2087, 30, 21, 2085, 98, 172, 2084, 133, + 128, 136, 88, 160, 73, 114, 749, 115, 82, 18, + 2083, 159, 2082, 241, 155, 144, 2081, 2080, 169, 312, + 148, 2077, 129, 10, 2075, 2073, 11, 2070, 23, 2069, + 2068, 2067, 2066, 6, 2062, 2061, 2059, 3, 5, 2045, + 4, 106, 44, 66, 2044, 65, 69, 2042, 2040, 2036, + 2033, 2031, 246, 2030, 2029, 2028, 2011, 2006, 2003, 2000, + 81, 1998, 1997, 1996, 1995, 64, 1993, 1992, 1991, 1989, + 1987, 29, 1986, 1985, 20, 1984, 24, 1983, 1982, 1981, + 12, 145, 1980, 1978, 13, 1977, 1976, 7, 8, 1974, + 1973, 58, 46, 38, 84, 83, 1972, 22, 1971, 100, + 1969, 1967, 141, 1966, 105, 1964, 119, 168, 211, 1963, + 153, 1961, 1960, 1959, 1958, 1957, 1956, 1954, 759, 1953, + 1951, 163, 57, 158, 1950, 91, 151, 1949, 116, 94, + 61, 1946, 1945, 1944, 1943, 1942, 161, 1934, +} + +//line mysql_sql.y:7109 type yySymType struct { union interface{} id int @@ -4191,135 +4191,119 @@ func (st *yySymType) zeroFillOptUnion() bool { } var yyR1 = [...]int{ - 0, 362, 2, 2, 1, 1, 1, 1, 1, 1, + 0, 363, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 56, 319, 319, 318, 318, 317, - 317, 316, 316, 316, 315, 315, 315, 314, 314, 313, - 313, 312, 312, 310, 310, 311, 309, 308, 308, 306, - 306, 304, 304, 305, 305, 299, 299, 302, 302, 300, - 300, 300, 300, 303, 298, 298, 298, 297, 297, 55, - 55, 55, 237, 237, 54, 54, 251, 251, 251, 251, - 251, 249, 249, 249, 249, 249, 249, 248, 248, 247, - 247, 252, 252, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 49, 49, 49, 49, - 52, 53, 245, 245, 245, 245, 245, 246, 246, 246, - 50, 51, 51, 236, 236, 241, 241, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 244, - 244, 244, 243, 243, 242, 242, 43, 43, 43, 46, - 45, 235, 235, 235, 235, 235, 235, 235, 235, 44, - 44, 44, 44, 44, 44, 41, 41, 41, 41, 41, - 40, 40, 42, 42, 234, 234, 233, 59, 59, 59, - 59, 59, 59, 59, 58, 58, 61, 61, 60, 48, - 48, 48, 48, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 342, 342, 342, 344, 344, 177, 178, 363, - 176, 176, 176, 338, 338, 339, 340, 341, 341, 341, - 57, 7, 7, 38, 39, 361, 361, 281, 281, 190, - 190, 191, 191, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 284, - 285, 186, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 30, 30, 37, 364, 364, 364, 35, - 36, 280, 280, 280, 34, 33, 32, 31, 31, 29, - 29, 28, 28, 183, 183, 185, 185, 181, 365, 365, - 257, 257, 184, 184, 27, 27, 182, 182, 160, 180, - 180, 180, 6, 10, 10, 10, 10, 10, 10, 10, - 15, 17, 232, 232, 230, 16, 13, 12, 11, 14, - 5, 5, 5, 5, 8, 8, 9, 71, 71, 99, - 99, 351, 351, 347, 347, 348, 348, 348, 349, 349, - 350, 350, 4, 288, 288, 288, 288, 288, 288, 327, - 327, 327, 328, 89, 89, 84, 84, 289, 289, 206, - 329, 329, 296, 296, 295, 295, 294, 294, 87, 87, - 88, 88, 75, 75, 62, 62, 301, 301, 301, 301, - 307, 307, 278, 278, 125, 125, 156, 156, 157, 157, - 63, 63, 64, 64, 64, 64, 64, 64, 335, 335, - 337, 337, 336, 86, 86, 82, 82, 83, 83, 83, - 81, 81, 80, 79, 79, 78, 77, 77, 77, 66, - 66, 65, 65, 65, 65, 65, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 67, 67, - 343, 343, 343, 282, 282, 282, 287, 287, 138, 138, - 139, 139, 137, 137, 68, 68, 69, 69, 69, 69, - 136, 136, 135, 70, 70, 76, 72, 72, 74, 74, - 74, 74, 146, 146, 145, 145, 145, 145, 92, 92, - 144, 143, 143, 143, 91, 91, 90, 90, 85, 85, - 73, 73, 142, 366, 366, 140, 169, 169, 169, 175, - 175, 168, 168, 168, 168, 168, 179, 174, 174, 170, - 170, 171, 171, 171, 3, 3, 3, 3, 21, 21, - 21, 21, 25, 25, 345, 345, 18, 352, 355, 353, - 356, 356, 356, 357, 357, 357, 358, 358, 19, 354, - 359, 359, 359, 231, 231, 229, 228, 228, 228, 360, - 360, 360, 360, 172, 172, 20, 225, 225, 226, 227, - 227, 219, 219, 219, 219, 24, 223, 223, 224, 224, - 224, 224, 224, 220, 220, 222, 222, 218, 218, 218, - 218, 218, 23, 217, 217, 215, 215, 213, 213, 214, - 214, 212, 212, 212, 216, 216, 22, 283, 283, 253, - 253, 256, 256, 263, 263, 264, 264, 262, 262, 269, - 269, 268, 268, 267, 267, 266, 266, 265, 265, 260, - 260, 259, 259, 254, 254, 254, 254, 254, 255, 255, - 258, 258, 261, 261, 116, 116, 117, 117, 117, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 325, 325, - 326, 119, 119, 119, 123, 123, 123, 123, 123, 123, - 118, 118, 120, 120, 100, 100, 98, 98, 93, 93, - 94, 94, 95, 95, 96, 96, 97, 97, 97, 97, - 97, 97, 239, 239, 323, 323, 324, 324, 320, 320, - 320, 322, 322, 322, 322, 322, 321, 321, 101, 154, - 154, 154, 173, 173, 173, 153, 153, 153, 115, 115, - 114, 114, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 238, 238, 187, 187, 188, - 188, 133, 131, 131, 132, 132, 132, 132, 129, 130, - 128, 128, 128, 128, 128, 127, 127, 126, 126, 126, - 221, 221, 124, 124, 122, 122, 122, 121, 121, 121, - 270, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 197, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 198, 198, 203, 203, 334, - 334, 333, 102, 102, 102, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 111, 111, 111, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 293, 293, 293, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 152, 346, 346, - 346, 330, 330, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 150, 150, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 207, 207, 208, - 208, 290, 290, 290, 290, 290, 290, 291, 291, 292, - 292, 292, 292, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 196, 147, 147, 147, 209, 204, 204, 205, 205, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 201, 201, 201, 201, 201, 193, 193, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 200, 200, 202, 202, - 211, 211, 211, 210, 210, 210, 210, 210, 210, 210, - 113, 113, 113, 113, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 104, 104, 104, 104, 108, 108, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 109, 109, 109, 109, 107, 107, - 107, 107, 107, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 106, 155, - 155, 271, 271, 274, 274, 272, 272, 273, 275, 275, - 275, 276, 276, 276, 277, 277, 277, 279, 279, 159, - 159, 159, 165, 165, 158, 158, 166, 166, 167, 167, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 164, 164, 164, 164, 164, 164, 164, 164, + 1, 1, 1, 1, 57, 320, 320, 319, 319, 318, + 318, 317, 317, 317, 316, 316, 316, 315, 315, 314, + 314, 313, 313, 311, 311, 312, 310, 309, 309, 307, + 307, 305, 305, 306, 306, 300, 300, 303, 303, 301, + 301, 301, 301, 304, 299, 299, 299, 298, 298, 56, + 56, 56, 238, 238, 55, 55, 252, 252, 252, 252, + 252, 250, 250, 250, 250, 250, 250, 249, 249, 248, + 248, 253, 253, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 50, 50, 50, 50, + 53, 54, 246, 246, 246, 246, 246, 247, 247, 247, + 51, 52, 52, 237, 237, 242, 242, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 245, + 245, 245, 244, 244, 243, 243, 44, 44, 44, 47, + 46, 236, 236, 236, 236, 236, 236, 236, 236, 45, + 45, 45, 45, 45, 45, 42, 42, 42, 42, 42, + 41, 41, 43, 43, 235, 235, 234, 60, 60, 60, + 60, 60, 60, 60, 59, 59, 62, 62, 61, 49, + 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 343, 343, 343, 345, 345, 178, 179, 364, + 177, 177, 177, 339, 339, 340, 341, 342, 342, 342, + 58, 7, 7, 39, 40, 362, 362, 282, 282, 191, + 191, 192, 192, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 285, + 286, 187, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 31, 31, 38, 365, 365, 365, 36, + 37, 281, 281, 281, 35, 34, 33, 32, 32, 30, + 30, 29, 29, 184, 184, 186, 186, 182, 366, 366, + 258, 258, 185, 185, 28, 28, 183, 183, 161, 181, + 181, 181, 6, 10, 10, 10, 10, 10, 10, 10, + 10, 16, 18, 233, 233, 231, 17, 13, 12, 15, + 11, 14, 5, 5, 5, 5, 8, 8, 9, 72, + 72, 100, 100, 352, 352, 348, 348, 349, 349, 349, + 350, 350, 351, 351, 4, 289, 289, 289, 289, 289, + 289, 328, 328, 328, 329, 90, 90, 85, 85, 290, + 290, 207, 330, 330, 297, 297, 296, 296, 295, 295, + 88, 88, 89, 89, 76, 76, 63, 63, 302, 302, + 302, 302, 308, 308, 279, 279, 126, 126, 157, 157, + 158, 158, 64, 64, 65, 65, 65, 65, 65, 65, + 336, 336, 338, 338, 337, 87, 87, 83, 83, 84, + 84, 84, 82, 82, 81, 80, 80, 79, 78, 78, + 78, 67, 67, 66, 66, 66, 66, 66, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 68, 68, 344, 344, 344, 283, 283, 283, 288, 288, + 139, 139, 140, 140, 138, 138, 69, 69, 70, 70, + 70, 70, 137, 137, 136, 71, 71, 77, 73, 73, + 75, 75, 75, 75, 147, 147, 146, 146, 146, 146, + 93, 93, 145, 144, 144, 144, 92, 92, 91, 91, + 86, 86, 74, 74, 143, 367, 367, 141, 170, 170, + 170, 176, 176, 169, 169, 169, 169, 169, 180, 175, + 175, 171, 171, 172, 172, 172, 3, 3, 3, 3, + 22, 22, 22, 22, 26, 26, 346, 346, 19, 353, + 356, 354, 357, 357, 357, 358, 358, 358, 359, 359, + 20, 355, 360, 360, 360, 232, 232, 230, 229, 229, + 229, 361, 361, 361, 361, 173, 173, 21, 226, 226, + 227, 228, 228, 220, 220, 220, 220, 25, 224, 224, + 225, 225, 225, 225, 225, 221, 221, 223, 223, 219, + 219, 219, 219, 219, 24, 218, 218, 216, 216, 214, + 214, 215, 215, 213, 213, 213, 217, 217, 23, 284, + 284, 254, 254, 257, 257, 264, 264, 265, 265, 263, + 263, 270, 270, 269, 269, 268, 268, 267, 267, 266, + 266, 261, 261, 260, 260, 255, 255, 255, 255, 255, + 256, 256, 259, 259, 262, 262, 117, 117, 118, 118, + 118, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 326, 326, 327, 120, 120, 120, 124, 124, 124, 124, + 124, 124, 119, 119, 121, 121, 101, 101, 99, 99, + 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, + 98, 98, 98, 98, 240, 240, 324, 324, 325, 325, + 321, 321, 321, 323, 323, 323, 323, 323, 322, 322, + 102, 155, 155, 155, 174, 174, 174, 154, 154, 154, + 116, 116, 115, 115, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 239, 239, 188, + 188, 189, 189, 134, 132, 132, 133, 133, 133, 133, + 130, 131, 129, 129, 129, 129, 129, 128, 128, 127, + 127, 127, 222, 222, 125, 125, 123, 123, 123, 122, + 122, 122, 271, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 199, 199, 204, + 204, 335, 335, 334, 103, 103, 103, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 112, 112, 112, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 294, 294, 294, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 153, + 347, 347, 347, 331, 331, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 333, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 333, 151, 151, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 208, + 208, 209, 209, 291, 291, 291, 291, 291, 291, 292, + 292, 293, 293, 293, 293, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 197, 148, 148, 148, 210, 205, 205, + 206, 206, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 202, 202, 202, 202, 202, 194, 194, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 201, 201, + 203, 203, 212, 212, 212, 211, 211, 211, 211, 211, + 211, 211, 114, 114, 114, 114, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 105, 105, 105, 105, + 109, 109, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 110, 110, 110, 110, + 108, 108, 108, 108, 108, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 107, 156, 156, 272, 272, 275, 275, 273, 273, 274, + 276, 276, 276, 277, 277, 277, 278, 278, 278, 280, + 280, 160, 160, 160, 166, 166, 159, 159, 167, 167, + 168, 168, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, @@ -4335,11 +4319,28 @@ var yyR1 = [...]int{ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, + 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, } var yyR2 = [...]int{ @@ -4376,85 +4377,87 @@ var yyR2 = [...]int{ 4, 7, 8, 0, 2, 0, 2, 2, 1, 1, 1, 1, 0, 1, 4, 5, 1, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 4, 1, 3, 1, 4, 6, 4, 4, 3, - 1, 1, 2, 2, 11, 8, 9, 1, 3, 2, - 4, 0, 2, 0, 1, 1, 1, 1, 0, 1, - 0, 1, 4, 2, 1, 5, 4, 4, 2, 0, - 1, 3, 3, 1, 3, 1, 3, 1, 3, 4, - 0, 1, 0, 1, 1, 3, 1, 1, 0, 4, - 1, 3, 2, 1, 0, 8, 0, 4, 7, 4, - 0, 2, 0, 2, 0, 2, 0, 4, 1, 3, - 1, 1, 4, 3, 4, 5, 4, 5, 2, 3, - 1, 3, 6, 0, 3, 0, 1, 2, 4, 4, - 0, 1, 3, 1, 3, 2, 0, 1, 1, 3, - 3, 1, 3, 3, 3, 3, 1, 2, 2, 1, - 2, 2, 1, 2, 2, 1, 2, 2, 7, 7, - 1, 1, 1, 0, 1, 1, 1, 1, 0, 2, - 0, 3, 0, 2, 1, 3, 1, 2, 3, 5, - 0, 1, 2, 1, 3, 1, 1, 1, 4, 4, - 4, 3, 2, 2, 2, 3, 2, 3, 0, 2, - 1, 1, 2, 2, 0, 1, 2, 4, 1, 3, - 1, 4, 3, 0, 1, 2, 0, 1, 2, 1, - 1, 0, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 4, 4, 1, 3, 1, 4, 6, 4, 4, + 4, 3, 1, 1, 2, 2, 11, 8, 9, 1, + 3, 2, 4, 0, 2, 0, 1, 1, 1, 1, + 0, 1, 0, 1, 4, 2, 1, 5, 4, 4, + 2, 0, 1, 3, 3, 1, 3, 1, 3, 1, + 3, 4, 0, 1, 0, 1, 1, 3, 1, 1, + 0, 4, 1, 3, 2, 1, 0, 8, 0, 4, + 7, 4, 0, 2, 0, 2, 0, 2, 0, 4, + 1, 3, 1, 1, 4, 3, 4, 5, 4, 5, + 2, 3, 1, 3, 6, 0, 3, 0, 1, 2, + 4, 4, 0, 1, 3, 1, 3, 2, 0, 1, + 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, + 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, + 7, 7, 1, 1, 1, 0, 1, 1, 1, 1, + 0, 2, 0, 3, 0, 2, 1, 3, 1, 2, + 3, 5, 0, 1, 2, 1, 3, 1, 1, 1, + 4, 4, 4, 3, 2, 2, 2, 3, 2, 3, + 0, 2, 1, 1, 2, 2, 0, 1, 2, 4, + 1, 3, 1, 4, 3, 0, 1, 2, 0, 1, + 2, 1, 1, 0, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 8, 11, 0, 1, 7, 1, 4, 1, - 3, 4, 3, 0, 1, 1, 0, 2, 9, 1, - 0, 2, 2, 1, 3, 2, 1, 3, 2, 0, - 3, 4, 3, 1, 1, 4, 1, 3, 1, 1, - 1, 0, 1, 1, 1, 11, 0, 2, 3, 2, - 3, 1, 1, 1, 3, 3, 4, 0, 2, 2, - 2, 2, 5, 1, 1, 0, 3, 0, 1, 1, - 2, 4, 4, 4, 0, 1, 10, 0, 1, 0, - 6, 0, 4, 0, 3, 1, 3, 4, 5, 0, - 3, 1, 3, 2, 3, 1, 2, 0, 6, 0, - 2, 0, 2, 4, 5, 4, 5, 1, 6, 5, - 0, 3, 0, 1, 0, 1, 1, 3, 2, 3, - 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 5, 4, 1, 3, - 3, 0, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 3, 0, 1, - 1, 3, 1, 1, 2, 1, 7, 7, 7, 7, - 8, 5, 0, 1, 0, 1, 1, 1, 1, 3, - 3, 1, 1, 1, 1, 1, 0, 1, 3, 1, - 3, 5, 1, 1, 1, 1, 3, 5, 0, 1, - 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, - 2, 2, 1, 5, 6, 1, 2, 0, 1, 1, - 2, 5, 0, 1, 1, 1, 2, 2, 3, 3, - 1, 1, 2, 2, 2, 0, 1, 2, 2, 2, - 0, 3, 0, 3, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 1, 1, 1, 3, 5, 2, - 2, 2, 2, 1, 1, 2, 5, 6, 6, 6, - 1, 1, 1, 1, 1, 0, 2, 0, 1, 1, - 2, 4, 1, 2, 2, 1, 2, 2, 1, 2, - 2, 2, 2, 2, 0, 1, 1, 5, 4, 4, - 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 5, 5, 1, 1, 1, 4, 4, 6, 8, 6, - 4, 5, 5, 4, 6, 6, 7, 6, 1, 1, + 1, 1, 1, 1, 8, 11, 0, 1, 7, 1, + 4, 1, 3, 4, 3, 0, 1, 1, 0, 2, + 9, 1, 0, 2, 2, 1, 3, 2, 1, 3, + 2, 0, 3, 4, 3, 1, 1, 4, 1, 3, + 1, 1, 1, 0, 1, 1, 1, 11, 0, 2, + 3, 2, 3, 1, 1, 1, 3, 3, 4, 0, + 2, 2, 2, 2, 5, 1, 1, 0, 3, 0, + 1, 1, 2, 4, 4, 4, 0, 1, 10, 0, + 1, 0, 6, 0, 4, 0, 3, 1, 3, 4, + 5, 0, 3, 1, 3, 2, 3, 1, 2, 0, + 6, 0, 2, 0, 2, 4, 5, 4, 5, 1, + 6, 5, 0, 3, 0, 1, 0, 1, 1, 3, + 2, 3, 3, 4, 4, 3, 3, 3, 3, 4, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 4, 5, 4, + 1, 3, 3, 0, 2, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, + 0, 1, 1, 3, 1, 1, 2, 1, 7, 7, + 7, 7, 8, 5, 0, 1, 0, 1, 1, 1, + 1, 3, 3, 1, 1, 1, 1, 1, 0, 1, + 3, 1, 3, 5, 1, 1, 1, 1, 3, 5, + 0, 1, 1, 2, 1, 2, 2, 1, 1, 2, + 2, 2, 2, 2, 1, 5, 6, 1, 2, 0, + 1, 1, 2, 5, 0, 1, 1, 1, 2, 2, + 3, 3, 1, 1, 2, 2, 2, 0, 1, 2, + 2, 2, 0, 3, 0, 3, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, + 5, 2, 2, 2, 2, 1, 1, 2, 5, 6, + 6, 6, 1, 1, 1, 1, 1, 0, 2, 0, + 1, 1, 2, 4, 1, 2, 2, 1, 2, 2, + 1, 2, 2, 2, 2, 2, 0, 1, 1, 5, + 4, 4, 5, 5, 5, 5, 4, 5, 5, 5, + 5, 5, 5, 5, 1, 1, 1, 4, 4, 6, + 8, 6, 4, 5, 5, 4, 6, 6, 7, 6, 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, 4, 2, 3, 2, 4, 6, - 2, 2, 4, 6, 4, 2, 2, 0, 1, 2, - 3, 1, 1, 1, 1, 1, 1, 0, 2, 1, + 1, 1, 1, 1, 2, 2, 4, 2, 3, 2, + 4, 6, 2, 2, 4, 6, 4, 2, 2, 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, 3, 3, 3, 3, 2, 3, 4, 3, + 4, 1, 3, 4, 3, 4, 1, 1, 1, 3, + 4, 4, 5, 3, 4, 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, - 3, 3, 3, 3, 2, 3, 4, 3, 4, 1, - 3, 4, 3, 4, 1, 1, 1, 3, 4, 4, - 5, 3, 4, 5, 6, 1, 0, 2, 1, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, + 1, 1, 3, 0, 1, 0, 3, 0, 3, 3, + 0, 3, 5, 0, 3, 5, 0, 1, 1, 0, + 1, 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, - 3, 0, 1, 0, 3, 0, 3, 3, 0, 3, - 5, 0, 3, 5, 0, 1, 1, 0, 1, 1, - 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -4490,482 +4493,481 @@ var yyR2 = [...]int{ 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, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, } var yyChk = [...]int{ - -1000, -362, -2, -1, -3, -4, -5, -6, -47, -58, - -60, -61, -26, -7, -57, -40, -41, -43, -49, -54, - -55, -56, -63, -21, -20, -19, -18, 12, -8, -9, - -335, -10, -176, -177, -178, -363, -27, -28, -29, -31, - -32, -33, -34, -35, -36, -37, -30, -39, -38, 195, - -42, 53, -44, -45, -46, -50, -51, -52, -53, 305, - 311, 360, -64, -66, -22, -23, -24, -25, 191, 14, - 432, -11, -14, -12, -13, -16, -17, -15, 213, 212, - 32, 272, 273, 309, 211, 192, 13, 125, 126, 128, - 129, 25, -65, 58, 193, -67, 10, 478, -75, 33, - -98, -173, 62, -161, -164, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 429, 230, 254, 257, 264, 125, 144, 138, 166, - 158, 133, 234, 235, 69, 128, 389, 79, 374, 359, - 131, 249, 251, 253, 256, 236, 154, 149, 248, 232, - 147, 237, 34, 238, 171, 239, 240, 434, 370, 287, - 376, 261, 357, 148, 371, 252, 373, 172, 176, 381, - 311, 142, 143, 378, 383, 170, 210, 37, 431, 222, - 384, 174, 169, 165, 392, 265, 263, 168, 141, 164, - 233, 42, 178, 177, 179, 353, 354, 355, 356, 241, - 242, 299, 380, 161, 150, 291, 134, 22, 387, 217, - 375, 312, 243, 258, 266, 173, 175, 224, 229, 433, - 228, 262, 385, 146, 221, 250, 216, 388, 135, 305, - 314, 244, 129, 255, 382, 391, 41, 327, 140, 132, - 207, 126, 226, 231, 245, 246, 247, 268, 267, 259, - 162, 223, 167, 139, 163, 127, 225, 390, 328, 477, - 289, 342, 160, 157, 227, 200, 386, 377, 130, 346, - 329, 155, 269, 474, 475, 476, 300, 286, 270, 271, - 153, 214, -42, -9, -8, -65, -66, -180, 23, 357, - -48, 358, 195, 58, -173, -5, -4, -40, -63, -179, - -173, 272, -179, 198, -173, 228, 341, -281, 203, -248, - -225, 229, -247, -226, -250, -227, 26, 192, 191, 225, - 14, 193, 309, 199, 12, 10, 310, 211, 13, 311, - 313, 314, 317, 318, 319, 36, 322, 323, 62, 65, - 236, -80, -81, -141, 19, 6, 7, 8, 9, -283, - 288, 342, 228, -219, -217, 320, 208, 207, 80, 394, - 197, -347, -348, 188, 189, 190, -337, 426, -336, -173, - 427, -159, -364, -280, 377, 376, -184, 375, 368, 379, - 370, 191, 79, 159, 156, 199, 378, 37, 381, 382, - 371, 288, 342, -347, 130, 127, -235, 85, 135, 134, - -235, 228, 35, -241, 352, -240, -242, 381, 382, 392, - 63, 64, 380, -159, -173, 79, -81, -141, -80, -64, - -66, -335, 288, 342, 228, 199, 198, 394, 272, -282, - -343, 26, -287, 185, 186, 187, 27, 28, -1, -87, - 220, -98, 124, -81, -80, -81, -153, -173, 359, 94, - -48, -48, 358, -338, -339, -340, -342, 195, 358, 357, - 124, 15, -179, 56, -98, -226, 228, -248, -225, 30, - 55, 59, 201, 59, 55, 58, 307, 321, 342, 308, - 320, 200, 228, 321, 228, 368, 200, 312, 315, 316, - 369, -297, 392, -62, 33, -83, 21, -67, -66, 20, - 26, 27, 26, 27, 26, 27, 26, 27, -345, 198, - 426, -215, 203, -215, -215, 199, -215, -349, 137, 59, - -337, -86, 58, -183, 102, -183, -365, 15, 104, 227, - 226, 372, 369, -257, 373, 374, -184, -183, -183, -184, - 198, 394, 25, 25, -281, -281, -350, 202, 385, 432, - 133, 134, 135, -245, 26, 35, 351, -225, 228, 59, - 94, 23, -243, 94, 105, -242, -242, -242, -243, -243, - -118, 35, -172, 121, -173, 65, -118, 35, 124, -82, - -83, -67, -66, 60, 60, -281, -281, -281, -281, -281, - -281, -179, -68, -69, 112, -199, -173, 86, -201, 62, - -194, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 79, 357, 299, 342, - 155, 300, 153, 214, -195, -197, -316, -310, -192, 58, - 110, 111, 118, 87, -196, -270, 30, 89, 402, -148, - -149, -150, -151, -152, -311, -309, 65, 70, 73, 76, - 77, 75, 74, 151, 72, 66, 123, -66, -330, -162, - -286, -292, 197, -290, 156, 152, 12, 116, 352, 121, - -293, 471, 64, 63, 293, 294, 295, 394, 290, 296, - 203, 47, 297, 298, 301, 401, 302, 48, 303, 292, - 218, 304, 405, 404, 406, 398, 395, 393, 396, 397, - 399, 400, -68, -288, 38, -63, 58, 25, 58, -173, - -82, -62, -83, 124, 70, 65, -48, 60, 59, -341, - 76, 77, -344, 170, 162, -173, -59, 65, -3, -4, - -5, -6, -26, -40, -63, -312, -310, 58, 26, 351, - 55, 15, -249, 198, 394, 306, 224, 200, -247, -232, - -230, -228, -172, -226, -229, -228, -252, -153, 369, 361, - 473, -62, -199, -173, -79, -78, -199, 200, -215, -352, - 62, 86, -231, -229, -225, -171, 62, 63, 64, -173, - -350, -336, 29, -85, -173, -137, 16, -197, -137, -98, - -183, -183, -185, -365, -181, -365, 369, -137, -137, -257, - -182, -173, -215, -352, -231, -72, -70, -73, -74, -76, - -140, -142, -98, 58, 386, 387, 131, 134, 133, 7, - -246, 351, 26, -225, -240, -236, 65, 352, -229, -244, - 55, 121, -294, -199, 35, -243, -243, -243, -244, -244, - 120, -173, -62, -352, -232, -225, -173, -100, -98, -174, - -171, -164, -136, 59, -135, 15, -168, 85, 82, 83, - 84, -173, 29, 65, 124, -199, 101, -210, 94, 95, - 96, 97, 98, 99, 100, 58, 58, 58, 58, 58, - 58, 58, 58, -208, 58, 58, 58, 58, 58, 58, - 58, -208, 58, 58, 58, 58, 58, 65, 65, 107, - 106, 117, 110, 111, 112, 113, 114, 115, 116, 108, - 109, 104, 86, 102, 103, 88, -66, -199, -205, -197, - -197, -197, -197, -270, -203, -199, 58, -199, 58, 58, - 58, -291, 58, 58, -207, -208, 58, 65, 58, 58, - 58, -197, 58, 58, -136, -289, -206, -329, 472, -89, - 60, -84, -173, -327, -328, -84, -88, -173, -62, -62, - -166, -167, -158, -163, -170, -171, -164, 288, 196, 26, - 85, 29, 31, 293, 325, 88, 121, 20, 89, 156, - 120, 295, 402, 294, 191, 51, 404, 406, 405, 395, - 393, 344, 348, 350, 347, 394, 368, 35, 14, 32, - 212, 27, 28, 114, 193, 92, 93, 215, 30, 213, - 77, 23, 54, 15, 17, 18, 296, 343, 203, 202, - 104, 361, 199, 49, 12, 123, 33, 101, 345, 45, - 81, 47, 102, 21, 396, 397, 36, 360, 428, 219, - 116, 297, 298, 52, 86, 351, 75, 55, 82, 19, - 50, 103, 194, 401, 48, 349, 301, 303, 426, 302, - 197, 379, 10, 292, 403, 25, 211, 46, 198, 369, - 91, 201, 76, 218, 152, 6, 80, 13, 53, 56, - 398, 399, 400, 38, 90, 16, 304, 432, 352, 362, - 363, 364, 365, 366, 367, 180, 181, 182, 183, 184, - 260, 206, 204, 208, 209, 472, 473, 185, 186, 283, - 285, 159, 188, 189, 190, 220, 137, 7, 330, 331, - 332, 333, 335, 336, 337, 338, 339, 340, 341, 23, - -48, -339, 124, 59, -85, -249, -231, -251, 112, 62, - -237, 59, 432, 479, 63, 201, -360, 343, 60, 59, - 65, 65, 59, 22, 124, 59, -77, 31, 32, -98, - 203, -98, -355, 330, 30, 35, 59, -218, 56, -213, - -214, -212, -216, 35, 15, -71, -99, -173, 58, 60, - 59, -199, -137, -137, -137, -183, -174, -185, -180, -185, - -181, 124, -160, -173, -355, -361, 35, 25, -143, -144, - -145, -146, 45, 49, 51, 46, 47, 48, 52, 25, - 59, -366, 29, -169, -175, 29, -170, 65, -171, -164, - -64, -66, 132, 135, 135, 134, -225, 201, 58, 94, - -244, -244, -244, 35, -172, 55, 59, -137, -69, -70, - -72, -199, -199, -199, -199, -173, 65, -173, 112, -193, - 86, 286, 75, 76, 77, -194, -211, 26, 270, 271, - -204, -205, -199, -147, 27, 26, -147, -147, -199, -147, - 112, -205, -205, 60, 70, -331, -332, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 297, 292, - 298, 296, 290, 304, 299, 300, 155, 424, 425, 418, - 419, 420, 421, 422, 423, -147, -147, -147, -147, -147, - -199, -346, 284, 283, 285, -147, -147, -147, -147, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -202, -209, -270, 58, 104, 102, 103, 88, -197, - -195, -195, 60, 59, -334, -333, 90, -199, -331, -204, - -199, -204, -204, 60, 60, -205, -204, -195, -204, -147, - 65, -137, 59, 58, 60, 59, 38, 124, 59, 94, - 60, 59, 124, 359, -173, -310, 60, -251, 201, 124, - 124, -230, 311, -172, -231, 20, 432, -153, -298, 202, - 401, -301, 373, -199, -199, -173, -78, -86, 86, 58, - -357, 375, 332, -165, 94, 228, -229, 55, 278, 279, - 280, 281, -212, -159, 120, 239, -98, -71, -173, 15, - 59, -351, 124, -1, -173, -137, -183, -183, -185, -173, - -357, -190, -191, -189, 289, 36, -284, 352, 338, 339, - 228, -234, -233, -153, -73, -73, -73, -73, 45, 45, - 45, 50, 45, 50, 45, -145, -234, -76, -173, -175, - 60, 135, -231, -186, 65, -236, -98, -98, -139, 17, - 124, -193, 286, 75, -270, 60, 59, -199, -199, -199, - 29, -205, 60, 60, 60, 60, 15, -199, -199, -199, - -199, -199, 60, 15, 15, -199, -199, -199, -199, -199, - -205, -202, -197, -195, -195, -200, 215, 85, -199, -198, - -333, 92, -199, 59, 56, 60, 15, 60, 60, 60, - 56, 60, 59, 60, -199, 59, -139, -206, -296, -295, - -294, 38, -63, -84, -289, -173, -328, -294, -173, -166, - -163, -171, -164, 70, 15, -225, 112, 112, 62, 312, - -237, 65, 331, 65, 33, -307, 367, 362, 364, 124, - 29, 30, -93, -94, -95, -101, -96, -153, -188, -97, - 206, 204, 208, -324, 80, 209, 260, 81, 199, -358, - 69, -353, 65, -354, 62, -98, -165, -165, -165, -87, - 56, 124, -70, -99, -173, 112, 60, -137, -137, -183, - -358, -359, 69, 333, -189, 123, 291, 35, 334, 335, - 349, 287, 70, 70, 340, -354, -137, 59, 94, -91, - -90, 55, 56, -92, 55, -90, 45, 45, -137, -86, - 60, -138, 18, 20, -173, 112, -199, 60, 60, 60, - -102, -104, 327, 328, -108, -105, -107, -106, -110, -109, - 156, 157, 121, 160, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 25, 214, 152, 153, 154, 155, - 172, 138, 158, 430, 180, 139, 181, 140, 182, 141, - 183, 142, 143, 184, 144, 147, 148, 149, 146, 60, - -199, 60, 60, 60, 60, 60, -199, -199, 15, 60, - 60, 60, 60, 60, -200, 85, -197, -194, 60, 93, - -199, 91, -103, -109, 121, 156, 214, 155, 154, 152, - 327, 328, -118, -199, -118, -195, 60, 65, -138, 60, - 59, -289, -231, -237, 352, 198, -278, 474, -305, 362, - 20, 20, -63, -98, 60, 59, -104, -97, -173, 81, - -323, -324, -215, -323, 81, 58, 65, -356, 343, -190, - 58, -118, -120, -172, 121, 65, -169, -70, -173, -137, - -351, 124, -137, 65, 65, 70, 35, 70, 123, 336, - -285, -81, -233, -294, -199, 58, -199, -199, -205, 60, - -111, 143, 142, -111, -277, 328, 327, -271, -273, 58, - -272, 58, -272, -271, -271, 58, 58, -271, -274, 58, - -274, -271, -275, 58, -275, -276, 58, -275, 60, 60, - 60, -199, -194, -199, 60, -271, -272, -271, -274, -271, - -111, -111, 60, 60, 23, 60, 60, 60, -294, -98, - -125, 475, 65, 20, 65, -303, 65, -86, -116, -117, - -134, 325, 230, -216, 234, 69, 235, 359, 236, 199, - 238, 239, 240, 210, 241, 242, 243, 352, 244, 245, - 246, 247, 308, 6, 274, -95, -115, -114, -112, 75, - 86, 35, 325, -113, 69, 120, 253, 231, 254, -133, - -187, 204, 80, 81, 313, -188, -320, -321, -173, -321, - -173, -320, -320, -215, -199, 20, 432, -359, -220, -222, - -153, 58, -137, -137, 290, 35, 70, 35, 337, -82, - -85, -279, 329, 70, 70, -155, 65, -155, 70, 70, - 70, 60, -199, -299, -257, -156, 476, 70, 65, 364, - 29, -253, 220, 59, -134, -165, -165, -159, 120, -165, - -165, -165, -165, 237, 237, -165, -165, -165, -165, -165, - -165, -165, -165, -165, -165, -165, -165, -165, -165, 58, - -112, 75, -195, 65, -120, -121, 35, 252, 248, -122, - 35, 232, 233, -124, 58, 260, 81, 81, -98, 58, - 56, 269, 58, 58, 58, -321, 60, 65, 331, 65, - 60, 59, -271, -199, -81, 290, 60, 60, 60, 60, - 59, 60, 60, 60, 59, 60, 59, 60, -306, 367, - -302, -300, 362, 363, 364, 365, 58, 20, -63, 20, - -134, 70, 70, -165, -165, 70, 65, 65, 65, -165, - -165, 70, 65, -175, 70, 70, 70, 70, 35, 65, - -123, 35, 248, 252, 249, 250, 251, 70, 35, 70, - 35, 70, 35, -173, 58, -325, -326, 65, 70, 58, - -221, 58, -220, -322, 278, 279, 280, 282, 281, -322, - -220, -220, -220, 58, -239, -238, 261, 86, 352, -223, - -222, -77, 60, -82, 65, 70, 70, -308, 202, -304, - 366, -300, 20, 364, 20, 20, -157, -173, -303, -254, - 262, 263, -255, -261, 265, -118, -118, 65, 65, -119, - 231, -100, 60, 59, 94, 60, -199, -127, -126, 428, - -220, 60, 60, 60, 60, -220, 261, -224, 210, 69, - 432, 276, 277, -77, 60, 60, -315, 58, 70, -305, - 20, -303, 20, -303, -303, 60, 59, -259, 266, 58, - -257, 58, -257, 81, 279, 232, 233, 60, -326, 65, - 60, -131, -132, -129, -130, 55, 371, 258, 259, 60, - -223, -223, -223, -223, 60, -165, 65, 275, -319, 25, - 60, -314, -313, -154, -309, -173, 367, 65, -303, -173, - -256, 267, 70, -195, 58, -195, 58, -258, 264, 58, - -238, -130, 55, -129, 55, 14, 13, -133, 70, -171, - -318, -317, -316, 60, 59, 124, -263, 58, 20, 60, - -252, 60, -252, 58, 94, -195, -128, 255, 256, 25, - 134, -128, 59, 94, -313, -173, -264, -262, 220, -255, - 60, 60, -252, 70, 60, 75, 35, 257, -317, 35, - -199, 124, 60, 59, 62, -260, 268, 60, -173, -262, - -265, 38, 70, -269, -266, 58, -134, 222, -269, -134, - -268, -267, 267, 223, 60, 59, 62, 58, -267, -266, - -205, 60, + -1000, -363, -2, -1, -3, -4, -5, -6, -48, -59, + -61, -62, -27, -7, -58, -41, -42, -44, -50, -55, + -56, -57, -64, -22, -21, -20, -19, 12, -8, -9, + -336, -10, -177, -178, -179, -364, -28, -29, -30, -32, + -33, -34, -35, -36, -37, -38, -31, -40, -39, 195, + -43, 53, -45, -46, -47, -51, -52, -53, -54, 305, + 311, 360, -65, -67, -23, -24, -25, -26, 191, 14, + 432, -11, -14, -12, -15, -13, -17, -18, -16, 213, + 212, 32, 272, 273, 309, 211, 192, 13, 125, 126, + 128, 129, 25, -66, 58, 193, -68, 10, 478, -76, + 33, -99, -174, 62, -162, -165, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 429, 230, 254, 257, 264, 125, 144, 138, + 166, 158, 133, 234, 235, 69, 128, 389, 79, 374, + 359, 131, 249, 251, 253, 256, 236, 154, 149, 248, + 232, 147, 237, 34, 238, 171, 239, 240, 434, 370, + 287, 376, 261, 357, 148, 371, 252, 373, 172, 176, + 381, 311, 142, 143, 378, 383, 170, 210, 37, 431, + 222, 384, 174, 169, 165, 392, 265, 263, 168, 141, + 164, 233, 42, 178, 177, 179, 353, 354, 355, 356, + 241, 242, 299, 380, 161, 150, 291, 134, 22, 387, + 217, 375, 312, 243, 258, 266, 173, 175, 224, 229, + 433, 228, 262, 385, 146, 221, 250, 216, 388, 135, + 305, 314, 244, 129, 255, 382, 391, 41, 327, 140, + 132, 207, 126, 226, 231, 245, 246, 247, 268, 267, + 259, 162, 223, 167, 139, 163, 127, 225, 390, 328, + 477, 289, 342, 160, 157, 227, 200, 386, 377, 130, + 346, 329, 155, 269, 474, 475, 476, 300, 286, 270, + 271, 153, 214, -43, -9, -8, -66, -67, -181, 23, + 357, -49, 358, 195, 58, -174, -5, -4, -41, -64, + -180, -174, 272, -180, 198, -174, 228, 341, -282, 203, + -249, -226, 229, -248, -227, -251, -228, 26, 192, 191, + 225, 14, 193, 309, 199, 12, 10, 310, 211, 13, + 311, 313, 314, 317, 318, 319, 36, 322, 323, 62, + 65, 236, -81, -82, -142, 19, 6, 7, 8, 9, + -284, 288, 342, 228, -220, -218, 320, 208, 207, 80, + 394, 197, -348, -349, 188, 189, 190, -338, 426, -337, + -174, 427, -160, -365, -281, 377, 376, -185, 375, 368, + 379, 370, 191, 79, 159, 156, 199, 378, 37, 381, + 382, 371, 288, 342, -348, 130, 127, -236, 85, 135, + 134, -236, 228, 35, -242, 352, -241, -243, 381, 382, + 392, 63, 64, 380, -160, -174, 79, -82, -142, -81, + -65, -67, -336, 288, 342, 228, 199, 198, 200, 394, + 272, -283, -344, 26, -288, 185, 186, 187, 27, 28, + -1, -88, 220, -99, 124, -82, -81, -82, -154, -174, + 359, 94, -49, -49, 358, -339, -340, -341, -343, 195, + 358, 357, 124, 15, -180, 56, -99, -227, 228, -249, + -226, 30, 55, 59, 201, 59, 55, 58, 307, 321, + 342, 308, 320, 200, 228, 321, 228, 368, 200, 312, + 315, 316, 369, -298, 392, -63, 33, -84, 21, -68, + -67, 20, 26, 27, 26, 27, 26, 27, 26, 27, + -346, 198, 426, -216, 203, -216, -216, 199, -216, -350, + 137, 59, -338, -87, 58, -184, 102, -184, -366, 15, + 104, 227, 226, 372, 369, -258, 373, 374, -185, -184, + -184, -185, 198, 394, 25, 25, -282, -282, -351, 202, + 385, 432, 133, 134, 135, -246, 26, 35, 351, -226, + 228, 59, 94, 23, -244, 94, 105, -243, -243, -243, + -244, -244, -119, 35, -173, 121, -174, 65, -119, 35, + 124, -83, -84, -68, -67, 60, 60, -282, -282, -282, + -282, -282, -282, -282, -180, -69, -70, 112, -200, -174, + 86, -202, 62, -195, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 79, + 357, 299, 342, 155, 300, 153, 214, -196, -198, -317, + -311, -193, 58, 110, 111, 118, 87, -197, -271, 30, + 89, 402, -149, -150, -151, -152, -153, -312, -310, 65, + 70, 73, 76, 77, 75, 74, 151, 72, 66, 123, + -67, -331, -163, -287, -293, 197, -291, 156, 152, 12, + 116, 352, 121, -294, 471, 64, 63, 293, 294, 295, + 394, 290, 296, 203, 47, 297, 298, 301, 401, 302, + 48, 303, 292, 218, 304, 405, 404, 406, 398, 395, + 393, 396, 397, 399, 400, -69, -289, 38, -64, 58, + 25, 58, -174, -83, -63, -84, 124, 70, 65, -49, + 60, 59, -342, 76, 77, -345, 170, 162, -174, -60, + 65, -3, -4, -5, -6, -27, -41, -64, -313, -311, + 58, 26, 351, 55, 15, -250, 198, 394, 306, 224, + 200, -248, -233, -231, -229, -173, -227, -230, -229, -253, + -154, 369, 361, 473, -63, -200, -174, -80, -79, -200, + 200, -216, -353, 62, 86, -232, -230, -226, -172, 62, + 63, 64, -174, -351, -337, 29, -86, -174, -138, 16, + -198, -138, -99, -184, -184, -186, -366, -182, -366, 369, + -138, -138, -258, -183, -174, -216, -353, -232, -73, -71, + -74, -75, -77, -141, -143, -99, 58, 386, 387, 131, + 134, 133, 7, -247, 351, 26, -226, -241, -237, 65, + 352, -230, -245, 55, 121, -295, -200, 35, -244, -244, + -244, -245, -245, 120, -174, -63, -353, -233, -226, -174, + -101, -99, -101, -175, -172, -165, -137, 59, -136, 15, + -169, 85, 82, 83, 84, -174, 29, 65, 124, -200, + 101, -211, 94, 95, 96, 97, 98, 99, 100, 58, + 58, 58, 58, 58, 58, 58, 58, -209, 58, 58, + 58, 58, 58, 58, 58, -209, 58, 58, 58, 58, + 58, 65, 65, 107, 106, 117, 110, 111, 112, 113, + 114, 115, 116, 108, 109, 104, 86, 102, 103, 88, + -67, -200, -206, -198, -198, -198, -198, -271, -204, -200, + 58, -200, 58, 58, 58, -292, 58, 58, -208, -209, + 58, 65, 58, 58, 58, -198, 58, 58, -137, -290, + -207, -330, 472, -90, 60, -85, -174, -328, -329, -85, + -89, -174, -63, -63, -167, -168, -159, -164, -171, -172, + -165, 288, 196, 26, 85, 29, 31, 293, 325, 88, + 121, 20, 89, 156, 120, 295, 402, 294, 191, 51, + 404, 406, 405, 395, 393, 344, 348, 350, 347, 394, + 368, 35, 14, 32, 212, 27, 28, 114, 193, 92, + 93, 215, 30, 213, 77, 23, 54, 15, 17, 18, + 296, 343, 203, 202, 104, 361, 199, 49, 12, 123, + 33, 101, 345, 45, 81, 47, 102, 21, 396, 397, + 36, 360, 428, 219, 116, 297, 298, 52, 86, 351, + 75, 55, 82, 19, 50, 103, 194, 401, 48, 349, + 301, 303, 426, 302, 197, 379, 10, 292, 403, 25, + 211, 46, 198, 369, 91, 201, 76, 218, 152, 6, + 80, 13, 53, 56, 398, 399, 400, 38, 90, 16, + 304, 432, 352, 362, 363, 364, 365, 366, 367, 180, + 181, 182, 183, 184, 260, 206, 204, 208, 209, 472, + 473, 185, 186, 283, 285, 159, 188, 189, 190, 220, + 137, 7, 330, 331, 332, 333, 335, 336, 337, 338, + 339, 340, 341, 23, -49, -340, 124, 59, -86, -250, + -232, -252, 112, 62, -238, 59, 432, 479, 63, 201, + -361, 343, 60, 59, 65, 65, 59, 22, 124, 59, + -78, 31, 32, -99, 203, -99, -356, 330, 30, 35, + 59, -219, 56, -214, -215, -213, -217, 35, 15, -72, + -100, -174, 58, 60, 59, -200, -138, -138, -138, -184, + -175, -186, -181, -186, -182, 124, -161, -174, -356, -362, + 35, 25, -144, -145, -146, -147, 45, 49, 51, 46, + 47, 48, 52, 25, 59, -367, 29, -170, -176, 29, + -171, 65, -172, -165, -65, -67, 132, 135, 135, 134, + -226, 201, 58, 94, -245, -245, -245, 35, -173, 55, + 59, -138, -70, -71, -73, -200, -200, -200, -200, -174, + 65, -174, 112, -194, 86, 286, 75, 76, 77, -195, + -212, 26, 270, 271, -205, -206, -200, -148, 27, 26, + -148, -148, -200, -148, 112, -206, -206, 60, 70, -332, + -333, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 297, 292, 298, 296, 290, 304, 299, 300, + 155, 424, 425, 418, 419, 420, 421, 422, 423, -148, + -148, -148, -148, -148, -200, -347, 284, 283, 285, -148, + -148, -148, -148, -196, -196, -196, -196, -196, -196, -196, + -196, -196, -196, -196, -196, -203, -210, -271, 58, 104, + 102, 103, 88, -198, -196, -196, 60, 59, -335, -334, + 90, -200, -332, -205, -200, -205, -205, 60, 60, -206, + -205, -196, -205, -148, 65, -138, 59, 58, 60, 59, + 38, 124, 59, 94, 60, 59, 124, 359, -174, -311, + 60, -252, 201, 124, 124, -231, 311, -173, -232, 20, + 432, -154, -299, 202, 401, -302, 373, -200, -200, -174, + -79, -87, 86, 58, -358, 375, 332, -166, 94, 228, + -230, 55, 278, 279, 280, 281, -213, -160, 120, 239, + -99, -72, -174, 15, 59, -352, 124, -1, -174, -138, + -184, -184, -186, -174, -358, -191, -192, -190, 289, 36, + -285, 352, 338, 339, 228, -235, -234, -154, -74, -74, + -74, -74, 45, 45, 45, 50, 45, 50, 45, -146, + -235, -77, -174, -176, 60, 135, -232, -187, 65, -237, + -99, -99, -140, 17, 124, -194, 286, 75, -271, 60, + 59, -200, -200, -200, 29, -206, 60, 60, 60, 60, + 15, -200, -200, -200, -200, -200, 60, 15, 15, -200, + -200, -200, -200, -200, -206, -203, -198, -196, -196, -201, + 215, 85, -200, -199, -334, 92, -200, 59, 56, 60, + 15, 60, 60, 60, 56, 60, 59, 60, -200, 59, + -140, -207, -297, -296, -295, 38, -64, -85, -290, -174, + -329, -295, -174, -167, -164, -172, -165, 70, 15, -226, + 112, 112, 62, 312, -238, 65, 331, 65, 33, -308, + 367, 362, 364, 124, 29, 30, -94, -95, -96, -102, + -97, -154, -189, -98, 206, 204, 208, -325, 80, 209, + 260, 81, 199, -359, 69, -354, 65, -355, 62, -99, + -166, -166, -166, -88, 56, 124, -71, -100, -174, 112, + 60, -138, -138, -184, -359, -360, 69, 333, -190, 123, + 291, 35, 334, 335, 349, 287, 70, 70, 340, -355, + -138, 59, 94, -92, -91, 55, 56, -93, 55, -91, + 45, 45, -138, -87, 60, -139, 18, 20, -174, 112, + -200, 60, 60, 60, -103, -105, 327, 328, -109, -106, + -108, -107, -111, -110, 156, 157, 121, 160, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 25, 214, + 152, 153, 154, 155, 172, 138, 158, 430, 180, 139, + 181, 140, 182, 141, 183, 142, 143, 184, 144, 147, + 148, 149, 146, 60, -200, 60, 60, 60, 60, 60, + -200, -200, 15, 60, 60, 60, 60, 60, -201, 85, + -198, -195, 60, 93, -200, 91, -104, -110, 121, 156, + 214, 155, 154, 152, 327, 328, -119, -200, -119, -196, + 60, 65, -139, 60, 59, -290, -232, -238, 352, 198, + -279, 474, -306, 362, 20, 20, -64, -99, 60, 59, + -105, -98, -174, 81, -324, -325, -216, -324, 81, 58, + 65, -357, 343, -191, 58, -119, -121, -173, 121, 65, + -170, -71, -174, -138, -352, 124, -138, 65, 65, 70, + 35, 70, 123, 336, -286, -82, -234, -295, -200, 58, + -200, -200, -206, 60, -112, 143, 142, -112, -278, 328, + 327, -272, -274, 58, -273, 58, -273, -272, -272, 58, + 58, -272, -275, 58, -275, -272, -276, 58, -276, -277, + 58, -276, 60, 60, 60, -200, -195, -200, 60, -272, + -273, -272, -275, -272, -112, -112, 60, 60, 23, 60, + 60, 60, -295, -99, -126, 475, 65, 20, 65, -304, + 65, -87, -117, -118, -135, 325, 230, -217, 234, 69, + 235, 359, 236, 199, 238, 239, 240, 210, 241, 242, + 243, 352, 244, 245, 246, 247, 308, 6, 274, -96, + -116, -115, -113, 75, 86, 35, 325, -114, 69, 120, + 253, 231, 254, -134, -188, 204, 80, 81, 313, -189, + -321, -322, -174, -322, -174, -321, -321, -216, -200, 20, + 432, -360, -221, -223, -154, 58, -138, -138, 290, 35, + 70, 35, 337, -83, -86, -280, 329, 70, 70, -156, + 65, -156, 70, 70, 70, 60, -200, -300, -258, -157, + 476, 70, 65, 364, 29, -254, 220, 59, -135, -166, + -166, -160, 120, -166, -166, -166, -166, 237, 237, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, 58, -113, 75, -196, 65, -121, -122, + 35, 252, 248, -123, 35, 232, 233, -125, 58, 260, + 81, 81, -99, 58, 56, 269, 58, 58, 58, -322, + 60, 65, 331, 65, 60, 59, -272, -200, -82, 290, + 60, 60, 60, 60, 59, 60, 60, 60, 59, 60, + 59, 60, -307, 367, -303, -301, 362, 363, 364, 365, + 58, 20, -64, 20, -135, 70, 70, -166, -166, 70, + 65, 65, 65, -166, -166, 70, 65, -176, 70, 70, + 70, 70, 35, 65, -124, 35, 248, 252, 249, 250, + 251, 70, 35, 70, 35, 70, 35, -174, 58, -326, + -327, 65, 70, 58, -222, 58, -221, -323, 278, 279, + 280, 282, 281, -323, -221, -221, -221, 58, -240, -239, + 261, 86, 352, -224, -223, -78, 60, -83, 65, 70, + 70, -309, 202, -305, 366, -301, 20, 364, 20, 20, + -158, -174, -304, -255, 262, 263, -256, -262, 265, -119, + -119, 65, 65, -120, 231, -101, 60, 59, 94, 60, + -200, -128, -127, 428, -221, 60, 60, 60, 60, -221, + 261, -225, 210, 69, 432, 276, 277, -78, 60, 60, + -316, 58, 70, -306, 20, -304, 20, -304, -304, 60, + 59, -260, 266, 58, -258, 58, -258, 81, 279, 232, + 233, 60, -327, 65, 60, -132, -133, -130, -131, 55, + 371, 258, 259, 60, -224, -224, -224, -224, 60, -166, + 65, 275, -320, 25, 60, -315, -314, -155, -310, -174, + 367, 65, -304, -174, -257, 267, 70, -196, 58, -196, + 58, -259, 264, 58, -239, -131, 55, -130, 55, 14, + 13, -134, 70, -172, -319, -318, -317, 60, 59, 124, + -264, 58, 20, 60, -253, 60, -253, 58, 94, -196, + -129, 255, 256, 25, 134, -129, 59, 94, -314, -174, + -265, -263, 220, -256, 60, 60, -253, 70, 60, 75, + 35, 257, -318, 35, -200, 124, 60, 59, 62, -261, + 268, 60, -174, -263, -266, 38, 70, -270, -267, 58, + -135, 222, -270, -135, -269, -268, 267, 223, 60, 59, + 62, 58, -268, -267, -206, 60, } var yyDef = [...]int{ 23, -2, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 534, 535, 536, 537, 0, 340, 341, + 20, 21, 22, 536, 537, 538, 539, 0, 342, 343, 0, 322, 0, 0, 0, 0, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 241, 242, 0, 190, 186, 166, 167, 168, 126, 127, 128, 129, 247, - 0, 0, 410, -2, 538, 539, 540, 541, -2, 353, - 0, 323, 324, 325, 326, 327, 328, 329, 230, 231, - 232, 227, 228, 229, -2, 0, 353, 179, 0, 171, - 171, 0, 430, 0, 0, 441, 463, 23, 388, 0, - 393, 706, 742, 743, 744, 1453, 1454, 1455, 1456, 1457, - 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, - 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, - 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, - 1488, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, - 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, - 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, - 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, - 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, - 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, - 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, - 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, - 1441, 1442, 191, 342, 343, 430, 430, 213, 0, 1323, - 217, 0, 0, 0, 319, 209, 210, 211, 212, 0, - 526, 0, 206, 0, 185, 1381, 0, 0, 0, 0, - 0, 0, 87, 576, 89, 578, 93, 95, 96, 99, - 100, 101, 102, 103, 104, 105, 106, 0, 108, 0, - 110, 0, 113, 114, 115, 0, 124, 125, 579, 580, - 67, -2, 0, 0, 0, 446, 449, 452, 455, 544, - 605, 605, 605, 0, 605, 618, 582, 583, 584, 603, - 604, 358, 354, 355, 356, 357, 418, 0, 420, 423, - 303, 303, 0, 0, 294, 295, 0, 312, 303, 303, - 312, 0, 1109, 0, 0, 286, 287, 288, 292, 293, - 313, 247, 247, 360, 180, 181, 170, 0, 175, 0, - 169, 1381, 0, 140, 0, 145, 0, 1330, 1395, 1345, - 0, 0, 1363, 0, 164, -2, 425, 0, 431, 0, - 430, 0, 247, 247, 247, 247, 247, 247, 0, 0, - 0, 464, 465, 460, 461, 462, 466, 467, 3, 0, - 0, 392, 0, 425, -2, 0, 214, 745, 0, 0, - 218, 219, 0, 0, 233, 0, 236, 222, 223, 224, - 0, 0, 208, 0, 0, 187, 0, 0, 0, 248, - 81, 0, 0, 0, 0, 0, 94, 123, 97, 98, - 0, 118, 120, 122, 121, 107, 119, 109, 111, 112, - 117, 0, 68, 413, 0, 394, 0, 443, 445, 0, - 447, 448, 450, 451, 453, 454, 456, 457, 0, 605, - 545, 0, 0, 0, 0, 0, 0, 360, 359, 0, - 419, 0, 0, 472, 0, 472, 0, 308, 309, 303, - 303, 296, 305, 0, 310, 311, 0, 472, 472, 0, - 0, 605, 1110, 1111, 0, 0, 0, 361, 0, 0, - 173, 0, 178, 130, 135, 133, 134, 136, 0, 0, - 0, 0, 0, 162, 163, 0, 0, 0, 0, 0, - 153, 156, 700, 701, 573, 574, 157, 158, 0, 394, - 426, 442, 444, 439, 440, 0, 0, 0, 0, 0, - 0, 339, 480, 474, 476, 521, 31, 0, 999, 742, - 1004, -2, 1454, 1455, 1456, 1457, 1458, 1459, 1460, -2, - 1462, -2, -2, 1465, 1466, 1467, 1469, -2, -2, -2, - -2, -2, -2, 1476, -2, -2, -2, 1480, 1481, -2, - -2, 1484, 1485, 1486, 1487, 1488, -2, -2, -2, -2, - -2, -2, -2, -2, 1015, 813, 814, 815, 816, 0, - 0, 0, 0, 0, 823, 824, 0, 837, 0, 830, - 831, 832, 833, 834, 43, 44, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 962, 800, 0, 0, - 0, 947, 0, 937, 0, 975, 0, 0, 0, 0, - 0, 0, 45, 46, 953, 955, 956, 958, 959, 960, - 961, 964, 965, 966, 969, 970, 971, 972, 973, 974, - 977, 979, 949, 950, 951, 952, 941, 942, 943, 944, - 945, 946, 480, 362, 380, 364, 0, 369, 0, 707, - 394, 416, 394, 0, 215, 0, 220, 0, 0, 235, - 237, 238, 239, 225, 226, 320, 204, 205, 197, 198, - 199, 200, 201, 202, 203, 207, 41, 0, 188, 189, - 81, 0, 0, 82, 83, 84, 85, 86, 88, 72, - 332, 334, 566, 577, 0, 569, 0, 91, 116, 0, - 0, 414, 427, 31, 432, 433, 436, 0, 0, 0, - 547, 0, 0, 563, 575, 597, 531, 532, 533, -2, - 0, 421, 0, 0, 508, 283, 0, 304, 284, 472, - 472, 472, 303, 0, 305, 0, 305, 299, 300, 0, - 314, 316, 0, 0, 245, 485, 0, 486, 487, 483, - 510, 513, 516, 0, 182, 183, 0, 0, 177, 0, - 0, 137, 138, 139, 146, 141, 143, 0, 0, 147, - 159, 160, 161, 386, 387, 0, 0, 0, 151, 152, - 0, 165, 412, 330, 331, 335, 0, 337, 704, 338, - 527, 528, 472, 0, 481, 0, 477, 0, 0, 0, - 0, 522, 0, 524, 0, 994, 0, 0, 1023, 1024, - 1025, 1026, 1027, 1028, 1029, 986, 982, 982, 982, 0, - 982, 0, 0, 922, 0, 0, 982, 982, 982, 982, - 982, 923, 0, 982, 982, 982, 982, 936, 930, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2, 988, 0, 819, - 820, 821, 822, 825, 0, 838, 0, 0, 986, 986, - 986, 925, 0, 0, 927, 938, 0, 931, 986, 0, - 986, 935, 982, 0, 472, 363, 377, 0, 381, 0, - 0, 373, 375, 368, 370, 0, 0, 390, 415, 417, - 746, 0, 1116, -2, 1118, -2, -2, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, - 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, - 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, - 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, - 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, - 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 0, - 221, 234, 0, 0, 0, 0, 75, 0, 76, 80, - 70, 0, 0, 0, 568, 0, 565, 0, 90, 0, - 64, 396, 0, 0, 0, 0, 435, 437, 438, 423, - 0, 0, 553, 1112, 606, 0, 0, 0, 0, 602, - -2, 609, 0, 615, 0, 0, 347, 351, 23, 424, - 0, 473, 285, 289, 290, 472, 306, 303, 307, 303, - 305, 0, 315, 318, 553, 249, 0, 0, 0, 0, - 0, 0, 501, 0, 0, 500, 0, 0, 0, 0, - 0, 0, 514, 515, 517, 0, 519, 520, 529, 530, - 0, 430, 184, 172, 174, 0, 132, 0, 0, 0, - 148, 149, 150, 154, 155, 0, 0, 470, 475, 482, - 485, 990, 991, 992, 993, 523, 525, 32, 478, 995, - 0, 997, 1000, 1005, 1006, 1002, 0, 1020, -2, -2, - 0, 987, 988, 0, 983, 984, 0, 0, 0, 0, - 0, 0, 0, 939, 0, 0, 893, 894, 895, 896, - 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, - 917, 918, 919, 920, 921, 0, 0, 0, 0, 0, - 0, 0, 888, 889, 890, 0, 0, 0, 0, 801, - 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, - 812, 1007, 1018, 1019, 0, 0, 0, 0, 0, 1016, - 1011, 0, 817, 0, 835, 839, 0, 0, 981, 0, - 988, 0, 0, 948, 926, 0, 0, 0, 0, 0, - 0, 470, 380, 382, 0, 0, 380, 0, 0, 0, - 389, 0, 0, 0, 321, 42, 240, 0, 0, 0, - 0, 333, 0, 567, 72, 0, 0, 92, 0, 65, - 66, 400, 0, 428, 429, 32, 434, 0, 0, 708, - 556, 554, 555, 0, 1113, 0, 564, 0, 598, 599, - 600, 601, 610, 1112, 1112, 1112, 388, 0, -2, 0, - 0, 349, 0, 0, 509, 297, 472, 472, 303, 317, - 556, 560, 250, 251, 253, 254, 255, 0, 0, 0, - 0, 472, 194, 0, 504, 498, 0, 491, 502, 503, - 494, 0, 496, 0, 492, 493, 472, 484, 423, 518, - 512, 176, 131, 0, 271, 142, 336, 705, 468, 0, - 0, 996, 998, 1001, 1003, 875, 0, 0, 0, 0, - 0, 0, 864, 858, 859, 940, 0, 0, 0, 0, - 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, - 0, 1008, 1016, 1012, 0, 1009, 0, 0, 989, 0, - 840, 0, 0, 0, 0, 876, 0, 880, 924, 928, - 0, 932, 0, 934, 0, 0, 468, 378, 0, 383, - 384, 380, 367, 374, 366, 376, 371, 372, 391, 747, - 1117, 1114, 1115, 216, 0, 72, 77, 78, 79, 73, - 71, 570, 0, 572, 0, 402, 53, 0, 0, 0, - 0, 0, 0, 709, 710, 712, 713, 0, 0, 715, - 769, 0, 724, 605, 724, 0, 0, 726, 727, 546, - 0, 0, 549, 249, 559, 0, 0, 0, 0, 516, - 0, 0, 472, 348, 351, 352, 422, 301, 298, 472, - 243, 244, 0, 0, 252, 0, 257, 258, 0, 0, - 0, 270, 266, 267, 268, 246, 430, 0, 0, 488, - 505, 0, 0, 489, 0, 490, 495, 497, 193, 511, - 144, 458, 0, 0, 33, 479, 989, 860, 861, 862, - 0, 842, 854, 854, 1104, 1045, 1046, 1047, 1091, 1049, - 1095, 1095, 1091, 1091, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 0, 0, 1068, 1091, 1093, 1093, 1091, - 1088, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, - 1059, 1060, 1061, 1062, 1063, 1098, 1098, 1101, 1098, 863, - 0, 882, 865, 866, 869, 867, 0, 0, 0, 881, - 870, 871, 857, 985, 1010, 0, 1017, 1013, 818, 826, - 836, 0, 0, 845, 1091, 1095, 848, 1091, 1093, 1091, - 854, 854, 0, 0, 0, 0, 868, 0, 459, 379, - 0, 365, 74, 69, 571, 0, 404, 0, 401, 0, - 0, 0, 542, 423, -2, 0, -2, 714, 770, 736, - 736, 725, 736, 736, 605, 0, 557, 548, 0, 560, - 0, 611, 612, 702, 703, 613, 472, 472, -2, 345, - 350, 0, 302, 561, 562, 0, 259, 260, 0, 263, - 269, 425, 195, 196, 506, 0, 499, 469, 471, 827, - 843, 855, 856, 844, 1107, 1105, 1106, 1048, 1092, 0, - 1073, 0, 1074, 1075, 1076, 0, 0, 1069, 1070, 0, - 1071, 1072, 1064, 0, 1065, 1066, 0, 1067, 879, 884, - 885, 0, 1014, 841, 828, 846, 847, 849, 850, 851, - 852, 853, 829, 877, 0, 929, 933, 887, 385, 55, - 406, 0, 403, 0, 397, 399, 63, 0, 619, -2, - 656, 1112, 1112, 0, 1112, 1112, 1112, 1112, 0, 0, - 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, - 1112, 1112, 1112, 1112, 0, 711, 738, -2, 750, 752, - 0, 0, 755, 756, 0, 0, 0, 0, 792, 762, - 0, 0, 1032, 1033, 0, 768, 0, 728, 737, 0, - 737, 0, 0, 736, 0, 0, 0, 558, 0, 593, - 1091, 0, 430, 346, 256, 261, 0, 264, 265, 192, - 0, 1044, 1108, 0, 0, 0, 1089, 0, 0, 0, - 0, 886, 0, 49, 0, 395, 0, 405, 54, 0, - 0, 616, 0, 614, 658, 0, 0, 1112, 1112, 0, - 0, 0, 0, 1112, 1112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 751, 753, 754, 757, 758, 759, 797, 798, 799, 760, - 794, 795, 796, 761, 0, 0, 1030, 1031, 790, 0, - 0, 0, 0, 0, 0, 0, 722, 550, 0, 552, - 586, 0, 436, 0, 425, 262, 507, 1097, 1096, 1086, - 0, 1087, 1094, 1099, 0, 1102, 0, 878, 47, 51, - 56, 57, 0, 0, 0, 0, 0, 0, 543, 652, - 657, 659, 660, 0, 0, 663, 664, 665, 666, 0, - 0, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 694, 695, 696, 697, 698, 699, 679, 680, 681, - 682, 683, 684, 691, 0, 0, 688, 0, 0, 0, - 785, 0, 0, 729, 731, 732, 733, 734, 735, 730, - 0, 0, 0, 0, 721, 723, 765, 0, 551, 585, - 594, 595, 436, 344, 1090, 0, 0, 34, 0, 53, - 0, 58, 0, 0, 0, 0, 0, 408, 398, 641, - 0, 0, 647, 0, 653, 661, 662, 667, 668, 685, - 0, 0, 687, 0, 0, 793, 0, 772, 786, 0, - 0, 586, 586, 586, 586, 0, 766, 587, 1112, 0, - 0, 591, 592, 596, 1100, 1103, 25, 0, 0, 50, - 0, 59, 0, 61, 62, 407, 0, 621, 0, 0, - 0, 0, 0, 650, 0, 692, 693, 686, 689, 690, - 763, 771, 773, 774, 775, 0, 787, 788, 789, 791, - 716, 717, 718, 719, 0, 0, 589, 0, 24, 0, - 35, 0, 37, 39, 40, 739, 48, 52, 60, 409, - 623, 0, 642, 0, 0, 0, 0, 0, 0, 0, - 764, 776, 0, 777, 0, 0, 0, 720, 588, 590, - 26, 27, 0, 36, 0, 0, 620, 0, 652, 643, - 0, 645, 0, 0, 0, 0, 778, 780, 781, 0, - 0, 779, 0, 0, 38, 740, 0, 625, 0, 639, - 644, 646, 0, 651, 649, 782, 784, 783, 28, 29, - 30, 0, 624, 0, 637, 622, 0, 648, 741, 626, - -2, 0, 640, 627, -2, 0, 635, 0, 628, 636, - 0, 631, 0, 0, 630, 0, -2, 0, 632, -2, - 0, 638, + 0, 0, 412, -2, 540, 541, 542, 543, -2, 355, + 0, 323, 324, 325, 326, 327, 328, 329, 330, 230, + 231, 232, 227, 228, 229, -2, 0, 355, 179, 0, + 171, 171, 0, 432, 0, 0, 443, 465, 23, 390, + 0, 395, 708, 744, 745, 746, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, + 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, + 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, + 1489, 1490, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, + 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, + 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, + 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, + 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, + 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, + 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, + 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, + 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, + 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, + 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, + 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, + 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, + 1442, 1443, 1444, 191, 344, 345, 432, 432, 213, 0, + 1325, 217, 0, 0, 0, 319, 209, 210, 211, 212, + 0, 528, 0, 206, 0, 185, 1383, 0, 0, 0, + 0, 0, 0, 87, 578, 89, 580, 93, 95, 96, + 99, 100, 101, 102, 103, 104, 105, 106, 0, 108, + 0, 110, 0, 113, 114, 115, 0, 124, 125, 581, + 582, 67, -2, 0, 0, 0, 448, 451, 454, 457, + 546, 607, 607, 607, 0, 607, 620, 584, 585, 586, + 605, 606, 360, 356, 357, 358, 359, 420, 0, 422, + 425, 303, 303, 0, 0, 294, 295, 0, 312, 303, + 303, 312, 0, 1111, 0, 0, 286, 287, 288, 292, + 293, 313, 247, 247, 362, 180, 181, 170, 0, 175, + 0, 169, 1383, 0, 140, 0, 145, 0, 1332, 1397, + 1347, 0, 0, 1365, 0, 164, -2, 427, 0, 433, + 0, 432, 0, 247, 247, 247, 247, 247, 247, 247, + 0, 0, 0, 466, 467, 462, 463, 464, 468, 469, + 3, 0, 0, 394, 0, 427, -2, 0, 214, 747, + 0, 0, 218, 219, 0, 0, 233, 0, 236, 222, + 223, 224, 0, 0, 208, 0, 0, 187, 0, 0, + 0, 248, 81, 0, 0, 0, 0, 0, 94, 123, + 97, 98, 0, 118, 120, 122, 121, 107, 119, 109, + 111, 112, 117, 0, 68, 415, 0, 396, 0, 445, + 447, 0, 449, 450, 452, 453, 455, 456, 458, 459, + 0, 607, 547, 0, 0, 0, 0, 0, 0, 362, + 361, 0, 421, 0, 0, 474, 0, 474, 0, 308, + 309, 303, 303, 296, 305, 0, 310, 311, 0, 474, + 474, 0, 0, 607, 1112, 1113, 0, 0, 0, 363, + 0, 0, 173, 0, 178, 130, 135, 133, 134, 136, + 0, 0, 0, 0, 0, 162, 163, 0, 0, 0, + 0, 0, 153, 156, 702, 703, 575, 576, 157, 158, + 0, 396, 428, 444, 446, 441, 442, 0, 0, 0, + 0, 0, 0, 0, 341, 482, 476, 478, 523, 31, + 0, 1001, 744, 1006, -2, 1456, 1457, 1458, 1459, 1460, + 1461, 1462, -2, 1464, -2, -2, 1467, 1468, 1469, 1471, + -2, -2, -2, -2, -2, -2, 1478, -2, -2, -2, + 1482, 1483, -2, -2, 1486, 1487, 1488, 1489, 1490, -2, + -2, -2, -2, -2, -2, -2, -2, 1017, 815, 816, + 817, 818, 0, 0, 0, 0, 0, 825, 826, 0, + 839, 0, 832, 833, 834, 835, 836, 43, 44, 1036, + 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 964, + 802, 0, 0, 0, 949, 0, 939, 0, 977, 0, + 0, 0, 0, 0, 0, 45, 46, 955, 957, 958, + 960, 961, 962, 963, 966, 967, 968, 971, 972, 973, + 974, 975, 976, 979, 981, 951, 952, 953, 954, 943, + 944, 945, 946, 947, 948, 482, 364, 382, 366, 0, + 371, 0, 709, 396, 418, 396, 0, 215, 0, 220, + 0, 0, 235, 237, 238, 239, 225, 226, 320, 204, + 205, 197, 198, 199, 200, 201, 202, 203, 207, 41, + 0, 188, 189, 81, 0, 0, 82, 83, 84, 85, + 86, 88, 72, 333, 335, 568, 579, 0, 571, 0, + 91, 116, 0, 0, 416, 429, 31, 434, 435, 438, + 0, 0, 0, 549, 0, 0, 565, 577, 599, 533, + 534, 535, -2, 0, 423, 0, 0, 510, 283, 0, + 304, 284, 474, 474, 474, 303, 0, 305, 0, 305, + 299, 300, 0, 314, 316, 0, 0, 245, 487, 0, + 488, 489, 485, 512, 515, 518, 0, 182, 183, 0, + 0, 177, 0, 0, 137, 138, 139, 146, 141, 143, + 0, 0, 147, 159, 160, 161, 388, 389, 0, 0, + 0, 151, 152, 0, 165, 414, 331, 332, 336, 0, + 338, 706, 339, 340, 529, 530, 474, 0, 483, 0, + 479, 0, 0, 0, 0, 524, 0, 526, 0, 996, + 0, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 988, + 984, 984, 984, 0, 984, 0, 0, 924, 0, 0, + 984, 984, 984, 984, 984, 925, 0, 984, 984, 984, + 984, 938, 932, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -2, 990, 0, 821, 822, 823, 824, 827, 0, 840, + 0, 0, 988, 988, 988, 927, 0, 0, 929, 940, + 0, 933, 988, 0, 988, 937, 984, 0, 474, 365, + 379, 0, 383, 0, 0, 375, 377, 370, 372, 0, + 0, 392, 417, 419, 748, 0, 1118, -2, 1120, -2, + -2, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 0, 221, 234, 0, 0, 0, 0, + 75, 0, 76, 80, 70, 0, 0, 0, 570, 0, + 567, 0, 90, 0, 64, 398, 0, 0, 0, 0, + 437, 439, 440, 425, 0, 0, 555, 1114, 608, 0, + 0, 0, 0, 604, -2, 611, 0, 617, 0, 0, + 349, 353, 23, 426, 0, 475, 285, 289, 290, 474, + 306, 303, 307, 303, 305, 0, 315, 318, 555, 249, + 0, 0, 0, 0, 0, 0, 503, 0, 0, 502, + 0, 0, 0, 0, 0, 0, 516, 517, 519, 0, + 521, 522, 531, 532, 0, 432, 184, 172, 174, 0, + 132, 0, 0, 0, 148, 149, 150, 154, 155, 0, + 0, 472, 477, 484, 487, 992, 993, 994, 995, 525, + 527, 32, 480, 997, 0, 999, 1002, 1007, 1008, 1004, + 0, 1022, -2, -2, 0, 989, 990, 0, 985, 986, + 0, 0, 0, 0, 0, 0, 0, 941, 0, 0, + 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, + 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, + 915, 916, 917, 918, 919, 920, 921, 922, 923, 0, + 0, 0, 0, 0, 0, 0, 890, 891, 892, 0, + 0, 0, 0, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 1009, 1020, 1021, 0, 0, + 0, 0, 0, 1018, 1013, 0, 819, 0, 837, 841, + 0, 0, 983, 0, 990, 0, 0, 950, 928, 0, + 0, 0, 0, 0, 0, 472, 382, 384, 0, 0, + 382, 0, 0, 0, 391, 0, 0, 0, 321, 42, + 240, 0, 0, 0, 0, 334, 0, 569, 72, 0, + 0, 92, 0, 65, 66, 402, 0, 430, 431, 32, + 436, 0, 0, 710, 558, 556, 557, 0, 1115, 0, + 566, 0, 600, 601, 602, 603, 612, 1114, 1114, 1114, + 390, 0, -2, 0, 0, 351, 0, 0, 511, 297, + 474, 474, 303, 317, 558, 562, 250, 251, 253, 254, + 255, 0, 0, 0, 0, 474, 194, 0, 506, 500, + 0, 493, 504, 505, 496, 0, 498, 0, 494, 495, + 474, 486, 425, 520, 514, 176, 131, 0, 271, 142, + 337, 707, 470, 0, 0, 998, 1000, 1003, 1005, 877, + 0, 0, 0, 0, 0, 0, 866, 860, 861, 942, + 0, 0, 0, 0, 0, 0, 885, 0, 0, 0, + 0, 0, 0, 0, 0, 1010, 1018, 1014, 0, 1011, + 0, 0, 991, 0, 842, 0, 0, 0, 0, 878, + 0, 882, 926, 930, 0, 934, 0, 936, 0, 0, + 470, 380, 0, 385, 386, 382, 369, 376, 368, 378, + 373, 374, 393, 749, 1119, 1116, 1117, 216, 0, 72, + 77, 78, 79, 73, 71, 572, 0, 574, 0, 404, + 53, 0, 0, 0, 0, 0, 0, 711, 712, 714, + 715, 0, 0, 717, 771, 0, 726, 607, 726, 0, + 0, 728, 729, 548, 0, 0, 551, 249, 561, 0, + 0, 0, 0, 518, 0, 0, 474, 350, 353, 354, + 424, 301, 298, 474, 243, 244, 0, 0, 252, 0, + 257, 258, 0, 0, 0, 270, 266, 267, 268, 246, + 432, 0, 0, 490, 507, 0, 0, 491, 0, 492, + 497, 499, 193, 513, 144, 460, 0, 0, 33, 481, + 991, 862, 863, 864, 0, 844, 856, 856, 1106, 1047, + 1048, 1049, 1093, 1051, 1097, 1097, 1093, 1093, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 0, 0, 1070, + 1093, 1095, 1095, 1093, 1090, 1052, 1053, 1054, 1055, 1056, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1100, + 1100, 1103, 1100, 865, 0, 884, 867, 868, 871, 869, + 0, 0, 0, 883, 872, 873, 859, 987, 1012, 0, + 1019, 1015, 820, 828, 838, 0, 0, 847, 1093, 1097, + 850, 1093, 1095, 1093, 856, 856, 0, 0, 0, 0, + 870, 0, 461, 381, 0, 367, 74, 69, 573, 0, + 406, 0, 403, 0, 0, 0, 544, 425, -2, 0, + -2, 716, 772, 738, 738, 727, 738, 738, 607, 0, + 559, 550, 0, 562, 0, 613, 614, 704, 705, 615, + 474, 474, -2, 347, 352, 0, 302, 563, 564, 0, + 259, 260, 0, 263, 269, 427, 195, 196, 508, 0, + 501, 471, 473, 829, 845, 857, 858, 846, 1109, 1107, + 1108, 1050, 1094, 0, 1075, 0, 1076, 1077, 1078, 0, + 0, 1071, 1072, 0, 1073, 1074, 1066, 0, 1067, 1068, + 0, 1069, 881, 886, 887, 0, 1016, 843, 830, 848, + 849, 851, 852, 853, 854, 855, 831, 879, 0, 931, + 935, 889, 387, 55, 408, 0, 405, 0, 399, 401, + 63, 0, 621, -2, 658, 1114, 1114, 0, 1114, 1114, + 1114, 1114, 0, 0, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 0, 713, + 740, -2, 752, 754, 0, 0, 757, 758, 0, 0, + 0, 0, 794, 764, 0, 0, 1034, 1035, 0, 770, + 0, 730, 739, 0, 739, 0, 0, 738, 0, 0, + 0, 560, 0, 595, 1093, 0, 432, 348, 256, 261, + 0, 264, 265, 192, 0, 1046, 1110, 0, 0, 0, + 1091, 0, 0, 0, 0, 888, 0, 49, 0, 397, + 0, 407, 54, 0, 0, 618, 0, 616, 660, 0, + 0, 1114, 1114, 0, 0, 0, 0, 1114, 1114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 753, 755, 756, 759, 760, 761, + 799, 800, 801, 762, 796, 797, 798, 763, 0, 0, + 1032, 1033, 792, 0, 0, 0, 0, 0, 0, 0, + 724, 552, 0, 554, 588, 0, 438, 0, 427, 262, + 509, 1099, 1098, 1088, 0, 1089, 1096, 1101, 0, 1104, + 0, 880, 47, 51, 56, 57, 0, 0, 0, 0, + 0, 0, 545, 654, 659, 661, 662, 0, 0, 665, + 666, 667, 668, 0, 0, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 696, 697, 698, 699, 700, + 701, 681, 682, 683, 684, 685, 686, 693, 0, 0, + 690, 0, 0, 0, 787, 0, 0, 731, 733, 734, + 735, 736, 737, 732, 0, 0, 0, 0, 723, 725, + 767, 0, 553, 587, 596, 597, 438, 346, 1092, 0, + 0, 34, 0, 53, 0, 58, 0, 0, 0, 0, + 0, 410, 400, 643, 0, 0, 649, 0, 655, 663, + 664, 669, 670, 687, 0, 0, 689, 0, 0, 795, + 0, 774, 788, 0, 0, 588, 588, 588, 588, 0, + 768, 589, 1114, 0, 0, 593, 594, 598, 1102, 1105, + 25, 0, 0, 50, 0, 59, 0, 61, 62, 409, + 0, 623, 0, 0, 0, 0, 0, 652, 0, 694, + 695, 688, 691, 692, 765, 773, 775, 776, 777, 0, + 789, 790, 791, 793, 718, 719, 720, 721, 0, 0, + 591, 0, 24, 0, 35, 0, 37, 39, 40, 741, + 48, 52, 60, 411, 625, 0, 644, 0, 0, 0, + 0, 0, 0, 0, 766, 778, 0, 779, 0, 0, + 0, 722, 590, 592, 26, 27, 0, 36, 0, 0, + 622, 0, 654, 645, 0, 647, 0, 0, 0, 0, + 780, 782, 783, 0, 0, 781, 0, 0, 38, 742, + 0, 627, 0, 641, 646, 648, 0, 653, 651, 784, + 786, 785, 28, 29, 30, 0, 626, 0, 639, 624, + 0, 650, 743, 628, -2, 0, 642, 629, -2, 0, + 637, 0, 630, 638, 0, 633, 0, 0, 632, 0, + -2, 0, 634, -2, 0, 640, } var yyTok1 = [...]int{ @@ -7715,10 +7717,10 @@ yydefault: yyLOCAL = tree.SetUnresolvedObjectName(3, [3]string{yyDollar[5].str, yyDollar[3].str, yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 330: + case 331: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2167 +//line mysql_sql.y:2168 { yyLOCAL = &tree.DropAccount{ IfExists: yyDollar[3].boolValUnion(), @@ -7726,10 +7728,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 331: + case 332: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2176 +//line mysql_sql.y:2177 { yyLOCAL = &tree.DropUser{ IfExists: yyDollar[3].boolValUnion(), @@ -7737,26 +7739,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 332: + case 333: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:2185 +//line mysql_sql.y:2186 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 333: + case 334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:2189 +//line mysql_sql.y:2190 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 334: + case 335: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:2195 +//line mysql_sql.y:2196 { yyLOCAL = &tree.User{ Username: yyDollar[1].usernameRecordUnion().Username, @@ -7764,10 +7766,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 335: + case 336: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2204 +//line mysql_sql.y:2205 { yyLOCAL = &tree.DropRole{ IfExists: yyDollar[3].boolValUnion(), @@ -7775,10 +7777,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 336: + case 337: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2213 +//line mysql_sql.y:2214 { yyLOCAL = &tree.DropIndex{ Name: tree.Identifier(yyDollar[4].str), @@ -7787,52 +7789,60 @@ yydefault: } } yyVAL.union = yyLOCAL - case 337: + case 338: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2223 +//line mysql_sql.y:2224 { yyLOCAL = &tree.DropTable{IfExists: yyDollar[3].boolValUnion(), Names: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 338: + case 339: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2229 +//line mysql_sql.y:2230 + { + yyLOCAL = &tree.DropView{IfExists: yyDollar[3].boolValUnion(), Names: yyDollar[4].tableNamesUnion()} + } + yyVAL.union = yyLOCAL + case 340: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL tree.Statement +//line mysql_sql.y:2236 { yyLOCAL = &tree.DropDatabase{Name: tree.Identifier(yyDollar[4].str), IfExists: yyDollar[3].boolValUnion()} } yyVAL.union = yyLOCAL - case 339: + case 341: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2235 +//line mysql_sql.y:2242 { yyLOCAL = tree.NewDeallocate(tree.Identifier(yyDollar[3].str), true) } yyVAL.union = yyLOCAL - case 342: + case 344: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2243 +//line mysql_sql.y:2250 { yyDollar[2].statementUnion().(*tree.Delete).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() } yyVAL.union = yyLOCAL - case 343: + case 345: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2248 +//line mysql_sql.y:2255 { yyDollar[2].statementUnion().(*tree.Delete).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() } yyVAL.union = yyLOCAL - case 344: + case 346: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2255 +//line mysql_sql.y:2262 { // Single-Table Syntax t := &tree.AliasedTableExpr{ @@ -7849,10 +7859,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 345: + case 347: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2271 +//line mysql_sql.y:2278 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -7862,10 +7872,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 346: + case 348: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2284 +//line mysql_sql.y:2291 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -7875,69 +7885,69 @@ yydefault: } } yyVAL.union = yyLOCAL - case 347: + case 349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:2295 +//line mysql_sql.y:2302 { yyLOCAL = tree.TableExprs{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 348: + case 350: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:2299 +//line mysql_sql.y:2306 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 349: + case 351: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:2305 +//line mysql_sql.y:2312 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[1].str), prefix) } yyVAL.union = yyLOCAL - case 350: + case 352: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:2310 +//line mysql_sql.y:2317 { prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(yyDollar[1].str), ExplicitSchema: true} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[3].str), prefix) } yyVAL.union = yyLOCAL - case 351: + case 353: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2317 +//line mysql_sql.y:2324 { } - case 352: + case 354: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:2319 +//line mysql_sql.y:2326 { } - case 353: + case 355: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2322 +//line mysql_sql.y:2329 { } - case 358: + case 360: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2331 +//line mysql_sql.y:2338 { } - case 360: + case 362: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2335 +//line mysql_sql.y:2342 { } - case 362: + case 364: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2340 +//line mysql_sql.y:2347 { ins := yyDollar[4].insertUnion() ins.Table = yyDollar[2].tableExprUnion() @@ -7945,10 +7955,10 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 363: + case 365: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2349 +//line mysql_sql.y:2356 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -7956,20 +7966,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 364: + case 366: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2356 +//line mysql_sql.y:2363 { yyLOCAL = &tree.Insert{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 365: + case 367: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2362 +//line mysql_sql.y:2369 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -7978,10 +7988,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 366: + case 368: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2370 +//line mysql_sql.y:2377 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -7989,10 +7999,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 367: + case 369: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2377 +//line mysql_sql.y:2384 { yyLOCAL = &tree.Insert{ Columns: yyDollar[2].identifierListUnion(), @@ -8000,10 +8010,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 368: + case 370: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2384 +//line mysql_sql.y:2391 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of insert can not be empty") @@ -8022,34 +8032,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 369: + case 371: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2403 +//line mysql_sql.y:2410 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 370: + case 372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2407 +//line mysql_sql.y:2414 { yyLOCAL = []*tree.Assignment{yyDollar[1].assignmentUnion()} } yyVAL.union = yyLOCAL - case 371: + case 373: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2411 +//line mysql_sql.y:2418 { yyLOCAL = append(yyDollar[1].assignmentsUnion(), yyDollar[3].assignmentUnion()) } yyVAL.union = yyLOCAL - case 372: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Assignment -//line mysql_sql.y:2417 +//line mysql_sql.y:2424 { yyLOCAL = &tree.Assignment{ Column: tree.Identifier(yyDollar[1].str), @@ -8057,155 +8067,155 @@ yydefault: } } yyVAL.union = yyLOCAL - case 373: + case 375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2426 +//line mysql_sql.y:2433 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 374: + case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2430 +//line mysql_sql.y:2437 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 375: + case 377: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:2436 +//line mysql_sql.y:2443 { yyVAL.str = yyDollar[1].str } - case 376: + case 378: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:2440 +//line mysql_sql.y:2447 { yyVAL.str = yyDollar[3].str } - case 377: + case 379: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:2446 +//line mysql_sql.y:2453 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 378: + case 380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:2450 +//line mysql_sql.y:2457 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 379: + case 381: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2456 +//line mysql_sql.y:2463 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 380: + case 382: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2461 +//line mysql_sql.y:2468 { } - case 382: + case 384: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2465 +//line mysql_sql.y:2472 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 384: + case 386: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2472 +//line mysql_sql.y:2479 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 385: + case 387: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2476 +//line mysql_sql.y:2483 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 387: + case 389: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:2483 +//line mysql_sql.y:2490 { yyLOCAL = &tree.DefaultVal{} } yyVAL.union = yyLOCAL - case 388: + case 390: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2488 +//line mysql_sql.y:2495 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 389: + case 391: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2492 +//line mysql_sql.y:2499 { yyLOCAL = yyDollar[3].identifierListUnion() } yyVAL.union = yyLOCAL - case 390: + case 392: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2498 +//line mysql_sql.y:2505 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 391: + case 393: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2502 +//line mysql_sql.y:2509 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 392: + case 394: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:2508 +//line mysql_sql.y:2515 { yyLOCAL = yyDollar[2].tableNameUnion() } yyVAL.union = yyLOCAL - case 393: + case 395: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:2512 +//line mysql_sql.y:2519 { yyLOCAL = yyDollar[1].tableNameUnion() } yyVAL.union = yyLOCAL - case 394: + case 396: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:2517 +//line mysql_sql.y:2524 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 395: + case 397: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:2521 +//line mysql_sql.y:2528 { yyLOCAL = &tree.ExportParam{ Outfile: true, @@ -8218,10 +8228,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 396: + case 398: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2534 +//line mysql_sql.y:2541 { yyLOCAL = &tree.Fields{ Terminated: ",", @@ -8229,10 +8239,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 397: + case 399: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2541 +//line mysql_sql.y:2548 { yyLOCAL = &tree.Fields{ Terminated: yyDollar[4].str, @@ -8240,10 +8250,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 398: + case 400: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2548 +//line mysql_sql.y:2555 { str := yyDollar[7].str if str != "\\" && len(str) > 1 { @@ -8262,10 +8272,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 399: + case 401: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2566 +//line mysql_sql.y:2573 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -8284,38 +8294,38 @@ yydefault: } } yyVAL.union = yyLOCAL - case 400: + case 402: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2585 +//line mysql_sql.y:2592 { yyLOCAL = &tree.Lines{ TerminatedBy: "\n", } } yyVAL.union = yyLOCAL - case 401: + case 403: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2591 +//line mysql_sql.y:2598 { yyLOCAL = &tree.Lines{ TerminatedBy: yyDollar[2].str, } } yyVAL.union = yyLOCAL - case 402: + case 404: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2598 +//line mysql_sql.y:2605 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 403: + case 405: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2602 +//line mysql_sql.y:2609 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -8328,115 +8338,115 @@ yydefault: } } yyVAL.union = yyLOCAL - case 404: + case 406: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2615 +//line mysql_sql.y:2622 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 405: + case 407: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2619 +//line mysql_sql.y:2626 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 406: + case 408: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2624 +//line mysql_sql.y:2631 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 407: + case 409: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2628 +//line mysql_sql.y:2635 { yyLOCAL = yyDollar[3].strsUnion() } yyVAL.union = yyLOCAL - case 408: + case 410: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2635 +//line mysql_sql.y:2642 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 409: + case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2640 +//line mysql_sql.y:2647 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 411: + case 413: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2647 +//line mysql_sql.y:2654 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion()} } yyVAL.union = yyLOCAL - case 412: + case 414: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2653 +//line mysql_sql.y:2660 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Limit: yyDollar[3].limitUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 413: + case 415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2657 +//line mysql_sql.y:2664 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Ep: yyDollar[3].exportParmUnion()} } yyVAL.union = yyLOCAL - case 414: + case 416: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2661 +//line mysql_sql.y:2668 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Limit: yyDollar[3].limitUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 415: + case 417: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2665 +//line mysql_sql.y:2672 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 416: + case 418: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2669 +//line mysql_sql.y:2676 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 417: + case 419: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2673 +//line mysql_sql.y:2680 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 418: + case 420: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:2679 +//line mysql_sql.y:2686 { yyLOCAL = &tree.With{ IsRecursive: false, @@ -8444,10 +8454,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 419: + case 421: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:2686 +//line mysql_sql.y:2693 { yyLOCAL = &tree.With{ IsRecursive: true, @@ -8455,26 +8465,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 420: + case 422: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:2695 +//line mysql_sql.y:2702 { yyLOCAL = []*tree.CTE{yyDollar[1].cteUnion()} } yyVAL.union = yyLOCAL - case 421: + case 423: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:2699 +//line mysql_sql.y:2706 { yyLOCAL = append(yyDollar[1].cteListUnion(), yyDollar[3].cteUnion()) } yyVAL.union = yyLOCAL - case 422: + case 424: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.CTE -//line mysql_sql.y:2705 +//line mysql_sql.y:2712 { yyLOCAL = &tree.CTE{ Name: &tree.AliasClause{Alias: tree.Identifier(yyDollar[1].str), Cols: yyDollar[2].identifierListUnion()}, @@ -8482,162 +8492,162 @@ yydefault: } } yyVAL.union = yyLOCAL - case 423: + case 425: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2713 +//line mysql_sql.y:2720 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 424: + case 426: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2717 +//line mysql_sql.y:2724 { yyLOCAL = yyDollar[2].identifierListUnion() } yyVAL.union = yyLOCAL - case 425: + case 427: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2722 +//line mysql_sql.y:2729 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 426: + case 428: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2726 +//line mysql_sql.y:2733 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 427: + case 429: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2732 +//line mysql_sql.y:2739 { yyLOCAL = &tree.Limit{Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 428: + case 430: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2736 +//line mysql_sql.y:2743 { yyLOCAL = &tree.Limit{Offset: yyDollar[2].exprUnion(), Count: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 429: + case 431: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2740 +//line mysql_sql.y:2747 { yyLOCAL = &tree.Limit{Offset: yyDollar[4].exprUnion(), Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 430: + case 432: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2745 +//line mysql_sql.y:2752 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 431: + case 433: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2749 +//line mysql_sql.y:2756 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 432: + case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2755 +//line mysql_sql.y:2762 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 433: + case 435: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2761 +//line mysql_sql.y:2768 { yyLOCAL = tree.OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 434: + case 436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2765 +//line mysql_sql.y:2772 { yyLOCAL = append(yyDollar[1].orderByUnion(), yyDollar[3].orderUnion()) } yyVAL.union = yyLOCAL - case 435: + case 437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Order -//line mysql_sql.y:2771 +//line mysql_sql.y:2778 { yyLOCAL = &tree.Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].directionUnion()} } yyVAL.union = yyLOCAL - case 436: + case 438: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2776 +//line mysql_sql.y:2783 { yyLOCAL = tree.DefaultDirection } yyVAL.union = yyLOCAL - case 437: + case 439: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2780 +//line mysql_sql.y:2787 { yyLOCAL = tree.Ascending } yyVAL.union = yyLOCAL - case 438: + case 440: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2784 +//line mysql_sql.y:2791 { yyLOCAL = tree.Descending } yyVAL.union = yyLOCAL - case 439: + case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2791 +//line mysql_sql.y:2798 { yyLOCAL = &tree.ParenSelect{Select: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 440: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2795 +//line mysql_sql.y:2802 { yyLOCAL = &tree.ParenSelect{Select: &tree.Select{Select: yyDollar[2].selectStatementUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 443: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2801 +//line mysql_sql.y:2808 { yyLOCAL = yyDollar[1].selectStatementUnion() } yyVAL.union = yyLOCAL - case 442: + case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2805 +//line mysql_sql.y:2812 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8648,10 +8658,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 443: + case 445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2815 +//line mysql_sql.y:2822 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8662,10 +8672,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 444: + case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2825 +//line mysql_sql.y:2832 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8676,10 +8686,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 445: + case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2835 +//line mysql_sql.y:2842 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8690,10 +8700,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 446: + case 448: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2847 +//line mysql_sql.y:2854 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8702,10 +8712,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 447: + case 449: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2855 +//line mysql_sql.y:2862 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8714,10 +8724,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 448: + case 450: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2863 +//line mysql_sql.y:2870 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8726,10 +8736,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 449: + case 451: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2872 +//line mysql_sql.y:2879 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8738,10 +8748,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 450: + case 452: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2880 +//line mysql_sql.y:2887 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8750,10 +8760,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 451: + case 453: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2888 +//line mysql_sql.y:2895 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8762,10 +8772,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 452: + case 454: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2896 +//line mysql_sql.y:2903 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8774,10 +8784,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 453: + case 455: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2904 +//line mysql_sql.y:2911 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8786,10 +8796,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 454: + case 456: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2912 +//line mysql_sql.y:2919 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8798,10 +8808,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 455: + case 457: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2920 +//line mysql_sql.y:2927 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8810,10 +8820,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 456: + case 458: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2928 +//line mysql_sql.y:2935 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8822,10 +8832,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 457: + case 459: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2936 +//line mysql_sql.y:2943 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8834,10 +8844,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 458: + case 460: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2946 +//line mysql_sql.y:2953 { yyLOCAL = &tree.SelectClause{ Distinct: yyDollar[2].boolValUnion(), @@ -8849,10 +8859,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 459: + case 461: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2957 +//line mysql_sql.y:2964 { yyLOCAL = &tree.SelectClause{ Distinct: false, @@ -8865,130 +8875,130 @@ yydefault: } } yyVAL.union = yyLOCAL - case 463: + case 465: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2975 +//line mysql_sql.y:2982 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 464: + case 466: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2979 +//line mysql_sql.y:2986 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 465: + case 467: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2983 +//line mysql_sql.y:2990 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 468: + case 470: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:2992 +//line mysql_sql.y:2999 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 469: + case 471: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:2996 +//line mysql_sql.y:3003 { yyLOCAL = &tree.Where{Type: tree.AstHaving, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 470: + case 472: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.GroupBy -//line mysql_sql.y:3001 +//line mysql_sql.y:3008 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 471: + case 473: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.GroupBy -//line mysql_sql.y:3005 +//line mysql_sql.y:3012 { yyLOCAL = tree.GroupBy(yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 472: + case 474: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3010 +//line mysql_sql.y:3017 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 473: + case 475: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3014 +//line mysql_sql.y:3021 { yyLOCAL = &tree.Where{Type: tree.AstWhere, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 474: + case 476: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:3020 +//line mysql_sql.y:3027 { yyLOCAL = tree.SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 475: + case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:3024 +//line mysql_sql.y:3031 { yyLOCAL = append(yyDollar[1].selectExprsUnion(), yyDollar[3].selectExprUnion()) } yyVAL.union = yyLOCAL - case 476: + case 478: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3030 +//line mysql_sql.y:3037 { yyLOCAL = tree.SelectExpr{Expr: tree.StarExpr()} } yyVAL.union = yyLOCAL - case 477: + case 479: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3034 +//line mysql_sql.y:3041 { yyLOCAL = tree.SelectExpr{Expr: yyDollar[1].exprUnion(), As: tree.UnrestrictedIdentifier(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 478: + case 480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3038 +//line mysql_sql.y:3045 { yyLOCAL = tree.SelectExpr{Expr: tree.SetUnresolvedNameWithStar(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 479: + case 481: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3042 +//line mysql_sql.y:3049 { yyLOCAL = tree.SelectExpr{Expr: tree.SetUnresolvedNameWithStar(yyDollar[3].str, yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 480: + case 482: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3047 +//line mysql_sql.y:3054 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} tn := tree.NewTableName(tree.Identifier(""), prefix) @@ -8997,44 +9007,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 481: + case 483: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3055 +//line mysql_sql.y:3062 { yyLOCAL = yyDollar[1].fromUnion() } yyVAL.union = yyLOCAL - case 482: + case 484: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3061 +//line mysql_sql.y:3068 { yyLOCAL = &tree.From{ Tables: yyDollar[2].tableExprsUnion(), } } yyVAL.union = yyLOCAL - case 483: + case 485: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:3069 +//line mysql_sql.y:3076 { yyLOCAL = tree.TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 484: + case 486: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:3073 +//line mysql_sql.y:3080 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableExprUnion()) } yyVAL.union = yyLOCAL - case 488: + case 490: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3086 +//line mysql_sql.y:3093 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9044,10 +9054,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 489: + case 491: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3095 +//line mysql_sql.y:3102 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9057,10 +9067,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 490: + case 492: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3105 +//line mysql_sql.y:3112 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9070,10 +9080,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 491: + case 493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3114 +//line mysql_sql.y:3121 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9082,15 +9092,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 492: + case 494: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3124 +//line mysql_sql.y:3131 { yyVAL.str = tree.JOIN_TYPE_NATURAL } - case 493: + case 495: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3128 +//line mysql_sql.y:3135 { if yyDollar[2].str == tree.JOIN_TYPE_LEFT { yyVAL.str = tree.JOIN_TYPE_NATURAL_LEFT @@ -9098,130 +9108,130 @@ yydefault: yyVAL.str = tree.JOIN_TYPE_NATURAL_RIGHT } } - case 494: + case 496: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3138 +//line mysql_sql.y:3145 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 495: + case 497: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:3142 +//line mysql_sql.y:3149 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 496: + case 498: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3146 +//line mysql_sql.y:3153 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 497: + case 499: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:3150 +//line mysql_sql.y:3157 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 498: + case 500: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3156 +//line mysql_sql.y:3163 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 499: + case 501: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3160 +//line mysql_sql.y:3167 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 500: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3166 +//line mysql_sql.y:3173 { yyVAL.str = tree.JOIN_TYPE_STRAIGHT } - case 501: + case 503: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3172 +//line mysql_sql.y:3179 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 502: + case 504: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3176 +//line mysql_sql.y:3183 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 503: + case 505: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3180 +//line mysql_sql.y:3187 { yyVAL.str = tree.JOIN_TYPE_CROSS } - case 504: + case 506: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3186 +//line mysql_sql.y:3193 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 505: + case 507: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3190 +//line mysql_sql.y:3197 { yyLOCAL = yyDollar[1].joinCondUnion() } yyVAL.union = yyLOCAL - case 506: + case 508: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3196 +//line mysql_sql.y:3203 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 507: + case 509: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3200 +//line mysql_sql.y:3207 { yyLOCAL = &tree.UsingJoinCond{Cols: yyDollar[3].identifierListUnion()} } yyVAL.union = yyLOCAL - case 508: + case 510: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3206 +//line mysql_sql.y:3213 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 509: + case 511: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3210 +//line mysql_sql.y:3217 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 510: + case 512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3216 +//line mysql_sql.y:3223 { yyLOCAL = yyDollar[1].aliasedTableExprUnion() } yyVAL.union = yyLOCAL - case 511: + case 513: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3220 +//line mysql_sql.y:3227 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].parenTableExprUnion(), @@ -9232,28 +9242,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 512: + case 514: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ParenTableExpr -//line mysql_sql.y:3233 +//line mysql_sql.y:3240 { yyLOCAL = &tree.ParenTableExpr{Expr: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 513: + case 515: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3238 +//line mysql_sql.y:3245 { } - case 514: + case 516: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3239 +//line mysql_sql.y:3246 { } - case 515: + case 517: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AliasedTableExpr -//line mysql_sql.y:3243 +//line mysql_sql.y:3250 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].tableNameUnion(), @@ -9263,58 +9273,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 516: + case 518: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3255 +//line mysql_sql.y:3262 { yyVAL.str = "" } - case 517: + case 519: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3259 +//line mysql_sql.y:3266 { yyVAL.str = yyDollar[1].str } - case 518: + case 520: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3263 +//line mysql_sql.y:3270 { yyVAL.str = yyDollar[2].str } - case 521: + case 523: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3272 +//line mysql_sql.y:3279 { yyVAL.str = "" } - case 522: + case 524: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3276 +//line mysql_sql.y:3283 { yyVAL.str = yyDollar[1].str } - case 523: + case 525: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3280 +//line mysql_sql.y:3287 { yyVAL.str = yyDollar[2].str } - case 524: + case 526: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3284 +//line mysql_sql.y:3291 { yyVAL.str = yyDollar[1].str } - case 525: + case 527: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3288 +//line mysql_sql.y:3295 { yyVAL.str = yyDollar[2].str } - case 542: + case 544: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3322 +//line mysql_sql.y:3329 { yyLOCAL = &tree.CreateView{ Name: yyDollar[5].tableNameUnion(), @@ -9325,10 +9335,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 543: + case 545: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3332 +//line mysql_sql.y:3339 { yyLOCAL = &tree.CreateView{ Name: yyDollar[8].tableNameUnion(), @@ -9339,15 +9349,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 544: + case 546: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3343 +//line mysql_sql.y:3350 { } - case 546: + case 548: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3348 +//line mysql_sql.y:3355 { yyLOCAL = &tree.CreateAccount{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9358,16 +9368,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 547: + case 549: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3360 +//line mysql_sql.y:3367 { yyVAL.str = yyDollar[1].str } - case 548: + case 550: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountAuthOption -//line mysql_sql.y:3366 +//line mysql_sql.y:3373 { yyLOCAL = tree.AccountAuthOption{ Equal: yyDollar[2].str, @@ -9376,16 +9386,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 549: + case 551: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3376 +//line mysql_sql.y:3383 { yyVAL.str = yyDollar[1].str } - case 550: + case 552: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3382 +//line mysql_sql.y:3389 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -9393,20 +9403,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 551: + case 553: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3389 +//line mysql_sql.y:3396 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 552: + case 554: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3395 +//line mysql_sql.y:3402 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -9414,20 +9424,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 553: + case 555: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3403 +//line mysql_sql.y:3410 { yyLOCAL = tree.AccountStatus{ Exist: false, } } yyVAL.union = yyLOCAL - case 554: + case 556: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3409 +//line mysql_sql.y:3416 { yyLOCAL = tree.AccountStatus{ Exist: true, @@ -9435,10 +9445,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 555: + case 557: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3416 +//line mysql_sql.y:3423 { yyLOCAL = tree.AccountStatus{ Exist: true, @@ -9446,20 +9456,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 556: + case 558: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:3424 +//line mysql_sql.y:3431 { yyLOCAL = tree.AccountComment{ Exist: false, } } yyVAL.union = yyLOCAL - case 557: + case 559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:3430 +//line mysql_sql.y:3437 { yyLOCAL = tree.AccountComment{ Exist: true, @@ -9467,10 +9477,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 558: + case 560: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3439 +//line mysql_sql.y:3446 { yyLOCAL = &tree.CreateUser{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9481,26 +9491,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 559: + case 561: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3451 +//line mysql_sql.y:3458 { yyVAL.str = yyDollar[1].str } - case 560: + case 562: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3456 +//line mysql_sql.y:3463 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: false, } } yyVAL.union = yyLOCAL - case 561: + case 563: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3462 +//line mysql_sql.y:3469 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: true, @@ -9509,10 +9519,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 562: + case 564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3470 +//line mysql_sql.y:3477 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: true, @@ -9521,26 +9531,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 563: + case 565: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3577 +//line mysql_sql.y:3584 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 564: + case 566: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3581 +//line mysql_sql.y:3588 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 565: + case 567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:3587 +//line mysql_sql.y:3594 { yyLOCAL = &tree.User{ Username: yyDollar[1].usernameRecordUnion().Username, @@ -9549,42 +9559,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 566: + case 568: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3597 +//line mysql_sql.y:3604 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: "%"} } yyVAL.union = yyLOCAL - case 567: + case 569: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3601 +//line mysql_sql.y:3608 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 568: + case 570: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3605 +//line mysql_sql.y:3612 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 569: + case 571: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3610 +//line mysql_sql.y:3617 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 570: + case 572: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3614 +//line mysql_sql.y:3621 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -9592,20 +9602,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 571: + case 573: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3621 +//line mysql_sql.y:3628 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 572: + case 574: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3627 +//line mysql_sql.y:3634 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -9613,10 +9623,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 575: + case 577: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3640 +//line mysql_sql.y:3647 { yyLOCAL = &tree.CreateRole{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9624,66 +9634,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 576: + case 578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:3649 +//line mysql_sql.y:3656 { yyLOCAL = []*tree.Role{yyDollar[1].roleUnion()} } yyVAL.union = yyLOCAL - case 577: + case 579: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:3653 +//line mysql_sql.y:3660 { yyLOCAL = append(yyDollar[1].rolesUnion(), yyDollar[3].roleUnion()) } yyVAL.union = yyLOCAL - case 578: + case 580: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:3659 +//line mysql_sql.y:3666 { yyLOCAL = &tree.Role{UserName: yyDollar[1].str} } yyVAL.union = yyLOCAL - case 581: + case 583: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3676 +//line mysql_sql.y:3683 { yyLOCAL = tree.INDEX_CATEGORY_NONE } yyVAL.union = yyLOCAL - case 582: + case 584: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3680 +//line mysql_sql.y:3687 { yyLOCAL = tree.INDEX_CATEGORY_FULLTEXT } yyVAL.union = yyLOCAL - case 583: + case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3684 +//line mysql_sql.y:3691 { yyLOCAL = tree.INDEX_CATEGORY_SPATIAL } yyVAL.union = yyLOCAL - case 584: + case 586: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3688 +//line mysql_sql.y:3695 { yyLOCAL = tree.INDEX_CATEGORY_UNIQUE } yyVAL.union = yyLOCAL - case 585: + case 587: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3694 +//line mysql_sql.y:3701 { var io *tree.IndexOption = nil if yyDollar[11].indexOptionUnion() == nil && yyDollar[5].indexTypeUnion() != tree.INDEX_TYPE_INVALID { @@ -9702,18 +9712,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 586: + case 588: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3713 +//line mysql_sql.y:3720 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 587: + case 589: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3717 +//line mysql_sql.y:3724 { // Merge the options if yyDollar[1].indexOptionUnion() == nil { @@ -9734,123 +9744,123 @@ yydefault: } } yyVAL.union = yyLOCAL - case 588: + case 590: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3739 +//line mysql_sql.y:3746 { yyLOCAL = &tree.IndexOption{KeyBlockSize: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL - case 589: + case 591: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3743 +//line mysql_sql.y:3750 { yyLOCAL = &tree.IndexOption{Comment: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 590: + case 592: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3747 +//line mysql_sql.y:3754 { yyLOCAL = &tree.IndexOption{ParserName: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 591: + case 593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3751 +//line mysql_sql.y:3758 { yyLOCAL = &tree.IndexOption{Visible: tree.VISIBLE_TYPE_VISIBLE} } yyVAL.union = yyLOCAL - case 592: + case 594: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3755 +//line mysql_sql.y:3762 { yyLOCAL = &tree.IndexOption{Visible: tree.VISIBLE_TYPE_INVISIBLE} } yyVAL.union = yyLOCAL - case 593: + case 595: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:3761 +//line mysql_sql.y:3768 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 594: + case 596: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:3765 +//line mysql_sql.y:3772 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 595: + case 597: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:3771 +//line mysql_sql.y:3778 { // Order is parsed but just ignored as MySQL did. yyLOCAL = &tree.KeyPart{ColName: yyDollar[1].unresolvedNameUnion(), Length: int(yyDollar[2].lengthOptUnion()), Direction: yyDollar[3].directionUnion()} } yyVAL.union = yyLOCAL - case 596: + case 598: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:3776 +//line mysql_sql.y:3783 { yyLOCAL = &tree.KeyPart{Expr: yyDollar[2].exprUnion(), Direction: yyDollar[4].directionUnion()} } yyVAL.union = yyLOCAL - case 597: + case 599: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3781 +//line mysql_sql.y:3788 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 598: + case 600: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3785 +//line mysql_sql.y:3792 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 599: + case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3789 +//line mysql_sql.y:3796 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 600: + case 602: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3793 +//line mysql_sql.y:3800 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 601: + case 603: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3797 +//line mysql_sql.y:3804 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 602: + case 604: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3803 +//line mysql_sql.y:3810 { yyLOCAL = &tree.CreateDatabase{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9859,98 +9869,98 @@ yydefault: } } yyVAL.union = yyLOCAL - case 605: + case 607: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3817 +//line mysql_sql.y:3824 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 606: + case 608: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3821 +//line mysql_sql.y:3828 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 607: + case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3826 +//line mysql_sql.y:3833 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 608: + case 610: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3830 +//line mysql_sql.y:3837 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 609: + case 611: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3836 +//line mysql_sql.y:3843 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 610: + case 612: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3840 +//line mysql_sql.y:3847 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 611: + case 613: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3846 +//line mysql_sql.y:3853 { yyLOCAL = &tree.CreateOptionCharset{IsDefault: yyDollar[1].defaultOptionalUnion(), Charset: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 612: + case 614: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3850 +//line mysql_sql.y:3857 { yyLOCAL = &tree.CreateOptionCollate{IsDefault: yyDollar[1].defaultOptionalUnion(), Collate: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 613: + case 615: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3854 +//line mysql_sql.y:3861 { yyLOCAL = &tree.CreateOptionEncryption{Encrypt: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 614: + case 616: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3859 +//line mysql_sql.y:3866 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 615: + case 617: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3863 +//line mysql_sql.y:3870 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 616: + case 618: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3869 +//line mysql_sql.y:3876 { yyLOCAL = &tree.CreateTable{ Temporary: yyDollar[2].boolValUnion(), @@ -9962,34 +9972,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 617: + case 619: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3881 +//line mysql_sql.y:3888 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 618: + case 620: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3885 +//line mysql_sql.y:3892 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 619: + case 621: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:3890 +//line mysql_sql.y:3897 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 620: + case 622: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:3894 +//line mysql_sql.y:3901 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) yyLOCAL = &tree.PartitionOption{ @@ -9999,18 +10009,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 621: + case 623: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:3904 +//line mysql_sql.y:3911 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 622: + case 624: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:3908 +//line mysql_sql.y:3915 { yyLOCAL = &tree.PartitionBy{ IsSubPartition: true, @@ -10019,42 +10029,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 623: + case 625: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:3917 +//line mysql_sql.y:3924 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 624: + case 626: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:3921 +//line mysql_sql.y:3928 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 625: + case 627: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:3927 +//line mysql_sql.y:3934 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 626: + case 628: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:3931 +//line mysql_sql.y:3938 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 627: + case 629: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:3937 +//line mysql_sql.y:3944 { yyLOCAL = &tree.Partition{ Name: tree.Identifier(yyDollar[2].str), @@ -10064,10 +10074,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 628: + case 630: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:3946 +//line mysql_sql.y:3953 { yyLOCAL = &tree.Partition{ Name: tree.Identifier(yyDollar[2].str), @@ -10077,42 +10087,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 629: + case 631: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:3956 +//line mysql_sql.y:3963 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 630: + case 632: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:3960 +//line mysql_sql.y:3967 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 631: + case 633: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:3966 +//line mysql_sql.y:3973 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 632: + case 634: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:3970 +//line mysql_sql.y:3977 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 633: + case 635: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:3976 +//line mysql_sql.y:3983 { yyLOCAL = &tree.SubPartition{ Name: tree.Identifier(yyDollar[2].str), @@ -10120,10 +10130,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 634: + case 636: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:3983 +//line mysql_sql.y:3990 { yyLOCAL = &tree.SubPartition{ Name: tree.Identifier(yyDollar[2].str), @@ -10131,50 +10141,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 635: + case 637: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:3992 +//line mysql_sql.y:3999 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 636: + case 638: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:3996 +//line mysql_sql.y:4003 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 637: + case 639: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4001 +//line mysql_sql.y:4008 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 638: + case 640: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4005 +//line mysql_sql.y:4012 { yyLOCAL = &tree.ValuesLessThan{ValueList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 639: + case 641: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4010 +//line mysql_sql.y:4017 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 640: + case 642: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4014 +//line mysql_sql.y:4021 { res := yyDollar[2].item.(int64) if res == 0 { @@ -10184,18 +10194,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 641: + case 643: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4024 +//line mysql_sql.y:4031 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 642: + case 644: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4028 +//line mysql_sql.y:4035 { res := yyDollar[2].item.(int64) if res == 0 { @@ -10205,10 +10215,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 643: + case 645: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4039 +//line mysql_sql.y:4046 { yyLOCAL = &tree.PartitionBy{ PType: &tree.RangeType{ @@ -10217,10 +10227,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 644: + case 646: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4047 +//line mysql_sql.y:4054 { yyLOCAL = &tree.PartitionBy{ PType: &tree.RangeType{ @@ -10229,10 +10239,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 645: + case 647: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4055 +//line mysql_sql.y:4062 { yyLOCAL = &tree.PartitionBy{ PType: &tree.ListType{ @@ -10241,10 +10251,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 646: + case 648: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4063 +//line mysql_sql.y:4070 { yyLOCAL = &tree.PartitionBy{ PType: &tree.ListType{ @@ -10253,10 +10263,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 648: + case 650: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4074 +//line mysql_sql.y:4081 { yyLOCAL = &tree.PartitionBy{ PType: &tree.KeyType{ @@ -10267,10 +10277,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 649: + case 651: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4084 +//line mysql_sql.y:4091 { yyLOCAL = &tree.PartitionBy{ PType: &tree.HashType{ @@ -10280,478 +10290,478 @@ yydefault: } } yyVAL.union = yyLOCAL - case 650: + case 652: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4094 +//line mysql_sql.y:4101 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 651: + case 653: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4098 +//line mysql_sql.y:4105 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 652: + case 654: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4103 +//line mysql_sql.y:4110 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 653: + case 655: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4107 +//line mysql_sql.y:4114 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 654: + case 656: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4112 +//line mysql_sql.y:4119 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 655: + case 657: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4116 +//line mysql_sql.y:4123 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 656: + case 658: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4122 +//line mysql_sql.y:4129 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 657: + case 659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4126 +//line mysql_sql.y:4133 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 658: + case 660: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4130 +//line mysql_sql.y:4137 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 659: + case 661: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4136 +//line mysql_sql.y:4143 { yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 660: + case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4140 +//line mysql_sql.y:4147 { yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 661: + case 663: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4144 +//line mysql_sql.y:4151 { yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 662: + case 664: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4148 +//line mysql_sql.y:4155 { yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 663: + case 665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4152 +//line mysql_sql.y:4159 { yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 664: + case 666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4156 +//line mysql_sql.y:4163 { yyLOCAL = tree.NewTableOptionComment(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 665: + case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4160 +//line mysql_sql.y:4167 { yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 666: + case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4164 +//line mysql_sql.y:4171 { yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 667: + case 669: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4168 +//line mysql_sql.y:4175 { yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 668: + case 670: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4172 +//line mysql_sql.y:4179 { yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 669: + case 671: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4176 +//line mysql_sql.y:4183 { yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 670: + case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4180 +//line mysql_sql.y:4187 { yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 671: + case 673: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4184 +//line mysql_sql.y:4191 { yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 672: + case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4188 +//line mysql_sql.y:4195 { yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 673: + case 675: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4192 +//line mysql_sql.y:4199 { yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 674: + case 676: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4196 +//line mysql_sql.y:4203 { yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 675: + case 677: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4200 +//line mysql_sql.y:4207 { yyLOCAL = &tree.TableOptionPackKeys{Value: yyDollar[3].item.(int64)} } yyVAL.union = yyLOCAL - case 676: + case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4204 +//line mysql_sql.y:4211 { yyLOCAL = &tree.TableOptionPackKeys{Default: true} } yyVAL.union = yyLOCAL - case 677: + case 679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4208 +//line mysql_sql.y:4215 { yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 678: + case 680: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4212 +//line mysql_sql.y:4219 { yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL - case 679: + case 681: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4216 +//line mysql_sql.y:4223 { yyLOCAL = &tree.TableOptionStatsAutoRecalc{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL - case 680: + case 682: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4220 +//line mysql_sql.y:4227 { yyLOCAL = &tree.TableOptionStatsAutoRecalc{Default: true} } yyVAL.union = yyLOCAL - case 681: + case 683: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4224 +//line mysql_sql.y:4231 { yyLOCAL = &tree.TableOptionStatsPersistent{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL - case 682: + case 684: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4228 +//line mysql_sql.y:4235 { yyLOCAL = &tree.TableOptionStatsPersistent{Default: true} } yyVAL.union = yyLOCAL - case 683: + case 685: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4232 +//line mysql_sql.y:4239 { yyLOCAL = &tree.TableOptionStatsSamplePages{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL - case 684: + case 686: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4236 +//line mysql_sql.y:4243 { yyLOCAL = &tree.TableOptionStatsSamplePages{Default: true} } yyVAL.union = yyLOCAL - case 685: + case 687: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4240 +//line mysql_sql.y:4247 { yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].str, yyDollar[4].str) } yyVAL.union = yyLOCAL - case 686: + case 688: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4244 +//line mysql_sql.y:4251 { yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL - case 687: + case 689: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:4248 +//line mysql_sql.y:4255 { yyLOCAL = &tree.TableOptionProperties{Preperties: yyDollar[3].propertiesUnion()} } yyVAL.union = yyLOCAL - case 688: + case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:4255 +//line mysql_sql.y:4262 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 689: + case 691: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:4259 +//line mysql_sql.y:4266 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 690: + case 692: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:4265 +//line mysql_sql.y:4272 { yyLOCAL = tree.Property{Key: yyDollar[1].str, Value: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 691: + case 693: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4270 +//line mysql_sql.y:4277 { yyVAL.str = "" } - case 692: + case 694: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4274 +//line mysql_sql.y:4281 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 693: + case 695: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4278 +//line mysql_sql.y:4285 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 694: + case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4284 +//line mysql_sql.y:4291 { yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL - case 695: + case 697: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4288 +//line mysql_sql.y:4295 { yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL - case 696: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4292 +//line mysql_sql.y:4299 { yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL - case 697: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4296 +//line mysql_sql.y:4303 { yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL - case 698: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4300 +//line mysql_sql.y:4307 { yyLOCAL = tree.ROW_FORMAT_REDUNDANT } yyVAL.union = yyLOCAL - case 699: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4304 +//line mysql_sql.y:4311 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 704: + case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:4318 +//line mysql_sql.y:4325 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 705: + case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:4322 +//line mysql_sql.y:4329 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 706: + case 708: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4331 +//line mysql_sql.y:4338 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[1].str), prefix) } yyVAL.union = yyLOCAL - case 707: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4336 +//line mysql_sql.y:4343 { prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(yyDollar[1].str), ExplicitSchema: true} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[3].str), prefix) } yyVAL.union = yyLOCAL - case 708: + case 710: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4342 +//line mysql_sql.y:4349 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 710: + case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4349 +//line mysql_sql.y:4356 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 711: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4353 +//line mysql_sql.y:4360 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 712: + case 714: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4359 +//line mysql_sql.y:4366 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 713: + case 715: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4363 +//line mysql_sql.y:4370 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 714: + case 716: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4369 +//line mysql_sql.y:4376 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -10762,18 +10772,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 715: + case 717: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4379 +//line mysql_sql.y:4386 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 716: + case 718: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4385 +//line mysql_sql.y:4392 { yyLOCAL = &tree.PrimaryKeyIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -10783,10 +10793,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 717: + case 719: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4394 +//line mysql_sql.y:4401 { yyLOCAL = &tree.FullTextIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -10796,10 +10806,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 718: + case 720: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4403 +//line mysql_sql.y:4410 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -10823,10 +10833,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 719: + case 721: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4426 +//line mysql_sql.y:4433 { yyLOCAL = &tree.UniqueIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -10836,10 +10846,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 720: + case 722: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4435 +//line mysql_sql.y:4442 { yyLOCAL = &tree.ForeignKey{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -10850,10 +10860,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 721: + case 723: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4445 +//line mysql_sql.y:4452 { yyLOCAL = &tree.CheckIndex{ Expr: yyDollar[3].exprUnion(), @@ -10861,298 +10871,298 @@ yydefault: } } yyVAL.union = yyLOCAL - case 722: + case 724: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4453 +//line mysql_sql.y:4460 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 724: + case 726: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4459 +//line mysql_sql.y:4466 { yyVAL.str = "" } - case 725: + case 727: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4463 +//line mysql_sql.y:4470 { yyVAL.str = yyDollar[1].str } - case 728: + case 730: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4473 +//line mysql_sql.y:4480 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 729: + case 731: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4479 +//line mysql_sql.y:4486 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 730: + case 732: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4485 +//line mysql_sql.y:4492 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 736: + case 738: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4499 +//line mysql_sql.y:4506 { yyVAL.str = "" } - case 738: + case 740: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:4506 +//line mysql_sql.y:4513 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 739: + case 741: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4512 +//line mysql_sql.y:4519 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 740: + case 742: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4516 +//line mysql_sql.y:4523 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 741: + case 743: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4520 +//line mysql_sql.y:4527 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str, yyDollar[5].str) } yyVAL.union = yyLOCAL - case 745: + case 747: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4531 +//line mysql_sql.y:4538 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 746: + case 748: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4535 +//line mysql_sql.y:4542 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 747: + case 749: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4539 +//line mysql_sql.y:4546 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str, yyDollar[5].str) } yyVAL.union = yyLOCAL - case 748: + case 750: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4544 +//line mysql_sql.y:4551 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 749: + case 751: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4548 +//line mysql_sql.y:4555 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 750: + case 752: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4554 +//line mysql_sql.y:4561 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 751: + case 753: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4558 +//line mysql_sql.y:4565 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 752: + case 754: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4564 +//line mysql_sql.y:4571 { yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL - case 753: + case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4568 +//line mysql_sql.y:4575 { yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL - case 754: + case 756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4572 +//line mysql_sql.y:4579 { yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 755: + case 757: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4576 +//line mysql_sql.y:4583 { yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL - case 756: + case 758: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4580 +//line mysql_sql.y:4587 { yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL - case 757: + case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4584 +//line mysql_sql.y:4591 { yyLOCAL = tree.NewAttributeComment(tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char)) } yyVAL.union = yyLOCAL - case 758: + case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4588 +//line mysql_sql.y:4595 { yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 759: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4592 +//line mysql_sql.y:4599 { yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 760: + case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4596 +//line mysql_sql.y:4603 { yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 761: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4600 +//line mysql_sql.y:4607 { yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL - case 762: + case 764: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4604 +//line mysql_sql.y:4611 { yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL - case 763: + case 765: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4608 +//line mysql_sql.y:4615 { yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 764: + case 766: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4612 +//line mysql_sql.y:4619 { yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) } yyVAL.union = yyLOCAL - case 765: + case 767: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4622 +//line mysql_sql.y:4629 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 766: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4626 +//line mysql_sql.y:4633 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 767: + case 769: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4631 +//line mysql_sql.y:4638 { yyVAL.str = "" } - case 768: + case 770: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4635 +//line mysql_sql.y:4642 { yyVAL.str = yyDollar[1].str } - case 769: + case 771: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4641 +//line mysql_sql.y:4648 { yyVAL.str = "" } - case 770: + case 772: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4645 +//line mysql_sql.y:4652 { yyVAL.str = yyDollar[2].str } - case 771: + case 773: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:4651 +//line mysql_sql.y:4658 { yyLOCAL = &tree.AttributeReference{ TableName: yyDollar[2].tableNameUnion(), @@ -11163,10 +11173,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 772: + case 774: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4662 +//line mysql_sql.y:4669 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -11174,10 +11184,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 774: + case 776: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4672 +//line mysql_sql.y:4679 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -11185,10 +11195,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 775: + case 777: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4679 +//line mysql_sql.y:4686 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -11196,10 +11206,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 776: + case 778: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4686 +//line mysql_sql.y:4693 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -11207,10 +11217,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 777: + case 779: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4693 +//line mysql_sql.y:4700 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -11218,339 +11228,339 @@ yydefault: } } yyVAL.union = yyLOCAL - case 778: + case 780: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4702 +//line mysql_sql.y:4709 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 779: + case 781: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4708 +//line mysql_sql.y:4715 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 780: + case 782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4714 +//line mysql_sql.y:4721 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 781: + case 783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4718 +//line mysql_sql.y:4725 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 782: + case 784: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4722 +//line mysql_sql.y:4729 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 783: + case 785: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4726 +//line mysql_sql.y:4733 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 784: + case 786: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4730 +//line mysql_sql.y:4737 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 785: + case 787: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4735 +//line mysql_sql.y:4742 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 787: + case 789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4742 +//line mysql_sql.y:4749 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 788: + case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4746 +//line mysql_sql.y:4753 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 789: + case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4750 +//line mysql_sql.y:4757 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 790: + case 792: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:4755 +//line mysql_sql.y:4762 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 791: + case 793: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:4759 +//line mysql_sql.y:4766 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 792: + case 794: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4764 +//line mysql_sql.y:4771 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 793: + case 795: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4768 +//line mysql_sql.y:4775 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 800: + case 802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:4784 +//line mysql_sql.y:4791 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 801: + case 803: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4790 +//line mysql_sql.y:4797 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 802: + case 804: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4794 +//line mysql_sql.y:4801 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 803: + case 805: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4798 +//line mysql_sql.y:4805 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 804: + case 806: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4802 +//line mysql_sql.y:4809 { yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 805: + case 807: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4806 +//line mysql_sql.y:4813 { yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 806: + case 808: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4810 +//line mysql_sql.y:4817 { yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 807: + case 809: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4814 +//line mysql_sql.y:4821 { yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 808: + case 810: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4818 +//line mysql_sql.y:4825 { yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 809: + case 811: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4822 +//line mysql_sql.y:4829 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 810: + case 812: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4826 +//line mysql_sql.y:4833 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 811: + case 813: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4830 +//line mysql_sql.y:4837 { yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 812: + case 814: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4834 +//line mysql_sql.y:4841 { yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 813: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4838 +//line mysql_sql.y:4845 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 814: + case 816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4844 +//line mysql_sql.y:4851 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 815: + case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4848 +//line mysql_sql.y:4855 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 816: + case 818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4852 +//line mysql_sql.y:4859 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 817: + case 819: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4856 +//line mysql_sql.y:4863 { yyLOCAL = tree.NewParenExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 818: + case 820: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4860 +//line mysql_sql.y:4867 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 819: + case 821: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4864 +//line mysql_sql.y:4871 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 820: + case 822: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4868 +//line mysql_sql.y:4875 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 821: + case 823: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4872 +//line mysql_sql.y:4879 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 822: + case 824: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4876 +//line mysql_sql.y:4883 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 823: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4880 +//line mysql_sql.y:4887 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 824: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4884 +//line mysql_sql.y:4891 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 825: + case 827: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4888 +//line mysql_sql.y:4895 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 826: + case 828: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4893 +//line mysql_sql.y:4900 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -11559,26 +11569,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 827: + case 829: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4901 +//line mysql_sql.y:4908 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 828: + case 830: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4905 +//line mysql_sql.y:4912 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 829: + case 831: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4909 +//line mysql_sql.y:4916 { name := tree.SetUnresolvedName("convert") es := tree.NewNumValWithType(constant.MakeString(yyDollar[5].str), yyDollar[5].str, false, tree.P_char) @@ -11588,98 +11598,98 @@ yydefault: } } yyVAL.union = yyLOCAL - case 830: + case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4918 +//line mysql_sql.y:4925 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 831: + case 833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4922 +//line mysql_sql.y:4929 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 832: + case 834: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4926 +//line mysql_sql.y:4933 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 833: + case 835: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4930 +//line mysql_sql.y:4937 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 834: + case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4934 +//line mysql_sql.y:4941 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 835: + case 837: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4939 +//line mysql_sql.y:4946 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 836: + case 838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4943 +//line mysql_sql.y:4950 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 837: + case 839: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4948 +//line mysql_sql.y:4955 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 838: + case 840: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4952 +//line mysql_sql.y:4959 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 839: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:4958 +//line mysql_sql.y:4965 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 840: + case 842: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:4962 +//line mysql_sql.y:4969 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 841: + case 843: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:4968 +//line mysql_sql.y:4975 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -11687,10 +11697,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 843: + case 845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:4978 +//line mysql_sql.y:4985 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -11708,10 +11718,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 844: + case 846: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:4995 +//line mysql_sql.y:5002 { locale := "" yyLOCAL = &tree.T{ @@ -11726,10 +11736,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 846: + case 848: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5012 +//line mysql_sql.y:5019 { locale := "" yyLOCAL = &tree.T{ @@ -11743,10 +11753,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 847: + case 849: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5025 +//line mysql_sql.y:5032 { locale := "" yyLOCAL = &tree.T{ @@ -11760,10 +11770,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 848: + case 850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5038 +//line mysql_sql.y:5045 { locale := "" yyLOCAL = &tree.T{ @@ -11776,10 +11786,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 849: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5050 +//line mysql_sql.y:5057 { locale := "" yyLOCAL = &tree.T{ @@ -11794,10 +11804,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 850: + case 852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5064 +//line mysql_sql.y:5071 { locale := "" yyLOCAL = &tree.T{ @@ -11813,10 +11823,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 851: + case 853: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5079 +//line mysql_sql.y:5086 { locale := "" yyLOCAL = &tree.T{ @@ -11832,10 +11842,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 852: + case 854: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5094 +//line mysql_sql.y:5101 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -11853,10 +11863,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 853: + case 855: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5111 +//line mysql_sql.y:5118 { locale := "" yyLOCAL = &tree.T{ @@ -11871,15 +11881,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 854: + case 856: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5126 +//line mysql_sql.y:5133 { } - case 857: + case 859: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5132 +//line mysql_sql.y:5139 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11889,10 +11899,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 858: + case 860: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5141 +//line mysql_sql.y:5148 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11901,10 +11911,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 859: + case 861: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5149 +//line mysql_sql.y:5156 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11913,10 +11923,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 860: + case 862: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5157 +//line mysql_sql.y:5164 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11926,10 +11936,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 861: + case 863: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5166 +//line mysql_sql.y:5173 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11939,10 +11949,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 862: + case 864: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5175 +//line mysql_sql.y:5182 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11952,10 +11962,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 863: + case 865: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5184 +//line mysql_sql.y:5191 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11965,10 +11975,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 864: + case 866: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5193 +//line mysql_sql.y:5200 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) es := tree.NewNumValWithType(constant.MakeString("*"), "*", false, tree.P_char) @@ -11978,10 +11988,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 865: + case 867: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5202 +//line mysql_sql.y:5209 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -11991,10 +12001,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 866: + case 868: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5211 +//line mysql_sql.y:5218 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12004,10 +12014,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 867: + case 869: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5220 +//line mysql_sql.y:5227 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12017,10 +12027,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 868: + case 870: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5229 +//line mysql_sql.y:5236 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12030,10 +12040,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 869: + case 871: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5238 +//line mysql_sql.y:5245 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12043,10 +12053,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 870: + case 872: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5247 +//line mysql_sql.y:5254 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12056,10 +12066,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 871: + case 873: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5256 +//line mysql_sql.y:5263 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12069,10 +12079,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 875: + case 877: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5272 +//line mysql_sql.y:5279 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12081,10 +12091,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 876: + case 878: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5280 +//line mysql_sql.y:5287 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12093,10 +12103,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 877: + case 879: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5288 +//line mysql_sql.y:5295 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12105,10 +12115,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 878: + case 880: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5296 +//line mysql_sql.y:5303 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12117,10 +12127,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 879: + case 881: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5304 +//line mysql_sql.y:5311 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) timeUinit := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12130,10 +12140,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 880: + case 882: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5313 +//line mysql_sql.y:5320 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12142,10 +12152,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 881: + case 883: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5321 +//line mysql_sql.y:5328 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12155,10 +12165,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 882: + case 884: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5330 +//line mysql_sql.y:5337 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12168,10 +12178,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 883: + case 885: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5339 +//line mysql_sql.y:5346 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12180,10 +12190,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 884: + case 886: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5347 +//line mysql_sql.y:5354 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12192,10 +12202,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 885: + case 887: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5355 +//line mysql_sql.y:5362 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) arg1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12205,10 +12215,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 886: + case 888: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5364 +//line mysql_sql.y:5371 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) arg1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12218,10 +12228,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 887: + case 889: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5374 +//line mysql_sql.y:5381 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) a1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12232,16 +12242,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 893: + case 895: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:5395 +//line mysql_sql.y:5402 { yyVAL.str = yyDollar[1].str } - case 922: + case 924: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5431 +//line mysql_sql.y:5438 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12254,10 +12264,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 923: + case 925: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5443 +//line mysql_sql.y:5450 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12270,10 +12280,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 924: + case 926: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5457 +//line mysql_sql.y:5464 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12282,10 +12292,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 925: + case 927: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5465 +//line mysql_sql.y:5472 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12293,10 +12303,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 926: + case 928: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5472 +//line mysql_sql.y:5479 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12304,10 +12314,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 927: + case 929: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5479 +//line mysql_sql.y:5486 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12320,10 +12330,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 928: + case 930: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5491 +//line mysql_sql.y:5498 { name := tree.SetUnresolvedName("char") yyLOCAL = &tree.FuncExpr{ @@ -12332,10 +12342,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 929: + case 931: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5499 +//line mysql_sql.y:5506 { cn := tree.NewNumValWithType(constant.MakeString(yyDollar[5].str), yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -12347,10 +12357,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 930: + case 932: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5510 +//line mysql_sql.y:5517 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("date") @@ -12360,10 +12370,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 931: + case 933: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5519 +//line mysql_sql.y:5526 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("time") @@ -12373,10 +12383,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 932: + case 934: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5528 +//line mysql_sql.y:5535 { name := tree.SetUnresolvedName("insert") yyLOCAL = &tree.FuncExpr{ @@ -12385,10 +12395,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 933: + case 935: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5536 +//line mysql_sql.y:5543 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -12399,10 +12409,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 934: + case 936: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5546 +//line mysql_sql.y:5553 { name := tree.SetUnresolvedName("password") yyLOCAL = &tree.FuncExpr{ @@ -12411,10 +12421,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 935: + case 937: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5554 +//line mysql_sql.y:5561 { name := tree.SetUnresolvedName("binary") yyLOCAL = &tree.FuncExpr{ @@ -12423,10 +12433,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 936: + case 938: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5562 +//line mysql_sql.y:5569 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("timestamp") @@ -12436,34 +12446,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 937: + case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5572 +//line mysql_sql.y:5579 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 938: + case 940: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5576 +//line mysql_sql.y:5583 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 939: + case 941: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5582 +//line mysql_sql.y:5589 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 940: + case 942: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5586 +//line mysql_sql.y:5593 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -12474,20 +12484,20 @@ yydefault: yyLOCAL = tree.NewNumValWithType(constant.MakeInt64(ival), str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 947: + case 949: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5605 +//line mysql_sql.y:5612 { } - case 948: + case 950: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:5607 +//line mysql_sql.y:5614 { } - case 981: + case 983: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5647 +//line mysql_sql.y:5654 { name := tree.SetUnresolvedName("interval") arg2 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12497,90 +12507,90 @@ yydefault: } } yyVAL.union = yyLOCAL - case 982: + case 984: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5657 +//line mysql_sql.y:5664 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 983: + case 985: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5661 +//line mysql_sql.y:5668 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 984: + case 986: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5665 +//line mysql_sql.y:5672 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 985: + case 987: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:5671 +//line mysql_sql.y:5678 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 986: + case 988: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5676 +//line mysql_sql.y:5683 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 987: + case 989: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5680 +//line mysql_sql.y:5687 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 988: + case 990: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5686 +//line mysql_sql.y:5693 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 989: + case 991: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5690 +//line mysql_sql.y:5697 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 990: + case 992: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5697 +//line mysql_sql.y:5704 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 991: + case 993: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5701 +//line mysql_sql.y:5708 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 992: + case 994: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5705 +//line mysql_sql.y:5712 { name := tree.SetUnresolvedName(strings.ToLower("concat")) yyLOCAL = &tree.FuncExpr{ @@ -12589,332 +12599,332 @@ yydefault: } } yyVAL.union = yyLOCAL - case 993: + case 995: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5713 +//line mysql_sql.y:5720 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 994: + case 996: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5717 +//line mysql_sql.y:5724 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 995: + case 997: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5721 +//line mysql_sql.y:5728 { yyLOCAL = tree.NewComparisonExpr(tree.EQUAL, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 996: + case 998: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5725 +//line mysql_sql.y:5732 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_EQUAL, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 997: + case 999: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5729 +//line mysql_sql.y:5736 { arg := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), "", false, tree.P_char) yyLOCAL = tree.NewComparisonExpr(tree.EQUAL, yyDollar[1].exprUnion(), arg) } yyVAL.union = yyLOCAL - case 998: + case 1000: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5734 +//line mysql_sql.y:5741 { arg := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), "", false, tree.P_char) yyLOCAL = tree.NewComparisonExpr(tree.NOT_EQUAL, yyDollar[1].exprUnion(), arg) } yyVAL.union = yyLOCAL - case 999: + case 1001: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5739 +//line mysql_sql.y:5746 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1000: + case 1002: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5745 +//line mysql_sql.y:5752 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1001: + case 1003: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5749 +//line mysql_sql.y:5756 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1002: + case 1004: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5753 +//line mysql_sql.y:5760 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1003: + case 1005: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5757 +//line mysql_sql.y:5764 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1005: + case 1007: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5764 +//line mysql_sql.y:5771 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(true), "", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1006: + case 1008: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5768 +//line mysql_sql.y:5775 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(false), "", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1007: + case 1009: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5774 +//line mysql_sql.y:5781 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1008: + case 1010: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5778 +//line mysql_sql.y:5785 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1009: + case 1011: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5782 +//line mysql_sql.y:5789 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1010: + case 1012: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5786 +//line mysql_sql.y:5793 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1011: + case 1013: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5790 +//line mysql_sql.y:5797 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1012: + case 1014: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5794 +//line mysql_sql.y:5801 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1013: + case 1015: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5798 +//line mysql_sql.y:5805 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1014: + case 1016: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5802 +//line mysql_sql.y:5809 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1016: + case 1018: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5808 +//line mysql_sql.y:5815 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1017: + case 1019: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5812 +//line mysql_sql.y:5819 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1018: + case 1020: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5818 +//line mysql_sql.y:5825 { yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL - case 1019: + case 1021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5822 +//line mysql_sql.y:5829 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1020: + case 1022: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5829 +//line mysql_sql.y:5836 { yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL - case 1021: + case 1023: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5833 +//line mysql_sql.y:5840 { yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL - case 1022: + case 1024: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5837 +//line mysql_sql.y:5844 { yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL - case 1023: + case 1025: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5843 +//line mysql_sql.y:5850 { yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL - case 1024: + case 1026: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5847 +//line mysql_sql.y:5854 { yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL - case 1025: + case 1027: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5851 +//line mysql_sql.y:5858 { yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL - case 1026: + case 1028: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5855 +//line mysql_sql.y:5862 { yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1027: + case 1029: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5859 +//line mysql_sql.y:5866 { yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1028: + case 1030: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5863 +//line mysql_sql.y:5870 { yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL - case 1029: + case 1031: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5867 +//line mysql_sql.y:5874 { yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL - case 1030: + case 1032: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:5873 +//line mysql_sql.y:5880 { yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL - case 1031: + case 1033: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:5877 +//line mysql_sql.y:5884 { yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL - case 1032: + case 1034: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:5881 +//line mysql_sql.y:5888 { yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL - case 1033: + case 1035: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:5885 +//line mysql_sql.y:5892 { yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL - case 1034: + case 1036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5891 +//line mysql_sql.y:5898 { yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1035: + case 1037: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5895 +//line mysql_sql.y:5902 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -12928,43 +12938,43 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1036: + case 1038: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5908 +//line mysql_sql.y:5915 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumValWithType(constant.MakeFloat64(fval), yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1037: + case 1039: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5913 +//line mysql_sql.y:5920 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(true), "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1038: + case 1040: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5917 +//line mysql_sql.y:5924 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(false), "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1039: + case 1041: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5921 +//line mysql_sql.y:5928 { yyLOCAL = tree.NewNumValWithType(constant.MakeUnknown(), "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1040: + case 1042: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5925 +//line mysql_sql.y:5932 { switch v := yyDollar[1].item.(type) { case uint64: @@ -12979,18 +12989,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1041: + case 1043: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5939 +//line mysql_sql.y:5946 { yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1042: + case 1044: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5943 +//line mysql_sql.y:5950 { switch v := yyDollar[1].item.(type) { case uint64: @@ -13005,45 +13015,45 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1043: + case 1045: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5957 +//line mysql_sql.y:5964 { yyLOCAL = tree.NewParamExpr(yyp) } yyVAL.union = yyLOCAL - case 1044: + case 1046: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5963 +//line mysql_sql.y:5970 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1048: + case 1050: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5974 +//line mysql_sql.y:5981 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1049: + case 1051: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5979 +//line mysql_sql.y:5986 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1050: + case 1052: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5985 +//line mysql_sql.y:5992 { locale := "" yyLOCAL = &tree.T{ @@ -13056,10 +13066,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1051: + case 1053: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5997 +//line mysql_sql.y:6004 { locale := "" yyLOCAL = &tree.T{ @@ -13072,10 +13082,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1052: + case 1054: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6009 +//line mysql_sql.y:6016 { locale := "" yyLOCAL = &tree.T{ @@ -13088,10 +13098,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1053: + case 1055: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6021 +//line mysql_sql.y:6028 { locale := "" yyLOCAL = &tree.T{ @@ -13105,10 +13115,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1054: + case 1056: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6034 +//line mysql_sql.y:6041 { locale := "" yyLOCAL = &tree.T{ @@ -13122,10 +13132,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1055: + case 1057: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6047 +//line mysql_sql.y:6054 { locale := "" yyLOCAL = &tree.T{ @@ -13139,10 +13149,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1056: + case 1058: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6060 +//line mysql_sql.y:6067 { locale := "" yyLOCAL = &tree.T{ @@ -13156,10 +13166,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1057: + case 1059: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6073 +//line mysql_sql.y:6080 { locale := "" yyLOCAL = &tree.T{ @@ -13173,10 +13183,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1058: + case 1060: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6086 +//line mysql_sql.y:6093 { locale := "" yyLOCAL = &tree.T{ @@ -13190,10 +13200,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1059: + case 1061: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6099 +//line mysql_sql.y:6106 { locale := "" yyLOCAL = &tree.T{ @@ -13207,10 +13217,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1060: + case 1062: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6112 +//line mysql_sql.y:6119 { locale := "" yyLOCAL = &tree.T{ @@ -13224,10 +13234,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1061: + case 1063: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6125 +//line mysql_sql.y:6132 { locale := "" yyLOCAL = &tree.T{ @@ -13241,10 +13251,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1062: + case 1064: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6138 +//line mysql_sql.y:6145 { locale := "" yyLOCAL = &tree.T{ @@ -13258,10 +13268,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1063: + case 1065: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6151 +//line mysql_sql.y:6158 { locale := "" yyLOCAL = &tree.T{ @@ -13275,10 +13285,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1064: + case 1066: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6166 +//line mysql_sql.y:6173 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -13302,10 +13312,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1065: + case 1067: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6189 +//line mysql_sql.y:6196 { locale := "" if yyDollar[2].lengthScaleOptUnion().Precision != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Precision > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -13342,10 +13352,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1066: + case 1068: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6226 +//line mysql_sql.y:6233 { locale := "" if yyDollar[2].lengthScaleOptUnion().Precision != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Precision > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -13382,10 +13392,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1067: + case 1069: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6274 +//line mysql_sql.y:6281 { locale := "" yyLOCAL = &tree.T{ @@ -13401,10 +13411,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1068: + case 1070: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6291 +//line mysql_sql.y:6298 { locale := "" yyLOCAL = &tree.T{ @@ -13417,10 +13427,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1069: + case 1071: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6303 +//line mysql_sql.y:6310 { locale := "" yyLOCAL = &tree.T{ @@ -13436,10 +13446,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1070: + case 1072: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6318 +//line mysql_sql.y:6325 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -13460,10 +13470,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1071: + case 1073: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6338 +//line mysql_sql.y:6345 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -13484,10 +13494,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1072: + case 1074: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6358 +//line mysql_sql.y:6365 { locale := "" yyLOCAL = &tree.T{ @@ -13502,10 +13512,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1073: + case 1075: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6374 +//line mysql_sql.y:6381 { locale := "" yyLOCAL = &tree.T{ @@ -13519,10 +13529,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1074: + case 1076: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6387 +//line mysql_sql.y:6394 { locale := "" yyLOCAL = &tree.T{ @@ -13536,10 +13546,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1075: + case 1077: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6400 +//line mysql_sql.y:6407 { locale := "" yyLOCAL = &tree.T{ @@ -13553,10 +13563,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1076: + case 1078: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6413 +//line mysql_sql.y:6420 { locale := "" yyLOCAL = &tree.T{ @@ -13570,10 +13580,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1077: + case 1079: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6426 +//line mysql_sql.y:6433 { locale := "" yyLOCAL = &tree.T{ @@ -13586,10 +13596,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1078: + case 1080: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6438 +//line mysql_sql.y:6445 { locale := "" yyLOCAL = &tree.T{ @@ -13602,10 +13612,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1079: + case 1081: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6450 +//line mysql_sql.y:6457 { locale := "" yyLOCAL = &tree.T{ @@ -13618,10 +13628,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1080: + case 1082: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6462 +//line mysql_sql.y:6469 { locale := "" yyLOCAL = &tree.T{ @@ -13634,10 +13644,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1081: + case 1083: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6474 +//line mysql_sql.y:6481 { locale := "" yyLOCAL = &tree.T{ @@ -13650,10 +13660,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1082: + case 1084: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6486 +//line mysql_sql.y:6493 { locale := "" yyLOCAL = &tree.T{ @@ -13666,10 +13676,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1083: + case 1085: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6498 +//line mysql_sql.y:6505 { locale := "" yyLOCAL = &tree.T{ @@ -13682,10 +13692,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1084: + case 1086: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6510 +//line mysql_sql.y:6517 { locale := "" yyLOCAL = &tree.T{ @@ -13698,10 +13708,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1085: + case 1087: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6522 +//line mysql_sql.y:6529 { locale := "" yyLOCAL = &tree.T{ @@ -13714,10 +13724,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1086: + case 1088: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6534 +//line mysql_sql.y:6541 { locale := "" yyLOCAL = &tree.T{ @@ -13731,10 +13741,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1087: + case 1089: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6547 +//line mysql_sql.y:6554 { locale := "" yyLOCAL = &tree.T{ @@ -13748,10 +13758,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1088: + case 1090: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6562 +//line mysql_sql.y:6569 { locale := "" yyLOCAL = &tree.T{ @@ -13764,75 +13774,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1089: + case 1091: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6585 +//line mysql_sql.y:6592 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1090: + case 1092: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6590 +//line mysql_sql.y:6597 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1091: + case 1093: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6596 +//line mysql_sql.y:6603 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1093: + case 1095: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6603 +//line mysql_sql.y:6610 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1094: + case 1096: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6607 +//line mysql_sql.y:6614 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1095: + case 1097: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6612 +//line mysql_sql.y:6619 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1096: + case 1098: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6616 +//line mysql_sql.y:6623 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1097: + case 1099: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6622 +//line mysql_sql.y:6629 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1098: + case 1100: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6628 +//line mysql_sql.y:6635 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -13840,10 +13850,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1099: + case 1101: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6635 +//line mysql_sql.y:6642 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -13851,10 +13861,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1100: + case 1102: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6642 +//line mysql_sql.y:6649 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -13862,10 +13872,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1101: + case 1103: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6651 +//line mysql_sql.y:6658 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 34, // this is the default precision for decimal @@ -13873,10 +13883,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1102: + case 1104: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6658 +//line mysql_sql.y:6665 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -13884,10 +13894,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1103: + case 1105: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6665 +//line mysql_sql.y:6672 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -13895,52 +13905,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1104: + case 1106: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6674 +//line mysql_sql.y:6681 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1105: + case 1107: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6678 +//line mysql_sql.y:6685 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1106: + case 1108: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6682 +//line mysql_sql.y:6689 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1107: + case 1109: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6688 +//line mysql_sql.y:6695 { } - case 1108: + case 1110: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6690 +//line mysql_sql.y:6697 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1112: + case 1114: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6700 +//line mysql_sql.y:6707 { yyVAL.str = "" } - case 1113: + case 1115: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6704 +//line mysql_sql.y:6711 { 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 33878019c4679ed5b38d5ab7f28abda553d69457..773e52db6335d55032daa18bb73b29520e6f5832 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -324,7 +324,7 @@ import ( %type <statements> stmt_list %type <statement> create_stmt insert_stmt delete_stmt drop_stmt alter_stmt %type <statement> delete_without_using_stmt delete_with_using_stmt -%type <statement> drop_ddl_stmt drop_database_stmt drop_table_stmt drop_index_stmt drop_prepare_stmt +%type <statement> drop_ddl_stmt drop_database_stmt drop_table_stmt drop_index_stmt drop_prepare_stmt drop_view_stmt %type <statement> drop_account_stmt drop_role_stmt drop_user_stmt %type <statement> create_account_stmt create_user_stmt create_role_stmt %type <statement> create_ddl_stmt create_table_stmt create_database_stmt create_index_stmt create_view_stmt @@ -2157,6 +2157,7 @@ drop_ddl_stmt: drop_database_stmt | drop_prepare_stmt | drop_table_stmt +| drop_view_stmt | drop_index_stmt | drop_role_stmt | drop_user_stmt @@ -2224,6 +2225,12 @@ drop_table_stmt: $$ = &tree.DropTable{IfExists: $3, Names: $4} } +drop_view_stmt: + DROP VIEW exists_opt table_name_list + { + $$ = &tree.DropView{IfExists: $3, Names: $4} + } + drop_database_stmt: DROP DATABASE exists_opt database_id { diff --git a/pkg/sql/parsers/tree/drop.go b/pkg/sql/parsers/tree/drop.go index f9734cc4ae13cbdd35252e1b7d9711cdfda13d6a..d4528ac3bb31ba19e6674c538c13142ebb0b9201 100644 --- a/pkg/sql/parsers/tree/drop.go +++ b/pkg/sql/parsers/tree/drop.go @@ -63,6 +63,29 @@ func NewDropTable(i bool, n TableNames) *DropTable { } } +// DropView DROP View statement +type DropView struct { + statementImpl + IfExists bool + Names TableNames +} + +func (node *DropView) Format(ctx *FmtCtx) { + ctx.WriteString("drop view") + if node.IfExists { + ctx.WriteString(" if exists") + } + ctx.WriteByte(' ') + node.Names.Format(ctx) +} + +func NewDropView(i bool, n TableNames) *DropView { + return &DropView{ + IfExists: i, + Names: n, + } +} + type DropIndex struct { statementImpl Name Identifier diff --git a/pkg/sql/plan/bind_context.go b/pkg/sql/plan/bind_context.go index d97ff992dedfbb6784d4dfc3a6f3f183c5ace0e8..dc1413c015c9ca1e0d2368bdd68460c3d81336ac 100644 --- a/pkg/sql/plan/bind_context.go +++ b/pkg/sql/plan/bind_context.go @@ -33,6 +33,9 @@ func NewBindContext(builder *QueryBuilder, parent *BindContext) *BindContext { bindingByCol: make(map[string]*Binding), parent: parent, } + if parent != nil { + bc.defaultDatabase = parent.defaultDatabase + } return bc } diff --git a/pkg/sql/plan/build.go b/pkg/sql/plan/build.go index 8ea11cae7d0f073b85929b7346a3d2af9e1e0328..b6ad3ede038aa482a709389f8e7f7095f942a82a 100644 --- a/pkg/sql/plan/build.go +++ b/pkg/sql/plan/build.go @@ -70,6 +70,10 @@ func BuildPlan(ctx CompilerContext, stmt tree.Statement) (*Plan, error) { return buildCreateTable(stmt, ctx) case *tree.DropTable: return buildDropTable(stmt, ctx) + case *tree.DropView: + return buildDropView(stmt, ctx) + case *tree.CreateView: + return buildCreateView(stmt, ctx) case *tree.CreateIndex: return buildCreateIndex(stmt, ctx) case *tree.DropIndex: diff --git a/pkg/sql/plan/build_ddl.go b/pkg/sql/plan/build_ddl.go index bc8d07190d8f1205970c6c29cae02dce16d93dd1..cae0ce33108ceab61ade8e2cedb1833ce7920ccb 100644 --- a/pkg/sql/plan/build_ddl.go +++ b/pkg/sql/plan/build_ddl.go @@ -15,6 +15,7 @@ package plan import ( + "encoding/json" "fmt" "github.com/matrixorigin/matrixone/pkg/container/types" @@ -25,6 +26,72 @@ import ( "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" ) +func buildCreateView(stmt *tree.CreateView, ctx CompilerContext) (*Plan, error) { + viewName := stmt.Name.ObjectName + createTable := &plan.CreateTable{ + IfNotExists: stmt.IfNotExists, + Temporary: stmt.Temporary, + TableDef: &TableDef{ + Name: string(viewName), + }, + } + + // get database name + if len(stmt.Name.SchemaName) == 0 { + createTable.Database = "" + } else { + createTable.Database = string(stmt.Name.SchemaName) + } + + // check view statement + stmtPlan, err := runBuildSelectByBinder(plan.Query_SELECT, ctx, stmt.AsSource) + if err != nil { + return nil, err + } + + query := stmtPlan.GetQuery() + cols := make([]*plan.ColDef, len(query.Headings)) + for idx, expr := range query.Nodes[query.Steps[len(query.Steps)-1]].ProjectList { + cols[idx] = &plan.ColDef{ + Name: query.Headings[idx], + Alg: plan.CompressType_Lz4, + Typ: expr.Typ, + Default: &plan.Default{ + NullAbility: false, + Expr: nil, + OriginString: "", + }, + } + } + createTable.TableDef.Cols = cols + + viewData, err := json.Marshal(ViewData{ + Stmt: ctx.GetRootSql(), + DefaultDatabase: ctx.DefaultDatabase(), + }) + if err != nil { + return nil, err + } + createTable.TableDef.Defs = append(createTable.TableDef.Defs, &plan.TableDef_DefType{ + Def: &plan.TableDef_DefType_View{ + View: &plan.ViewDef{ + View: string(viewData), + }, + }, + }) + + return &Plan{ + Plan: &plan.Plan_Ddl{ + Ddl: &plan.DataDefinition{ + DdlType: plan.DataDefinition_CREATE_TABLE, + Definition: &plan.DataDefinition_CreateTable{ + CreateTable: createTable, + }, + }, + }, + }, nil +} + func buildCreateTable(stmt *tree.CreateTable, ctx CompilerContext) (*Plan, error) { createTable := &plan.CreateTable{ IfNotExists: stmt.IfNotExists, @@ -263,6 +330,67 @@ func buildDropTable(stmt *tree.DropTable, ctx CompilerContext) (*Plan, error) { } dropTable.Table = string(stmt.Names[0].ObjectName) + _, tableDef := ctx.Resolve(dropTable.Database, dropTable.Table) + if tableDef == nil { + if !dropTable.IfExists { + return nil, errors.New("", fmt.Sprintf("table %s is not exists", dropTable.Table)) + } + } else { + isView := false + for _, def := range tableDef.Defs { + if _, ok := def.Def.(*plan.TableDef_DefType_View); ok { + isView = true + break + } + } + if isView { + return nil, errors.New("", fmt.Sprintf("table %s is not exists", dropTable.Table)) + } + } + + return &Plan{ + Plan: &plan.Plan_Ddl{ + Ddl: &plan.DataDefinition{ + DdlType: plan.DataDefinition_DROP_TABLE, + Definition: &plan.DataDefinition_DropTable{ + DropTable: dropTable, + }, + }, + }, + }, nil +} + +func buildDropView(stmt *tree.DropView, ctx CompilerContext) (*Plan, error) { + dropTable := &plan.DropTable{ + IfExists: stmt.IfExists, + } + if len(stmt.Names) != 1 { + return nil, errors.New(errno.SyntaxErrororAccessRuleViolation, "support drop one view now") + } + dropTable.Database = string(stmt.Names[0].SchemaName) + if dropTable.Database == "" { + dropTable.Database = ctx.DefaultDatabase() + } + dropTable.Table = string(stmt.Names[0].ObjectName) + + _, tableDef := ctx.Resolve(dropTable.Database, dropTable.Table) + if tableDef == nil { + if !dropTable.IfExists { + return nil, errors.New("", fmt.Sprintf("view %s is not exists", dropTable.Table)) + } + } else { + isView := false + for _, def := range tableDef.Defs { + if _, ok := def.Def.(*plan.TableDef_DefType_View); ok { + isView = true + break + } + } + if !isView { + return nil, errors.New("", fmt.Sprintf("%s is not a view", dropTable.Table)) + } + } + return &Plan{ Plan: &plan.Plan_Ddl{ Ddl: &plan.DataDefinition{ diff --git a/pkg/sql/plan/build_test.go b/pkg/sql/plan/build_test.go index 6d8bc338a0fe9732a2a503cd5c4468682ce6cace..2fb009d21df7a192541188bd7333110167f84628 100644 --- a/pkg/sql/plan/build_test.go +++ b/pkg/sql/plan/build_test.go @@ -31,7 +31,7 @@ func TestSingleSQL(t *testing.T) { // sql := "SELECT nation2.* FROM nation2 natural join region" // sql := `select n_name, avg(N_REGIONKEY) t from NATION where n_name != 'a' group by n_name having avg(N_REGIONKEY) > 10 order by t limit 20` // sql := `select date_add('1997-12-31 23:59:59',INTERVAL 100000 SECOND)` - sql := "select 1, 2 union select 2, 3" + sql := "create view v1 as select * from nation" // sql := "explain a" // sql := "select 18446744073709551500" // stmts, err := mysql.Parse(sql) @@ -436,7 +436,7 @@ func TestSingleTableSQLBuilder(t *testing.T) { "prepare stmt1 from 'delete from nation where n_nationkey > ?'", "prepare stmt1 from 'insert into nation select * from nation2 where n_name = ?'", "prepare stmt1 from 'select * from nation where n_name = ?'", - "prepare stmt1 from 'drop table t1'", + "prepare stmt1 from 'drop table if exists t1'", "prepare stmt1 from 'create table t1 (a int)'", "prepare stmt1 from select N_REGIONKEY from nation group by N_REGIONKEY having abs(nation.N_REGIONKEY - ?) > ?", "execute stmt1", diff --git a/pkg/sql/plan/mock.go b/pkg/sql/plan/mock.go index 67a52f949335126ba20a791d7dd91f74331e8ac4..2e0f5fbc0d7a14f972d3d2a2544968698b48299d 100644 --- a/pkg/sql/plan/mock.go +++ b/pkg/sql/plan/mock.go @@ -278,6 +278,10 @@ func (m *MockCompilerContext) DefaultDatabase() string { return "tpch" } +func (m *MockCompilerContext) GetRootSql() string { + return "" +} + func (m *MockCompilerContext) Resolve(dbName string, tableName string) (*ObjectRef, *TableDef) { name := strings.ToLower(tableName) return m.objects[name], m.tables[name] diff --git a/pkg/sql/plan/query_builder.go b/pkg/sql/plan/query_builder.go index 91d8db0ce0e73cc9bafbb9f15d59673133f0ec77..4126a17f69176eb532f454d4b191895a9756a891 100644 --- a/pkg/sql/plan/query_builder.go +++ b/pkg/sql/plan/query_builder.go @@ -15,6 +15,7 @@ package plan import ( + "encoding/json" "fmt" "math" "sort" @@ -23,6 +24,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/sql/errors" "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/plan/function" ) @@ -1467,6 +1469,10 @@ func (builder *QueryBuilder) buildTable(stmt tree.TableExpr, ctx *BindContext) ( subCtx := NewBindContext(builder, ctx) subCtx.maskedCTEs = cteRef.maskedCTEs subCtx.cteName = table + //reset defaultDatabase + if len(cteRef.defaultDatabase) > 0 { + subCtx.defaultDatabase = cteRef.defaultDatabase + } switch stmt := cteRef.ast.Stmt.(type) { case *tree.Select: @@ -1503,6 +1509,7 @@ func (builder *QueryBuilder) buildTable(stmt tree.TableExpr, ctx *BindContext) ( break } + schema = ctx.defaultDatabase } obj, tableDef := builder.compCtx.Resolve(schema, table) @@ -1510,6 +1517,65 @@ func (builder *QueryBuilder) buildTable(stmt tree.TableExpr, ctx *BindContext) ( return 0, errors.New("", fmt.Sprintf("table %q does not exist", table)) } + // set view statment to CTE + viewDefString := "" + for _, def := range tableDef.Defs { + if viewDef, ok := def.Def.(*plan.TableDef_DefType_View); ok { + viewDefString = viewDef.View.View + break + } + } + if viewDefString != "" { + if ctx.cteByName == nil { + ctx.cteByName = make(map[string]*CTERef) + } + + viewData := ViewData{} + err := json.Unmarshal([]byte(viewDefString), &viewData) + if err != nil { + return 0, err + } + + originStmts, err := mysql.Parse(viewData.Stmt) + if err != nil { + return 0, err + } + viewStmt, ok := originStmts[0].(*tree.CreateView) + if !ok { + return 0, errors.New("", "can not get view statement") + } + + // when use db1.v1 in db2 context, if you use v1 as ViewName, that may conflict + viewName := fmt.Sprintf("%s.%s", viewData.DefaultDatabase, viewStmt.Name.ObjectName) + var maskedCTEs map[string]any + if len(ctx.cteByName) > 0 { + maskedCTEs := make(map[string]any) + for name := range ctx.cteByName { + maskedCTEs[name] = nil + } + } + + ctx.cteByName[string(viewName)] = &CTERef{ + ast: &tree.CTE{ + Name: &tree.AliasClause{ + Alias: tree.Identifier(viewName), + Cols: viewStmt.ColNames, + }, + Stmt: viewStmt.AsSource, + }, + defaultDatabase: viewData.DefaultDatabase, + maskedCTEs: maskedCTEs, + } + + newTableName := tree.NewTableName(tree.Identifier(viewName), tree.ObjectNamePrefix{ + CatalogName: tbl.CatalogName, // TODO unused now, if used in some code, that will be save in view + SchemaName: tree.Identifier(""), + ExplicitCatalog: false, + ExplicitSchema: false, + }) + return builder.buildTable(newTableName, ctx) + } + nodeID = builder.appendNode(&plan.Node{ NodeType: plan.Node_TABLE_SCAN, Cost: builder.compCtx.Cost(obj, nil), diff --git a/pkg/sql/plan/types.go b/pkg/sql/plan/types.go index f79e777eb2cf2a1c4cdfffcd4490c34158b9b5d5..c9c2328c8d00fb69c3fc166d5fec8059b2df0144 100644 --- a/pkg/sql/plan/types.go +++ b/pkg/sql/plan/types.go @@ -29,6 +29,7 @@ const ( JoinSideCorrelated = 1 << iota ) +type TableDefType = plan.TableDef_DefType type TableDef = plan.TableDef type ColDef = plan.ColDef type ObjectRef = plan.ObjectRef @@ -42,6 +43,11 @@ type Query = plan.Query type Plan = plan.Plan type Type = plan.Type type Plan_Query = plan.Plan_Query +type Property = plan.Property +type TableDef_DefType_Properties = plan.TableDef_DefType_Properties +type TableDef_DefType_View = plan.TableDef_DefType_View +type PropertiesDef = plan.PropertiesDef +type ViewDef = plan.ViewDef type CompilerContext interface { // Default database/schema in context @@ -58,6 +64,8 @@ type CompilerContext interface { GetHideKeyDef(dbName string, tableName string) *ColDef // get estimated cost by table & expr Cost(obj *ObjectRef, e *Expr) *Cost + // get origin sql string of the root + GetRootSql() string } type Optimizer interface { @@ -77,6 +85,11 @@ type BaseOptimizer struct { ctx CompilerContext } +type ViewData struct { + Stmt string + DefaultDatabase string +} + type ExecType int const ( @@ -106,8 +119,9 @@ type QueryBuilder struct { } type CTERef struct { - ast *tree.CTE - maskedCTEs map[string]any + defaultDatabase string + ast *tree.CTE + maskedCTEs map[string]any } type BindContext struct { @@ -150,6 +164,8 @@ type BindContext struct { parent *BindContext leftChild *BindContext rightChild *BindContext + + defaultDatabase string } type NameTuple struct { diff --git a/pkg/vm/engine/memEngine/engine.go b/pkg/vm/engine/memEngine/engine.go index 385a4cf993c9e31d1fbb116b8c3ee99eb098c042..fb06c35b1a3ceb32f4b6c6a1b2206adf4e95e34a 100644 --- a/pkg/vm/engine/memEngine/engine.go +++ b/pkg/vm/engine/memEngine/engine.go @@ -107,3 +107,7 @@ func (e *MemEngine) GetHideKeyDef(_ string, _ string) *plan.ColDef { func (e *MemEngine) Cost(_ *plan.ObjectRef, _ *plan.Expr) *plan.Cost { return &plan.Cost{} } + +func (e *MemEngine) GetRootSql() string { + return "" +} diff --git a/pkg/vm/engine/tae/catalog/schema.go b/pkg/vm/engine/tae/catalog/schema.go index 7234532502a9cae5fe024783a888cb2de1058998..032aefae2a18787246e28fc537f23ac045bf1cb3 100644 --- a/pkg/vm/engine/tae/catalog/schema.go +++ b/pkg/vm/engine/tae/catalog/schema.go @@ -126,6 +126,7 @@ type Schema struct { BlockMaxRows uint32 SegmentMaxBlocks uint16 Comment string + View string SortKey *SortKey PhyAddrKey *ColDef @@ -260,6 +261,10 @@ func (s *Schema) ReadFrom(r io.Reader) (n int64, err error) { return } n += sn + if s.View, sn, err = common.ReadString(r); err != nil { + return + } + n += sn colCnt := uint16(0) if err = binary.Read(r, binary.BigEndian, &colCnt); err != nil { return @@ -336,6 +341,9 @@ func (s *Schema) Marshal() (buf []byte, err error) { if _, err = common.WriteString(s.Comment, &w); err != nil { return } + if _, err = common.WriteString(s.View, &w); err != nil { + return + } if err = binary.Write(&w, binary.BigEndian, uint16(len(s.ColDefs))); err != nil { return } diff --git a/pkg/vm/engine/tae/moengine/engine_test.go b/pkg/vm/engine/tae/moengine/engine_test.go index 2345a8b0a6579f91b83a3f215a2df409fdcf57f9..443ef06fb2257211b194deab7bf2733599177f29 100644 --- a/pkg/vm/engine/tae/moengine/engine_test.go +++ b/pkg/vm/engine/tae/moengine/engine_test.go @@ -16,9 +16,10 @@ package moengine import ( "context" - "github.com/matrixorigin/matrixone/pkg/pb/plan" "testing" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + mobat "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/vm/engine" diff --git a/pkg/vm/engine/tae/moengine/helper.go b/pkg/vm/engine/tae/moengine/helper.go index 7bdaac064d78b567b59bd9d7a2c9580519b4d609..ea003fc66f7c5f628ac15f45ecc186ac131311fc 100644 --- a/pkg/vm/engine/tae/moengine/helper.go +++ b/pkg/vm/engine/tae/moengine/helper.go @@ -16,9 +16,10 @@ package moengine import ( "fmt" - "github.com/matrixorigin/matrixone/pkg/pb/plan" "strings" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/vm/engine" "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/catalog" ) @@ -29,6 +30,12 @@ func SchemaToDefs(schema *catalog.Schema) (defs []engine.TableDef, err error) { commentDef.Comment = schema.Comment defs = append(defs, commentDef) } + + if schema.View != "" { + viewDef := new(engine.ViewDef) + viewDef.View = schema.View + defs = append(defs, viewDef) + } for _, col := range schema.ColDefs { if col.IsPhyAddr() { continue @@ -90,12 +97,18 @@ func DefsToSchema(name string, defs []engine.TableDef) (schema *catalog.Schema, return } } + case *engine.PropertiesDef: for _, property := range defVal.Properties { - if strings.ToLower(property.Key) == "comment" { + switch strings.ToLower(property.Key) { + case catalog.SystemRelAttr_Comment: schema.Comment = property.Value } } + + case *engine.ViewDef: + schema.View = defVal.View + default: // We will not deal with other cases for the time being } diff --git a/pkg/vm/engine/txn/operations.go b/pkg/vm/engine/txn/operations.go index 0d343da892d8d024e87fc4700e57e2e88752e0d2..8d885f69fef8680b303f62127474e273ab7e6d96 100644 --- a/pkg/vm/engine/txn/operations.go +++ b/pkg/vm/engine/txn/operations.go @@ -58,6 +58,7 @@ func mustEncodePayload(o any) []byte { func init() { // register TableDef types + gob.Register(new(engine.ViewDef)) gob.Register(new(engine.CommentDef)) gob.Register(new(engine.AttributeDef)) gob.Register(new(engine.IndexTableDef)) diff --git a/pkg/vm/engine/txn/test/execution.go b/pkg/vm/engine/txn/test/execution.go index 844be831286ff685dcd083d5ac65883e7c7d047c..d35a16acd50f432490977303fe3e7646e8303ca0 100644 --- a/pkg/vm/engine/txn/test/execution.go +++ b/pkg/vm/engine/txn/test/execution.go @@ -45,6 +45,10 @@ func (e *Execution) DefaultDatabase() string { return "test" } +func (e *Execution) GetRootSql() string { + return "" +} + func (e *Execution) GetHideKeyDef(dbName string, tableName string) *plan.ColDef { attrs, err := e.getTableAttrs(dbName, tableName) if err != nil { diff --git a/pkg/vm/engine/types.go b/pkg/vm/engine/types.go index ea146ff4282e7cf9a73ffb20f41b43be33675c57..f2c3eb032087ed3550f69f4d5547fa900818ec82 100644 --- a/pkg/vm/engine/types.go +++ b/pkg/vm/engine/types.go @@ -109,11 +109,16 @@ type CommentDef struct { Comment string } +type ViewDef struct { + View string +} + type TableDef interface { tableDef() } func (*CommentDef) tableDef() {} +func (*ViewDef) tableDef() {} func (*AttributeDef) tableDef() {} func (*IndexTableDef) tableDef() {} func (*PropertiesDef) tableDef() {} diff --git a/proto/plan.proto b/proto/plan.proto index 14a8da003bd0f20a4d55f2f1071544cb560fd0f3..8e62e9c55a1d58b806b64a1db581cf20c93555e1 100644 --- a/proto/plan.proto +++ b/proto/plan.proto @@ -218,12 +218,17 @@ message PropertiesDef { repeated Property properties = 1; } +message ViewDef { + string view = 1; +} + message TableDef { message DefType { oneof def { PrimaryKeyDef pk = 1; IndexDef idx = 2; PropertiesDef properties = 3; + ViewDef view = 4; } } string name = 1; diff --git a/test/cases/view/view.test b/test/cases/view/view.test new file mode 100644 index 0000000000000000000000000000000000000000..fa6685e0e74d4d7201eebe3ae58657dd8eedee2a --- /dev/null +++ b/test/cases/view/view.test @@ -0,0 +1,17 @@ +-- @label:bvt +drop table if exists t1; +create table t1 (a int, b int); +create view v1 as select * from t1; +select * from v1; +insert into t1 values (1, 11), (2, 22), (3, 33); +show columns from v1; +select * from v1 where a > 1; +create database db2; +use db2; +select * from view.v1 where a > 1; +use view; +drop database db2; +drop table t1; +select * from v1; +drop table v1; +drop view v1; \ No newline at end of file diff --git a/test/result/view/view.result b/test/result/view/view.result new file mode 100644 index 0000000000000000000000000000000000000000..d355315a5ea505c8459f7a452a5a04033761e1ef --- /dev/null +++ b/test/result/view/view.result @@ -0,0 +1,28 @@ +drop table if exists t1; +create table t1 (a int, b int); +create view v1 as select * from t1; +select * from v1; +a b +insert into t1 values (1, 11), (2, 22), (3, 33); +show columns from v1; +Field Type Null Key Default Comment +a INT YES NULL +b INT YES NULL +select * from v1 where a > 1; +a b +2 22 +3 33 +create database db2; +use db2; +select * from view.v1 where a > 1; +a b +2 22 +3 33 +use view; +drop database db2; +drop table t1; +select * from v1; +table "t1" does not exist +drop table v1; +table v1 is not exists +drop view v1; \ No newline at end of file