// Code generated by protoc-gen-go. DO NOT EDIT. // source: binlogdata.proto package binlogdata import ( fmt "fmt" math "math" proto "github.com/golang/protobuf/proto" query "vitess.io/vitess/go/vt/proto/query" topodata "vitess.io/vitess/go/vt/proto/topodata" vtrpc "vitess.io/vitess/go/vt/proto/vtrpc" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // OnDDLAction lists the possible actions for DDLs. type OnDDLAction int32 const ( OnDDLAction_IGNORE OnDDLAction = 0 OnDDLAction_STOP OnDDLAction = 1 OnDDLAction_EXEC OnDDLAction = 2 OnDDLAction_EXEC_IGNORE OnDDLAction = 3 ) var OnDDLAction_name = map[int32]string{ 0: "IGNORE", 1: "STOP", 2: "EXEC", 3: "EXEC_IGNORE", } var OnDDLAction_value = map[string]int32{ "IGNORE": 0, "STOP": 1, "EXEC": 2, "EXEC_IGNORE": 3, } func (x OnDDLAction) String() string { return proto.EnumName(OnDDLAction_name, int32(x)) } func (OnDDLAction) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{0} } // VEventType enumerates the event types. Many of these types // will not be encountered in RBR mode. type VEventType int32 const ( VEventType_UNKNOWN VEventType = 0 VEventType_GTID VEventType = 1 VEventType_BEGIN VEventType = 2 VEventType_COMMIT VEventType = 3 VEventType_ROLLBACK VEventType = 4 VEventType_DDL VEventType = 5 // INSERT, REPLACE, UPDATE, DELETE and SET will not be seen in RBR mode. VEventType_INSERT VEventType = 6 VEventType_REPLACE VEventType = 7 VEventType_UPDATE VEventType = 8 VEventType_DELETE VEventType = 9 VEventType_SET VEventType = 10 // OTHER is a dummy event. If encountered, the current GTID must be // recorded by the client to be able to resume. VEventType_OTHER VEventType = 11 VEventType_ROW VEventType = 12 VEventType_FIELD VEventType = 13 // HEARTBEAT is sent if there is inactivity. If a client does not // receive events beyond the hearbeat interval, it can assume that it's // lost connection to the vstreamer. VEventType_HEARTBEAT VEventType = 14 // VGTID is generated by VTGate's VStream that combines multiple // GTIDs. VEventType_VGTID VEventType = 15 VEventType_JOURNAL VEventType = 16 ) var VEventType_name = map[int32]string{ 0: "UNKNOWN", 1: "GTID", 2: "BEGIN", 3: "COMMIT", 4: "ROLLBACK", 5: "DDL", 6: "INSERT", 7: "REPLACE", 8: "UPDATE", 9: "DELETE", 10: "SET", 11: "OTHER", 12: "ROW", 13: "FIELD", 14: "HEARTBEAT", 15: "VGTID", 16: "JOURNAL", } var VEventType_value = map[string]int32{ "UNKNOWN": 0, "GTID": 1, "BEGIN": 2, "COMMIT": 3, "ROLLBACK": 4, "DDL": 5, "INSERT": 6, "REPLACE": 7, "UPDATE": 8, "DELETE": 9, "SET": 10, "OTHER": 11, "ROW": 12, "FIELD": 13, "HEARTBEAT": 14, "VGTID": 15, "JOURNAL": 16, } func (x VEventType) String() string { return proto.EnumName(VEventType_name, int32(x)) } func (VEventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{1} } // MigrationType specifies the type of migration for the Journal. type MigrationType int32 const ( MigrationType_TABLES MigrationType = 0 MigrationType_SHARDS MigrationType = 1 ) var MigrationType_name = map[int32]string{ 0: "TABLES", 1: "SHARDS", } var MigrationType_value = map[string]int32{ "TABLES": 0, "SHARDS": 1, } func (x MigrationType) String() string { return proto.EnumName(MigrationType_name, int32(x)) } func (MigrationType) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{2} } type BinlogTransaction_Statement_Category int32 const ( BinlogTransaction_Statement_BL_UNRECOGNIZED BinlogTransaction_Statement_Category = 0 BinlogTransaction_Statement_BL_BEGIN BinlogTransaction_Statement_Category = 1 BinlogTransaction_Statement_BL_COMMIT BinlogTransaction_Statement_Category = 2 BinlogTransaction_Statement_BL_ROLLBACK BinlogTransaction_Statement_Category = 3 // BL_DML is deprecated. BinlogTransaction_Statement_BL_DML_DEPRECATED BinlogTransaction_Statement_Category = 4 BinlogTransaction_Statement_BL_DDL BinlogTransaction_Statement_Category = 5 BinlogTransaction_Statement_BL_SET BinlogTransaction_Statement_Category = 6 BinlogTransaction_Statement_BL_INSERT BinlogTransaction_Statement_Category = 7 BinlogTransaction_Statement_BL_UPDATE BinlogTransaction_Statement_Category = 8 BinlogTransaction_Statement_BL_DELETE BinlogTransaction_Statement_Category = 9 ) var BinlogTransaction_Statement_Category_name = map[int32]string{ 0: "BL_UNRECOGNIZED", 1: "BL_BEGIN", 2: "BL_COMMIT", 3: "BL_ROLLBACK", 4: "BL_DML_DEPRECATED", 5: "BL_DDL", 6: "BL_SET", 7: "BL_INSERT", 8: "BL_UPDATE", 9: "BL_DELETE", } var BinlogTransaction_Statement_Category_value = map[string]int32{ "BL_UNRECOGNIZED": 0, "BL_BEGIN": 1, "BL_COMMIT": 2, "BL_ROLLBACK": 3, "BL_DML_DEPRECATED": 4, "BL_DDL": 5, "BL_SET": 6, "BL_INSERT": 7, "BL_UPDATE": 8, "BL_DELETE": 9, } func (x BinlogTransaction_Statement_Category) String() string { return proto.EnumName(BinlogTransaction_Statement_Category_name, int32(x)) } func (BinlogTransaction_Statement_Category) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{1, 0, 0} } type Filter_FieldEventMode int32 const ( Filter_ERR_ON_MISMATCH Filter_FieldEventMode = 0 Filter_BEST_EFFORT Filter_FieldEventMode = 1 ) var Filter_FieldEventMode_name = map[int32]string{ 0: "ERR_ON_MISMATCH", 1: "BEST_EFFORT", } var Filter_FieldEventMode_value = map[string]int32{ "ERR_ON_MISMATCH": 0, "BEST_EFFORT": 1, } func (x Filter_FieldEventMode) String() string { return proto.EnumName(Filter_FieldEventMode_name, int32(x)) } func (Filter_FieldEventMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{7, 0} } // Charset is the per-statement charset info from a QUERY_EVENT binlog entry. type Charset struct { // @@session.character_set_client Client int32 `protobuf:"varint,1,opt,name=client,proto3" json:"client,omitempty"` // @@session.collation_connection Conn int32 `protobuf:"varint,2,opt,name=conn,proto3" json:"conn,omitempty"` // @@session.collation_server Server int32 `protobuf:"varint,3,opt,name=server,proto3" json:"server,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Charset) Reset() { *m = Charset{} } func (m *Charset) String() string { return proto.CompactTextString(m) } func (*Charset) ProtoMessage() {} func (*Charset) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{0} } func (m *Charset) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Charset.Unmarshal(m, b) } func (m *Charset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Charset.Marshal(b, m, deterministic) } func (m *Charset) XXX_Merge(src proto.Message) { xxx_messageInfo_Charset.Merge(m, src) } func (m *Charset) XXX_Size() int { return xxx_messageInfo_Charset.Size(m) } func (m *Charset) XXX_DiscardUnknown() { xxx_messageInfo_Charset.DiscardUnknown(m) } var xxx_messageInfo_Charset proto.InternalMessageInfo func (m *Charset) GetClient() int32 { if m != nil { return m.Client } return 0 } func (m *Charset) GetConn() int32 { if m != nil { return m.Conn } return 0 } func (m *Charset) GetServer() int32 { if m != nil { return m.Server } return 0 } // BinlogTransaction describes a transaction inside the binlogs. // It is streamed by vttablet for filtered replication, used during resharding. type BinlogTransaction struct { // the statements in this transaction Statements []*BinlogTransaction_Statement `protobuf:"bytes,1,rep,name=statements,proto3" json:"statements,omitempty"` // The Event Token for this event. EventToken *query.EventToken `protobuf:"bytes,4,opt,name=event_token,json=eventToken,proto3" json:"event_token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *BinlogTransaction) Reset() { *m = BinlogTransaction{} } func (m *BinlogTransaction) String() string { return proto.CompactTextString(m) } func (*BinlogTransaction) ProtoMessage() {} func (*BinlogTransaction) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{1} } func (m *BinlogTransaction) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BinlogTransaction.Unmarshal(m, b) } func (m *BinlogTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_BinlogTransaction.Marshal(b, m, deterministic) } func (m *BinlogTransaction) XXX_Merge(src proto.Message) { xxx_messageInfo_BinlogTransaction.Merge(m, src) } func (m *BinlogTransaction) XXX_Size() int { return xxx_messageInfo_BinlogTransaction.Size(m) } func (m *BinlogTransaction) XXX_DiscardUnknown() { xxx_messageInfo_BinlogTransaction.DiscardUnknown(m) } var xxx_messageInfo_BinlogTransaction proto.InternalMessageInfo func (m *BinlogTransaction) GetStatements() []*BinlogTransaction_Statement { if m != nil { return m.Statements } return nil } func (m *BinlogTransaction) GetEventToken() *query.EventToken { if m != nil { return m.EventToken } return nil } type BinlogTransaction_Statement struct { // what type of statement is this? Category BinlogTransaction_Statement_Category `protobuf:"varint,1,opt,name=category,proto3,enum=binlogdata.BinlogTransaction_Statement_Category" json:"category,omitempty"` // charset of this statement, if different from pre-negotiated default. Charset *Charset `protobuf:"bytes,2,opt,name=charset,proto3" json:"charset,omitempty"` // the sql Sql []byte `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *BinlogTransaction_Statement) Reset() { *m = BinlogTransaction_Statement{} } func (m *BinlogTransaction_Statement) String() string { return proto.CompactTextString(m) } func (*BinlogTransaction_Statement) ProtoMessage() {} func (*BinlogTransaction_Statement) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{1, 0} } func (m *BinlogTransaction_Statement) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BinlogTransaction_Statement.Unmarshal(m, b) } func (m *BinlogTransaction_Statement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_BinlogTransaction_Statement.Marshal(b, m, deterministic) } func (m *BinlogTransaction_Statement) XXX_Merge(src proto.Message) { xxx_messageInfo_BinlogTransaction_Statement.Merge(m, src) } func (m *BinlogTransaction_Statement) XXX_Size() int { return xxx_messageInfo_BinlogTransaction_Statement.Size(m) } func (m *BinlogTransaction_Statement) XXX_DiscardUnknown() { xxx_messageInfo_BinlogTransaction_Statement.DiscardUnknown(m) } var xxx_messageInfo_BinlogTransaction_Statement proto.InternalMessageInfo func (m *BinlogTransaction_Statement) GetCategory() BinlogTransaction_Statement_Category { if m != nil { return m.Category } return BinlogTransaction_Statement_BL_UNRECOGNIZED } func (m *BinlogTransaction_Statement) GetCharset() *Charset { if m != nil { return m.Charset } return nil } func (m *BinlogTransaction_Statement) GetSql() []byte { if m != nil { return m.Sql } return nil } // StreamKeyRangeRequest is the payload to StreamKeyRange type StreamKeyRangeRequest struct { // where to start Position string `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` // what to get KeyRange *topodata.KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` // default charset on the player side Charset *Charset `protobuf:"bytes,3,opt,name=charset,proto3" json:"charset,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *StreamKeyRangeRequest) Reset() { *m = StreamKeyRangeRequest{} } func (m *StreamKeyRangeRequest) String() string { return proto.CompactTextString(m) } func (*StreamKeyRangeRequest) ProtoMessage() {} func (*StreamKeyRangeRequest) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{2} } func (m *StreamKeyRangeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamKeyRangeRequest.Unmarshal(m, b) } func (m *StreamKeyRangeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamKeyRangeRequest.Marshal(b, m, deterministic) } func (m *StreamKeyRangeRequest) XXX_Merge(src proto.Message) { xxx_messageInfo_StreamKeyRangeRequest.Merge(m, src) } func (m *StreamKeyRangeRequest) XXX_Size() int { return xxx_messageInfo_StreamKeyRangeRequest.Size(m) } func (m *StreamKeyRangeRequest) XXX_DiscardUnknown() { xxx_messageInfo_StreamKeyRangeRequest.DiscardUnknown(m) } var xxx_messageInfo_StreamKeyRangeRequest proto.InternalMessageInfo func (m *StreamKeyRangeRequest) GetPosition() string { if m != nil { return m.Position } return "" } func (m *StreamKeyRangeRequest) GetKeyRange() *topodata.KeyRange { if m != nil { return m.KeyRange } return nil } func (m *StreamKeyRangeRequest) GetCharset() *Charset { if m != nil { return m.Charset } return nil } // StreamKeyRangeResponse is the response from StreamKeyRange type StreamKeyRangeResponse struct { BinlogTransaction *BinlogTransaction `protobuf:"bytes,1,opt,name=binlog_transaction,json=binlogTransaction,proto3" json:"binlog_transaction,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *StreamKeyRangeResponse) Reset() { *m = StreamKeyRangeResponse{} } func (m *StreamKeyRangeResponse) String() string { return proto.CompactTextString(m) } func (*StreamKeyRangeResponse) ProtoMessage() {} func (*StreamKeyRangeResponse) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{3} } func (m *StreamKeyRangeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamKeyRangeResponse.Unmarshal(m, b) } func (m *StreamKeyRangeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamKeyRangeResponse.Marshal(b, m, deterministic) } func (m *StreamKeyRangeResponse) XXX_Merge(src proto.Message) { xxx_messageInfo_StreamKeyRangeResponse.Merge(m, src) } func (m *StreamKeyRangeResponse) XXX_Size() int { return xxx_messageInfo_StreamKeyRangeResponse.Size(m) } func (m *StreamKeyRangeResponse) XXX_DiscardUnknown() { xxx_messageInfo_StreamKeyRangeResponse.DiscardUnknown(m) } var xxx_messageInfo_StreamKeyRangeResponse proto.InternalMessageInfo func (m *StreamKeyRangeResponse) GetBinlogTransaction() *BinlogTransaction { if m != nil { return m.BinlogTransaction } return nil } // StreamTablesRequest is the payload to StreamTables type StreamTablesRequest struct { // where to start Position string `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` // what to get Tables []string `protobuf:"bytes,2,rep,name=tables,proto3" json:"tables,omitempty"` // default charset on the player side Charset *Charset `protobuf:"bytes,3,opt,name=charset,proto3" json:"charset,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *StreamTablesRequest) Reset() { *m = StreamTablesRequest{} } func (m *StreamTablesRequest) String() string { return proto.CompactTextString(m) } func (*StreamTablesRequest) ProtoMessage() {} func (*StreamTablesRequest) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{4} } func (m *StreamTablesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamTablesRequest.Unmarshal(m, b) } func (m *StreamTablesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamTablesRequest.Marshal(b, m, deterministic) } func (m *StreamTablesRequest) XXX_Merge(src proto.Message) { xxx_messageInfo_StreamTablesRequest.Merge(m, src) } func (m *StreamTablesRequest) XXX_Size() int { return xxx_messageInfo_StreamTablesRequest.Size(m) } func (m *StreamTablesRequest) XXX_DiscardUnknown() { xxx_messageInfo_StreamTablesRequest.DiscardUnknown(m) } var xxx_messageInfo_StreamTablesRequest proto.InternalMessageInfo func (m *StreamTablesRequest) GetPosition() string { if m != nil { return m.Position } return "" } func (m *StreamTablesRequest) GetTables() []string { if m != nil { return m.Tables } return nil } func (m *StreamTablesRequest) GetCharset() *Charset { if m != nil { return m.Charset } return nil } // StreamTablesResponse is the response from StreamTables type StreamTablesResponse struct { BinlogTransaction *BinlogTransaction `protobuf:"bytes,1,opt,name=binlog_transaction,json=binlogTransaction,proto3" json:"binlog_transaction,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *StreamTablesResponse) Reset() { *m = StreamTablesResponse{} } func (m *StreamTablesResponse) String() string { return proto.CompactTextString(m) } func (*StreamTablesResponse) ProtoMessage() {} func (*StreamTablesResponse) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{5} } func (m *StreamTablesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamTablesResponse.Unmarshal(m, b) } func (m *StreamTablesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamTablesResponse.Marshal(b, m, deterministic) } func (m *StreamTablesResponse) XXX_Merge(src proto.Message) { xxx_messageInfo_StreamTablesResponse.Merge(m, src) } func (m *StreamTablesResponse) XXX_Size() int { return xxx_messageInfo_StreamTablesResponse.Size(m) } func (m *StreamTablesResponse) XXX_DiscardUnknown() { xxx_messageInfo_StreamTablesResponse.DiscardUnknown(m) } var xxx_messageInfo_StreamTablesResponse proto.InternalMessageInfo func (m *StreamTablesResponse) GetBinlogTransaction() *BinlogTransaction { if m != nil { return m.BinlogTransaction } return nil } // Rule represents one rule in a Filter. type Rule struct { // Match can be a table name or a regular expression. // If it starts with a '/', it's a regular expression. // For example, "t" matches a table named "t", whereas // "/t.*" matches all tables that begin with 't'. Match string `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` // Filter: If empty, all columns and rows of the matching tables // are sent. If it's a keyrange like "-80", only rows that // match the keyrange are sent. // If Match is a table name instead of a regular expression, // the Filter can also be a select expression like this: // "select * from t", same as an empty Filter, or // "select * from t where in_keyrange('-80')", same as "-80", or // "select col1, col2 from t where in_keyrange(col1, 'hash', '-80'), or // What is allowed in a select expression depends on whether // it's a vstreamer or vreplication request. For more details, // please refer to the specific package documentation. // On the vreplication side, Filter can also accept a special // "exclude" value, which will cause the matched tables // to be excluded. // TODO(sougou): support this on vstreamer side also. Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Rule) Reset() { *m = Rule{} } func (m *Rule) String() string { return proto.CompactTextString(m) } func (*Rule) ProtoMessage() {} func (*Rule) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{6} } func (m *Rule) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Rule.Unmarshal(m, b) } func (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Rule.Marshal(b, m, deterministic) } func (m *Rule) XXX_Merge(src proto.Message) { xxx_messageInfo_Rule.Merge(m, src) } func (m *Rule) XXX_Size() int { return xxx_messageInfo_Rule.Size(m) } func (m *Rule) XXX_DiscardUnknown() { xxx_messageInfo_Rule.DiscardUnknown(m) } var xxx_messageInfo_Rule proto.InternalMessageInfo func (m *Rule) GetMatch() string { if m != nil { return m.Match } return "" } func (m *Rule) GetFilter() string { if m != nil { return m.Filter } return "" } // Filter represents a list of ordered rules. The first // match wins. type Filter struct { Rules []*Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` // FieldEventMode specifies the behavior if there is a mismatch // between the current schema and the fields in the binlog. This // can happen if the binlog position is before a DDL that would // cause the fields to change. If vstreamer detects such // an inconsistency, the behavior depends on the FieldEventMode. // If the value is ERR_ON_MISMATCH (default), then it errors out. // If it's BEST_EFFORT, it sends a field event with fake column // names as "@1", "@2", etc. FieldEventMode Filter_FieldEventMode `protobuf:"varint,2,opt,name=fieldEventMode,proto3,enum=binlogdata.Filter_FieldEventMode" json:"fieldEventMode,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Filter) Reset() { *m = Filter{} } func (m *Filter) String() string { return proto.CompactTextString(m) } func (*Filter) ProtoMessage() {} func (*Filter) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{7} } func (m *Filter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Filter.Unmarshal(m, b) } func (m *Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Filter.Marshal(b, m, deterministic) } func (m *Filter) XXX_Merge(src proto.Message) { xxx_messageInfo_Filter.Merge(m, src) } func (m *Filter) XXX_Size() int { return xxx_messageInfo_Filter.Size(m) } func (m *Filter) XXX_DiscardUnknown() { xxx_messageInfo_Filter.DiscardUnknown(m) } var xxx_messageInfo_Filter proto.InternalMessageInfo func (m *Filter) GetRules() []*Rule { if m != nil { return m.Rules } return nil } func (m *Filter) GetFieldEventMode() Filter_FieldEventMode { if m != nil { return m.FieldEventMode } return Filter_ERR_ON_MISMATCH } // BinlogSource specifies the source and filter parameters for // Filtered Replication. KeyRange and Tables are legacy. Filter // is the new way to specify the filtering rules. type BinlogSource struct { // the source keyspace Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` // the source shard Shard string `protobuf:"bytes,2,opt,name=shard,proto3" json:"shard,omitempty"` // the source tablet type TabletType topodata.TabletType `protobuf:"varint,3,opt,name=tablet_type,json=tabletType,proto3,enum=topodata.TabletType" json:"tablet_type,omitempty"` // KeyRange is set if the request is for a keyrange KeyRange *topodata.KeyRange `protobuf:"bytes,4,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` // Tables is set if the request is for a list of tables Tables []string `protobuf:"bytes,5,rep,name=tables,proto3" json:"tables,omitempty"` // Filter is set if we're using the generalized representation // for the filter. Filter *Filter `protobuf:"bytes,6,opt,name=filter,proto3" json:"filter,omitempty"` // OnDdl specifies the action to be taken when a DDL is encountered. OnDdl OnDDLAction `protobuf:"varint,7,opt,name=on_ddl,json=onDdl,proto3,enum=binlogdata.OnDDLAction" json:"on_ddl,omitempty"` // Source is an external mysql. This attribute should be set to the username // to use in the connection ExternalMysql string `protobuf:"bytes,8,opt,name=external_mysql,json=externalMysql,proto3" json:"external_mysql,omitempty"` // StopAfterCopy specifies if vreplication should be stopped // after copying is done. StopAfterCopy bool `protobuf:"varint,9,opt,name=stop_after_copy,json=stopAfterCopy,proto3" json:"stop_after_copy,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *BinlogSource) Reset() { *m = BinlogSource{} } func (m *BinlogSource) String() string { return proto.CompactTextString(m) } func (*BinlogSource) ProtoMessage() {} func (*BinlogSource) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{8} } func (m *BinlogSource) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BinlogSource.Unmarshal(m, b) } func (m *BinlogSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_BinlogSource.Marshal(b, m, deterministic) } func (m *BinlogSource) XXX_Merge(src proto.Message) { xxx_messageInfo_BinlogSource.Merge(m, src) } func (m *BinlogSource) XXX_Size() int { return xxx_messageInfo_BinlogSource.Size(m) } func (m *BinlogSource) XXX_DiscardUnknown() { xxx_messageInfo_BinlogSource.DiscardUnknown(m) } var xxx_messageInfo_BinlogSource proto.InternalMessageInfo func (m *BinlogSource) GetKeyspace() string { if m != nil { return m.Keyspace } return "" } func (m *BinlogSource) GetShard() string { if m != nil { return m.Shard } return "" } func (m *BinlogSource) GetTabletType() topodata.TabletType { if m != nil { return m.TabletType } return topodata.TabletType_UNKNOWN } func (m *BinlogSource) GetKeyRange() *topodata.KeyRange { if m != nil { return m.KeyRange } return nil } func (m *BinlogSource) GetTables() []string { if m != nil { return m.Tables } return nil } func (m *BinlogSource) GetFilter() *Filter { if m != nil { return m.Filter } return nil } func (m *BinlogSource) GetOnDdl() OnDDLAction { if m != nil { return m.OnDdl } return OnDDLAction_IGNORE } func (m *BinlogSource) GetExternalMysql() string { if m != nil { return m.ExternalMysql } return "" } func (m *BinlogSource) GetStopAfterCopy() bool { if m != nil { return m.StopAfterCopy } return false } // RowChange represents one row change. // If Before is set and not After, it's a delete. // If After is set and not Before, it's an insert. // If both are set, it's an update. type RowChange struct { Before *query.Row `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"` After *query.Row `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *RowChange) Reset() { *m = RowChange{} } func (m *RowChange) String() string { return proto.CompactTextString(m) } func (*RowChange) ProtoMessage() {} func (*RowChange) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{9} } func (m *RowChange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RowChange.Unmarshal(m, b) } func (m *RowChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RowChange.Marshal(b, m, deterministic) } func (m *RowChange) XXX_Merge(src proto.Message) { xxx_messageInfo_RowChange.Merge(m, src) } func (m *RowChange) XXX_Size() int { return xxx_messageInfo_RowChange.Size(m) } func (m *RowChange) XXX_DiscardUnknown() { xxx_messageInfo_RowChange.DiscardUnknown(m) } var xxx_messageInfo_RowChange proto.InternalMessageInfo func (m *RowChange) GetBefore() *query.Row { if m != nil { return m.Before } return nil } func (m *RowChange) GetAfter() *query.Row { if m != nil { return m.After } return nil } // RowEvent represent row events for one table. type RowEvent struct { TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` RowChanges []*RowChange `protobuf:"bytes,2,rep,name=row_changes,json=rowChanges,proto3" json:"row_changes,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *RowEvent) Reset() { *m = RowEvent{} } func (m *RowEvent) String() string { return proto.CompactTextString(m) } func (*RowEvent) ProtoMessage() {} func (*RowEvent) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{10} } func (m *RowEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RowEvent.Unmarshal(m, b) } func (m *RowEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RowEvent.Marshal(b, m, deterministic) } func (m *RowEvent) XXX_Merge(src proto.Message) { xxx_messageInfo_RowEvent.Merge(m, src) } func (m *RowEvent) XXX_Size() int { return xxx_messageInfo_RowEvent.Size(m) } func (m *RowEvent) XXX_DiscardUnknown() { xxx_messageInfo_RowEvent.DiscardUnknown(m) } var xxx_messageInfo_RowEvent proto.InternalMessageInfo func (m *RowEvent) GetTableName() string { if m != nil { return m.TableName } return "" } func (m *RowEvent) GetRowChanges() []*RowChange { if m != nil { return m.RowChanges } return nil } // FieldEvent represents the field info for a table. type FieldEvent struct { TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` Fields []*query.Field `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *FieldEvent) Reset() { *m = FieldEvent{} } func (m *FieldEvent) String() string { return proto.CompactTextString(m) } func (*FieldEvent) ProtoMessage() {} func (*FieldEvent) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{11} } func (m *FieldEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldEvent.Unmarshal(m, b) } func (m *FieldEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FieldEvent.Marshal(b, m, deterministic) } func (m *FieldEvent) XXX_Merge(src proto.Message) { xxx_messageInfo_FieldEvent.Merge(m, src) } func (m *FieldEvent) XXX_Size() int { return xxx_messageInfo_FieldEvent.Size(m) } func (m *FieldEvent) XXX_DiscardUnknown() { xxx_messageInfo_FieldEvent.DiscardUnknown(m) } var xxx_messageInfo_FieldEvent proto.InternalMessageInfo func (m *FieldEvent) GetTableName() string { if m != nil { return m.TableName } return "" } func (m *FieldEvent) GetFields() []*query.Field { if m != nil { return m.Fields } return nil } // ShardGtid contains the GTID position for one shard. // It's used in a request for requesting a starting position. // It's used in a response to transmit the current position // of a shard. It's also used in a Journal to indicate the // list of targets and shard positions to migrate to. type ShardGtid struct { Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` Shard string `protobuf:"bytes,2,opt,name=shard,proto3" json:"shard,omitempty"` Gtid string `protobuf:"bytes,3,opt,name=gtid,proto3" json:"gtid,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *ShardGtid) Reset() { *m = ShardGtid{} } func (m *ShardGtid) String() string { return proto.CompactTextString(m) } func (*ShardGtid) ProtoMessage() {} func (*ShardGtid) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{12} } func (m *ShardGtid) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShardGtid.Unmarshal(m, b) } func (m *ShardGtid) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ShardGtid.Marshal(b, m, deterministic) } func (m *ShardGtid) XXX_Merge(src proto.Message) { xxx_messageInfo_ShardGtid.Merge(m, src) } func (m *ShardGtid) XXX_Size() int { return xxx_messageInfo_ShardGtid.Size(m) } func (m *ShardGtid) XXX_DiscardUnknown() { xxx_messageInfo_ShardGtid.DiscardUnknown(m) } var xxx_messageInfo_ShardGtid proto.InternalMessageInfo func (m *ShardGtid) GetKeyspace() string { if m != nil { return m.Keyspace } return "" } func (m *ShardGtid) GetShard() string { if m != nil { return m.Shard } return "" } func (m *ShardGtid) GetGtid() string { if m != nil { return m.Gtid } return "" } // A VGtid is a list of ShardGtids. type VGtid struct { ShardGtids []*ShardGtid `protobuf:"bytes,1,rep,name=shard_gtids,json=shardGtids,proto3" json:"shard_gtids,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VGtid) Reset() { *m = VGtid{} } func (m *VGtid) String() string { return proto.CompactTextString(m) } func (*VGtid) ProtoMessage() {} func (*VGtid) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{13} } func (m *VGtid) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VGtid.Unmarshal(m, b) } func (m *VGtid) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VGtid.Marshal(b, m, deterministic) } func (m *VGtid) XXX_Merge(src proto.Message) { xxx_messageInfo_VGtid.Merge(m, src) } func (m *VGtid) XXX_Size() int { return xxx_messageInfo_VGtid.Size(m) } func (m *VGtid) XXX_DiscardUnknown() { xxx_messageInfo_VGtid.DiscardUnknown(m) } var xxx_messageInfo_VGtid proto.InternalMessageInfo func (m *VGtid) GetShardGtids() []*ShardGtid { if m != nil { return m.ShardGtids } return nil } // KeyspaceShard represents a keyspace and shard. type KeyspaceShard struct { Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` Shard string `protobuf:"bytes,2,opt,name=shard,proto3" json:"shard,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *KeyspaceShard) Reset() { *m = KeyspaceShard{} } func (m *KeyspaceShard) String() string { return proto.CompactTextString(m) } func (*KeyspaceShard) ProtoMessage() {} func (*KeyspaceShard) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{14} } func (m *KeyspaceShard) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KeyspaceShard.Unmarshal(m, b) } func (m *KeyspaceShard) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_KeyspaceShard.Marshal(b, m, deterministic) } func (m *KeyspaceShard) XXX_Merge(src proto.Message) { xxx_messageInfo_KeyspaceShard.Merge(m, src) } func (m *KeyspaceShard) XXX_Size() int { return xxx_messageInfo_KeyspaceShard.Size(m) } func (m *KeyspaceShard) XXX_DiscardUnknown() { xxx_messageInfo_KeyspaceShard.DiscardUnknown(m) } var xxx_messageInfo_KeyspaceShard proto.InternalMessageInfo func (m *KeyspaceShard) GetKeyspace() string { if m != nil { return m.Keyspace } return "" } func (m *KeyspaceShard) GetShard() string { if m != nil { return m.Shard } return "" } // Journal contains the metadata for a journal event. // The commit of a journal event indicates the point of no return // for a migration. type Journal struct { // Id represents a unique journal id. Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` MigrationType MigrationType `protobuf:"varint,2,opt,name=migration_type,json=migrationType,proto3,enum=binlogdata.MigrationType" json:"migration_type,omitempty"` // Tables is set if the journal represents a TABLES migration. Tables []string `protobuf:"bytes,3,rep,name=tables,proto3" json:"tables,omitempty"` // LocalPosition is the source position at which the migration happened. LocalPosition string `protobuf:"bytes,4,opt,name=local_position,json=localPosition,proto3" json:"local_position,omitempty"` // ShardGtids is the list of targets to which the migration took place. ShardGtids []*ShardGtid `protobuf:"bytes,5,rep,name=shard_gtids,json=shardGtids,proto3" json:"shard_gtids,omitempty"` // Participants is the list of source participants for a migration. // Every participant is expected to have an identical journal entry. // While streaming, the client must wait for the journal entry to // be received from all pariticipants, and then replace them with new // streams specified by ShardGtid. // If a stream does not have all participants, a consistent migration // is not possible. Participants []*KeyspaceShard `protobuf:"bytes,6,rep,name=participants,proto3" json:"participants,omitempty"` // SourceWorkflows is the list of workflows in the source shard that // were migrated to the target. If a migration fails after a Journal // is committed, this information is used to start the target streams // that were created prior to the creation of the journal. SourceWorkflows []string `protobuf:"bytes,7,rep,name=source_workflows,json=sourceWorkflows,proto3" json:"source_workflows,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Journal) Reset() { *m = Journal{} } func (m *Journal) String() string { return proto.CompactTextString(m) } func (*Journal) ProtoMessage() {} func (*Journal) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{15} } func (m *Journal) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Journal.Unmarshal(m, b) } func (m *Journal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Journal.Marshal(b, m, deterministic) } func (m *Journal) XXX_Merge(src proto.Message) { xxx_messageInfo_Journal.Merge(m, src) } func (m *Journal) XXX_Size() int { return xxx_messageInfo_Journal.Size(m) } func (m *Journal) XXX_DiscardUnknown() { xxx_messageInfo_Journal.DiscardUnknown(m) } var xxx_messageInfo_Journal proto.InternalMessageInfo func (m *Journal) GetId() int64 { if m != nil { return m.Id } return 0 } func (m *Journal) GetMigrationType() MigrationType { if m != nil { return m.MigrationType } return MigrationType_TABLES } func (m *Journal) GetTables() []string { if m != nil { return m.Tables } return nil } func (m *Journal) GetLocalPosition() string { if m != nil { return m.LocalPosition } return "" } func (m *Journal) GetShardGtids() []*ShardGtid { if m != nil { return m.ShardGtids } return nil } func (m *Journal) GetParticipants() []*KeyspaceShard { if m != nil { return m.Participants } return nil } func (m *Journal) GetSourceWorkflows() []string { if m != nil { return m.SourceWorkflows } return nil } // VEvent represents a vstream event. // A FieldEvent is sent once for every table, just before // the first event for that table. The client is expected // to cache this information and match it against the RowEvent // which contains the table name. // A GTID event always precedes a commitable event, which can be // COMMIT, DDL or OTHER. // OTHER events are non-material events that have no additional metadata. type VEvent struct { Type VEventType `protobuf:"varint,1,opt,name=type,proto3,enum=binlogdata.VEventType" json:"type,omitempty"` // Timestamp is the binlog timestamp in seconds. // The value should be ignored if 0. Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Gtid is set if the event type is GTID. Gtid string `protobuf:"bytes,3,opt,name=gtid,proto3" json:"gtid,omitempty"` // Ddl is set if the event type is DDL. Ddl string `protobuf:"bytes,4,opt,name=ddl,proto3" json:"ddl,omitempty"` // RowEvent is set if the event type is ROW. RowEvent *RowEvent `protobuf:"bytes,5,opt,name=row_event,json=rowEvent,proto3" json:"row_event,omitempty"` // FieldEvent is set if the event type is FIELD. FieldEvent *FieldEvent `protobuf:"bytes,6,opt,name=field_event,json=fieldEvent,proto3" json:"field_event,omitempty"` // Vgtid is set if the event type is VGTID. // This event is only generated by VTGate's VStream function. Vgtid *VGtid `protobuf:"bytes,7,opt,name=vgtid,proto3" json:"vgtid,omitempty"` // Journal is set if the event type is JOURNAL. Journal *Journal `protobuf:"bytes,8,opt,name=journal,proto3" json:"journal,omitempty"` // Dml is set if the event type is INSERT, REPLACE, UPDATE or DELETE. Dml string `protobuf:"bytes,9,opt,name=dml,proto3" json:"dml,omitempty"` // CurrentTime specifies the current time when the message was sent. // This can be used to compenssate for clock skew. CurrentTime int64 `protobuf:"varint,20,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VEvent) Reset() { *m = VEvent{} } func (m *VEvent) String() string { return proto.CompactTextString(m) } func (*VEvent) ProtoMessage() {} func (*VEvent) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{16} } func (m *VEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VEvent.Unmarshal(m, b) } func (m *VEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VEvent.Marshal(b, m, deterministic) } func (m *VEvent) XXX_Merge(src proto.Message) { xxx_messageInfo_VEvent.Merge(m, src) } func (m *VEvent) XXX_Size() int { return xxx_messageInfo_VEvent.Size(m) } func (m *VEvent) XXX_DiscardUnknown() { xxx_messageInfo_VEvent.DiscardUnknown(m) } var xxx_messageInfo_VEvent proto.InternalMessageInfo func (m *VEvent) GetType() VEventType { if m != nil { return m.Type } return VEventType_UNKNOWN } func (m *VEvent) GetTimestamp() int64 { if m != nil { return m.Timestamp } return 0 } func (m *VEvent) GetGtid() string { if m != nil { return m.Gtid } return "" } func (m *VEvent) GetDdl() string { if m != nil { return m.Ddl } return "" } func (m *VEvent) GetRowEvent() *RowEvent { if m != nil { return m.RowEvent } return nil } func (m *VEvent) GetFieldEvent() *FieldEvent { if m != nil { return m.FieldEvent } return nil } func (m *VEvent) GetVgtid() *VGtid { if m != nil { return m.Vgtid } return nil } func (m *VEvent) GetJournal() *Journal { if m != nil { return m.Journal } return nil } func (m *VEvent) GetDml() string { if m != nil { return m.Dml } return "" } func (m *VEvent) GetCurrentTime() int64 { if m != nil { return m.CurrentTime } return 0 } // VStreamRequest is the payload for VStreamer type VStreamRequest struct { EffectiveCallerId *vtrpc.CallerID `protobuf:"bytes,1,opt,name=effective_caller_id,json=effectiveCallerId,proto3" json:"effective_caller_id,omitempty"` ImmediateCallerId *query.VTGateCallerID `protobuf:"bytes,2,opt,name=immediate_caller_id,json=immediateCallerId,proto3" json:"immediate_caller_id,omitempty"` Target *query.Target `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` Position string `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` Filter *Filter `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamRequest) Reset() { *m = VStreamRequest{} } func (m *VStreamRequest) String() string { return proto.CompactTextString(m) } func (*VStreamRequest) ProtoMessage() {} func (*VStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{17} } func (m *VStreamRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamRequest.Unmarshal(m, b) } func (m *VStreamRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamRequest.Marshal(b, m, deterministic) } func (m *VStreamRequest) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamRequest.Merge(m, src) } func (m *VStreamRequest) XXX_Size() int { return xxx_messageInfo_VStreamRequest.Size(m) } func (m *VStreamRequest) XXX_DiscardUnknown() { xxx_messageInfo_VStreamRequest.DiscardUnknown(m) } var xxx_messageInfo_VStreamRequest proto.InternalMessageInfo func (m *VStreamRequest) GetEffectiveCallerId() *vtrpc.CallerID { if m != nil { return m.EffectiveCallerId } return nil } func (m *VStreamRequest) GetImmediateCallerId() *query.VTGateCallerID { if m != nil { return m.ImmediateCallerId } return nil } func (m *VStreamRequest) GetTarget() *query.Target { if m != nil { return m.Target } return nil } func (m *VStreamRequest) GetPosition() string { if m != nil { return m.Position } return "" } func (m *VStreamRequest) GetFilter() *Filter { if m != nil { return m.Filter } return nil } // VStreamResponse is the response from VStreamer type VStreamResponse struct { Events []*VEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamResponse) Reset() { *m = VStreamResponse{} } func (m *VStreamResponse) String() string { return proto.CompactTextString(m) } func (*VStreamResponse) ProtoMessage() {} func (*VStreamResponse) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{18} } func (m *VStreamResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamResponse.Unmarshal(m, b) } func (m *VStreamResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamResponse.Marshal(b, m, deterministic) } func (m *VStreamResponse) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamResponse.Merge(m, src) } func (m *VStreamResponse) XXX_Size() int { return xxx_messageInfo_VStreamResponse.Size(m) } func (m *VStreamResponse) XXX_DiscardUnknown() { xxx_messageInfo_VStreamResponse.DiscardUnknown(m) } var xxx_messageInfo_VStreamResponse proto.InternalMessageInfo func (m *VStreamResponse) GetEvents() []*VEvent { if m != nil { return m.Events } return nil } // VStreamRowsRequest is the payload for VStreamRows type VStreamRowsRequest struct { EffectiveCallerId *vtrpc.CallerID `protobuf:"bytes,1,opt,name=effective_caller_id,json=effectiveCallerId,proto3" json:"effective_caller_id,omitempty"` ImmediateCallerId *query.VTGateCallerID `protobuf:"bytes,2,opt,name=immediate_caller_id,json=immediateCallerId,proto3" json:"immediate_caller_id,omitempty"` Target *query.Target `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` Query string `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"` Lastpk *query.QueryResult `protobuf:"bytes,5,opt,name=lastpk,proto3" json:"lastpk,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamRowsRequest) Reset() { *m = VStreamRowsRequest{} } func (m *VStreamRowsRequest) String() string { return proto.CompactTextString(m) } func (*VStreamRowsRequest) ProtoMessage() {} func (*VStreamRowsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{19} } func (m *VStreamRowsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamRowsRequest.Unmarshal(m, b) } func (m *VStreamRowsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamRowsRequest.Marshal(b, m, deterministic) } func (m *VStreamRowsRequest) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamRowsRequest.Merge(m, src) } func (m *VStreamRowsRequest) XXX_Size() int { return xxx_messageInfo_VStreamRowsRequest.Size(m) } func (m *VStreamRowsRequest) XXX_DiscardUnknown() { xxx_messageInfo_VStreamRowsRequest.DiscardUnknown(m) } var xxx_messageInfo_VStreamRowsRequest proto.InternalMessageInfo func (m *VStreamRowsRequest) GetEffectiveCallerId() *vtrpc.CallerID { if m != nil { return m.EffectiveCallerId } return nil } func (m *VStreamRowsRequest) GetImmediateCallerId() *query.VTGateCallerID { if m != nil { return m.ImmediateCallerId } return nil } func (m *VStreamRowsRequest) GetTarget() *query.Target { if m != nil { return m.Target } return nil } func (m *VStreamRowsRequest) GetQuery() string { if m != nil { return m.Query } return "" } func (m *VStreamRowsRequest) GetLastpk() *query.QueryResult { if m != nil { return m.Lastpk } return nil } // VStreamRowsResponse is the response from VStreamRows type VStreamRowsResponse struct { Fields []*query.Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` Pkfields []*query.Field `protobuf:"bytes,2,rep,name=pkfields,proto3" json:"pkfields,omitempty"` Gtid string `protobuf:"bytes,3,opt,name=gtid,proto3" json:"gtid,omitempty"` Rows []*query.Row `protobuf:"bytes,4,rep,name=rows,proto3" json:"rows,omitempty"` Lastpk *query.Row `protobuf:"bytes,5,opt,name=lastpk,proto3" json:"lastpk,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamRowsResponse) Reset() { *m = VStreamRowsResponse{} } func (m *VStreamRowsResponse) String() string { return proto.CompactTextString(m) } func (*VStreamRowsResponse) ProtoMessage() {} func (*VStreamRowsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{20} } func (m *VStreamRowsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamRowsResponse.Unmarshal(m, b) } func (m *VStreamRowsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamRowsResponse.Marshal(b, m, deterministic) } func (m *VStreamRowsResponse) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamRowsResponse.Merge(m, src) } func (m *VStreamRowsResponse) XXX_Size() int { return xxx_messageInfo_VStreamRowsResponse.Size(m) } func (m *VStreamRowsResponse) XXX_DiscardUnknown() { xxx_messageInfo_VStreamRowsResponse.DiscardUnknown(m) } var xxx_messageInfo_VStreamRowsResponse proto.InternalMessageInfo func (m *VStreamRowsResponse) GetFields() []*query.Field { if m != nil { return m.Fields } return nil } func (m *VStreamRowsResponse) GetPkfields() []*query.Field { if m != nil { return m.Pkfields } return nil } func (m *VStreamRowsResponse) GetGtid() string { if m != nil { return m.Gtid } return "" } func (m *VStreamRowsResponse) GetRows() []*query.Row { if m != nil { return m.Rows } return nil } func (m *VStreamRowsResponse) GetLastpk() *query.Row { if m != nil { return m.Lastpk } return nil } // VStreamResultsRequest is the payload for VStreamResults // The ids match VStreamRows, in case we decide to merge the two. type VStreamResultsRequest struct { EffectiveCallerId *vtrpc.CallerID `protobuf:"bytes,1,opt,name=effective_caller_id,json=effectiveCallerId,proto3" json:"effective_caller_id,omitempty"` ImmediateCallerId *query.VTGateCallerID `protobuf:"bytes,2,opt,name=immediate_caller_id,json=immediateCallerId,proto3" json:"immediate_caller_id,omitempty"` Target *query.Target `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` Query string `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamResultsRequest) Reset() { *m = VStreamResultsRequest{} } func (m *VStreamResultsRequest) String() string { return proto.CompactTextString(m) } func (*VStreamResultsRequest) ProtoMessage() {} func (*VStreamResultsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{21} } func (m *VStreamResultsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamResultsRequest.Unmarshal(m, b) } func (m *VStreamResultsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamResultsRequest.Marshal(b, m, deterministic) } func (m *VStreamResultsRequest) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamResultsRequest.Merge(m, src) } func (m *VStreamResultsRequest) XXX_Size() int { return xxx_messageInfo_VStreamResultsRequest.Size(m) } func (m *VStreamResultsRequest) XXX_DiscardUnknown() { xxx_messageInfo_VStreamResultsRequest.DiscardUnknown(m) } var xxx_messageInfo_VStreamResultsRequest proto.InternalMessageInfo func (m *VStreamResultsRequest) GetEffectiveCallerId() *vtrpc.CallerID { if m != nil { return m.EffectiveCallerId } return nil } func (m *VStreamResultsRequest) GetImmediateCallerId() *query.VTGateCallerID { if m != nil { return m.ImmediateCallerId } return nil } func (m *VStreamResultsRequest) GetTarget() *query.Target { if m != nil { return m.Target } return nil } func (m *VStreamResultsRequest) GetQuery() string { if m != nil { return m.Query } return "" } // VStreamResultsResponse is the response from VStreamResults // The ids match VStreamRows, in case we decide to merge the two. type VStreamResultsResponse struct { Fields []*query.Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` Gtid string `protobuf:"bytes,3,opt,name=gtid,proto3" json:"gtid,omitempty"` Rows []*query.Row `protobuf:"bytes,4,rep,name=rows,proto3" json:"rows,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *VStreamResultsResponse) Reset() { *m = VStreamResultsResponse{} } func (m *VStreamResultsResponse) String() string { return proto.CompactTextString(m) } func (*VStreamResultsResponse) ProtoMessage() {} func (*VStreamResultsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_5fd02bcb2e350dad, []int{22} } func (m *VStreamResultsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VStreamResultsResponse.Unmarshal(m, b) } func (m *VStreamResultsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_VStreamResultsResponse.Marshal(b, m, deterministic) } func (m *VStreamResultsResponse) XXX_Merge(src proto.Message) { xxx_messageInfo_VStreamResultsResponse.Merge(m, src) } func (m *VStreamResultsResponse) XXX_Size() int { return xxx_messageInfo_VStreamResultsResponse.Size(m) } func (m *VStreamResultsResponse) XXX_DiscardUnknown() { xxx_messageInfo_VStreamResultsResponse.DiscardUnknown(m) } var xxx_messageInfo_VStreamResultsResponse proto.InternalMessageInfo func (m *VStreamResultsResponse) GetFields() []*query.Field { if m != nil { return m.Fields } return nil } func (m *VStreamResultsResponse) GetGtid() string { if m != nil { return m.Gtid } return "" } func (m *VStreamResultsResponse) GetRows() []*query.Row { if m != nil { return m.Rows } return nil } func init() { proto.RegisterEnum("binlogdata.OnDDLAction", OnDDLAction_name, OnDDLAction_value) proto.RegisterEnum("binlogdata.VEventType", VEventType_name, VEventType_value) proto.RegisterEnum("binlogdata.MigrationType", MigrationType_name, MigrationType_value) proto.RegisterEnum("binlogdata.BinlogTransaction_Statement_Category", BinlogTransaction_Statement_Category_name, BinlogTransaction_Statement_Category_value) proto.RegisterEnum("binlogdata.Filter_FieldEventMode", Filter_FieldEventMode_name, Filter_FieldEventMode_value) proto.RegisterType((*Charset)(nil), "binlogdata.Charset") proto.RegisterType((*BinlogTransaction)(nil), "binlogdata.BinlogTransaction") proto.RegisterType((*BinlogTransaction_Statement)(nil), "binlogdata.BinlogTransaction.Statement") proto.RegisterType((*StreamKeyRangeRequest)(nil), "binlogdata.StreamKeyRangeRequest") proto.RegisterType((*StreamKeyRangeResponse)(nil), "binlogdata.StreamKeyRangeResponse") proto.RegisterType((*StreamTablesRequest)(nil), "binlogdata.StreamTablesRequest") proto.RegisterType((*StreamTablesResponse)(nil), "binlogdata.StreamTablesResponse") proto.RegisterType((*Rule)(nil), "binlogdata.Rule") proto.RegisterType((*Filter)(nil), "binlogdata.Filter") proto.RegisterType((*BinlogSource)(nil), "binlogdata.BinlogSource") proto.RegisterType((*RowChange)(nil), "binlogdata.RowChange") proto.RegisterType((*RowEvent)(nil), "binlogdata.RowEvent") proto.RegisterType((*FieldEvent)(nil), "binlogdata.FieldEvent") proto.RegisterType((*ShardGtid)(nil), "binlogdata.ShardGtid") proto.RegisterType((*VGtid)(nil), "binlogdata.VGtid") proto.RegisterType((*KeyspaceShard)(nil), "binlogdata.KeyspaceShard") proto.RegisterType((*Journal)(nil), "binlogdata.Journal") proto.RegisterType((*VEvent)(nil), "binlogdata.VEvent") proto.RegisterType((*VStreamRequest)(nil), "binlogdata.VStreamRequest") proto.RegisterType((*VStreamResponse)(nil), "binlogdata.VStreamResponse") proto.RegisterType((*VStreamRowsRequest)(nil), "binlogdata.VStreamRowsRequest") proto.RegisterType((*VStreamRowsResponse)(nil), "binlogdata.VStreamRowsResponse") proto.RegisterType((*VStreamResultsRequest)(nil), "binlogdata.VStreamResultsRequest") proto.RegisterType((*VStreamResultsResponse)(nil), "binlogdata.VStreamResultsResponse") } func init() { proto.RegisterFile("binlogdata.proto", fileDescriptor_5fd02bcb2e350dad) } var fileDescriptor_5fd02bcb2e350dad = []byte{ // 1709 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4b, 0x73, 0x23, 0x49, 0x11, 0x9e, 0xd6, 0x5b, 0xd9, 0xb6, 0xdc, 0x2e, 0x3f, 0x10, 0x13, 0x2c, 0xe1, 0xed, 0x60, 0x76, 0xbc, 0x8e, 0x40, 0x06, 0x01, 0xc3, 0x69, 0x59, 0xf4, 0x68, 0x7b, 0x34, 0xd3, 0x92, 0x3c, 0xa5, 0x1e, 0x0f, 0xb1, 0x97, 0x8e, 0xb6, 0x54, 0xf6, 0x34, 0xee, 0xd7, 0x74, 0x97, 0xec, 0xd5, 0x0f, 0x20, 0xf8, 0x01, 0xfc, 0x0a, 0xce, 0x5c, 0xe1, 0xca, 0x9d, 0x3b, 0x57, 0x4e, 0x9c, 0xf8, 0x07, 0x44, 0x3d, 0xba, 0xd5, 0xad, 0x59, 0x76, 0x3c, 0x1b, 0xc1, 0x01, 0x2e, 0x8a, 0xac, 0xec, 0xcc, 0xac, 0xcc, 0x2f, 0x1f, 0x55, 0x25, 0xd0, 0xae, 0xdc, 0xc0, 0x0b, 0x6f, 0x16, 0x0e, 0x75, 0x3a, 0x51, 0x1c, 0xd2, 0x10, 0xc1, 0x9a, 0xf3, 0x58, 0xbd, 0xa3, 0x71, 0x34, 0x17, 0x1f, 0x1e, 0xab, 0xef, 0x96, 0x24, 0x5e, 0xc9, 0x45, 0x8b, 0x86, 0x51, 0xb8, 0xd6, 0xd2, 0xc7, 0x50, 0x1f, 0xbc, 0x75, 0xe2, 0x84, 0x50, 0x74, 0x08, 0xb5, 0xb9, 0xe7, 0x92, 0x80, 0xb6, 0x95, 0x23, 0xe5, 0xb8, 0x8a, 0xe5, 0x0a, 0x21, 0xa8, 0xcc, 0xc3, 0x20, 0x68, 0x97, 0x38, 0x97, 0xd3, 0x4c, 0x36, 0x21, 0xf1, 0x1d, 0x89, 0xdb, 0x65, 0x21, 0x2b, 0x56, 0xfa, 0x3f, 0xca, 0xb0, 0xdb, 0xe7, 0x7e, 0x58, 0xb1, 0x13, 0x24, 0xce, 0x9c, 0xba, 0x61, 0x80, 0xce, 0x01, 0x12, 0xea, 0x50, 0xe2, 0x93, 0x80, 0x26, 0x6d, 0xe5, 0xa8, 0x7c, 0xac, 0x76, 0x9f, 0x76, 0x72, 0x11, 0xbc, 0xa7, 0xd2, 0x99, 0xa5, 0xf2, 0x38, 0xa7, 0x8a, 0xba, 0xa0, 0x92, 0x3b, 0x12, 0x50, 0x9b, 0x86, 0xb7, 0x24, 0x68, 0x57, 0x8e, 0x94, 0x63, 0xb5, 0xbb, 0xdb, 0x11, 0x01, 0x1a, 0xec, 0x8b, 0xc5, 0x3e, 0x60, 0x20, 0x19, 0xfd, 0xf8, 0xaf, 0x25, 0x68, 0x66, 0xd6, 0x90, 0x09, 0x8d, 0xb9, 0x43, 0xc9, 0x4d, 0x18, 0xaf, 0x78, 0x98, 0xad, 0xee, 0x4f, 0x1e, 0xe8, 0x48, 0x67, 0x20, 0xf5, 0x70, 0x66, 0x01, 0xfd, 0x18, 0xea, 0x73, 0x81, 0x1e, 0x47, 0x47, 0xed, 0xee, 0xe5, 0x8d, 0x49, 0x60, 0x71, 0x2a, 0x83, 0x34, 0x28, 0x27, 0xef, 0x3c, 0x0e, 0xd9, 0x16, 0x66, 0xa4, 0xfe, 0x47, 0x05, 0x1a, 0xa9, 0x5d, 0xb4, 0x07, 0x3b, 0x7d, 0xd3, 0x7e, 0x3d, 0xc1, 0xc6, 0x60, 0x7a, 0x3e, 0x19, 0x7d, 0x65, 0x0c, 0xb5, 0x47, 0x68, 0x0b, 0x1a, 0x7d, 0xd3, 0xee, 0x1b, 0xe7, 0xa3, 0x89, 0xa6, 0xa0, 0x6d, 0x68, 0xf6, 0x4d, 0x7b, 0x30, 0x1d, 0x8f, 0x47, 0x96, 0x56, 0x42, 0x3b, 0xa0, 0xf6, 0x4d, 0x1b, 0x4f, 0x4d, 0xb3, 0xdf, 0x1b, 0xbc, 0xd4, 0xca, 0xe8, 0x00, 0x76, 0xfb, 0xa6, 0x3d, 0x1c, 0x9b, 0xf6, 0xd0, 0xb8, 0xc0, 0xc6, 0xa0, 0x67, 0x19, 0x43, 0xad, 0x82, 0x00, 0x6a, 0x8c, 0x3d, 0x34, 0xb5, 0xaa, 0xa4, 0x67, 0x86, 0xa5, 0xd5, 0xa4, 0xb9, 0xd1, 0x64, 0x66, 0x60, 0x4b, 0xab, 0xcb, 0xe5, 0xeb, 0x8b, 0x61, 0xcf, 0x32, 0xb4, 0x86, 0x5c, 0x0e, 0x0d, 0xd3, 0xb0, 0x0c, 0xad, 0xf9, 0xa2, 0xd2, 0x28, 0x69, 0xe5, 0x17, 0x95, 0x46, 0x59, 0xab, 0xe8, 0x7f, 0x50, 0xe0, 0x60, 0x46, 0x63, 0xe2, 0xf8, 0x2f, 0xc9, 0x0a, 0x3b, 0xc1, 0x0d, 0xc1, 0xe4, 0xdd, 0x92, 0x24, 0x14, 0x3d, 0x86, 0x46, 0x14, 0x26, 0x2e, 0xc3, 0x8e, 0x03, 0xdc, 0xc4, 0xd9, 0x1a, 0x9d, 0x42, 0xf3, 0x96, 0xac, 0xec, 0x98, 0xc9, 0x4b, 0xc0, 0x50, 0x27, 0x2b, 0xc8, 0xcc, 0x52, 0xe3, 0x56, 0x52, 0x79, 0x7c, 0xcb, 0x1f, 0xc6, 0x57, 0xbf, 0x86, 0xc3, 0x4d, 0xa7, 0x92, 0x28, 0x0c, 0x12, 0x82, 0x4c, 0x40, 0x42, 0xd1, 0xa6, 0xeb, 0xdc, 0x72, 0xff, 0xd4, 0xee, 0x27, 0xdf, 0x5a, 0x00, 0x78, 0xf7, 0x6a, 0x93, 0xa5, 0x7f, 0x0d, 0x7b, 0x62, 0x1f, 0xcb, 0xb9, 0xf2, 0x48, 0xf2, 0x90, 0xd0, 0x0f, 0xa1, 0x46, 0xb9, 0x70, 0xbb, 0x74, 0x54, 0x3e, 0x6e, 0x62, 0xb9, 0xfa, 0xd8, 0x08, 0x17, 0xb0, 0x5f, 0xdc, 0xf9, 0xbf, 0x12, 0xdf, 0xcf, 0xa1, 0x82, 0x97, 0x1e, 0x41, 0xfb, 0x50, 0xf5, 0x1d, 0x3a, 0x7f, 0x2b, 0xa3, 0x11, 0x0b, 0x16, 0xca, 0xb5, 0xeb, 0x51, 0x12, 0xf3, 0x14, 0x36, 0xb1, 0x5c, 0xe9, 0x7f, 0x52, 0xa0, 0x76, 0xc6, 0x49, 0xf4, 0x19, 0x54, 0xe3, 0x25, 0x0b, 0x56, 0xf4, 0xba, 0x96, 0xf7, 0x80, 0x59, 0xc6, 0xe2, 0x33, 0x1a, 0x41, 0xeb, 0xda, 0x25, 0xde, 0x82, 0xb7, 0xee, 0x38, 0x5c, 0x88, 0xaa, 0x68, 0x75, 0x3f, 0xcd, 0x2b, 0x08, 0x9b, 0x9d, 0xb3, 0x82, 0x20, 0xde, 0x50, 0xd4, 0x9f, 0x41, 0xab, 0x28, 0xc1, 0xda, 0xc9, 0xc0, 0xd8, 0x9e, 0x4e, 0xec, 0xf1, 0x68, 0x36, 0xee, 0x59, 0x83, 0xe7, 0xda, 0x23, 0xde, 0x31, 0xc6, 0xcc, 0xb2, 0x8d, 0xb3, 0xb3, 0x29, 0xb6, 0x34, 0x45, 0xff, 0x67, 0x09, 0xb6, 0x04, 0x28, 0xb3, 0x70, 0x19, 0xcf, 0x09, 0xcb, 0xe2, 0x2d, 0x59, 0x25, 0x91, 0x33, 0x27, 0x69, 0x16, 0xd3, 0x35, 0x03, 0x24, 0x79, 0xeb, 0xc4, 0x0b, 0x19, 0xb9, 0x58, 0xa0, 0x5f, 0x80, 0xca, 0xb3, 0x49, 0x6d, 0xba, 0x8a, 0x08, 0xcf, 0x63, 0xab, 0xbb, 0xbf, 0x2e, 0x6c, 0x9e, 0x2b, 0x6a, 0xad, 0x22, 0x82, 0x81, 0x66, 0x74, 0xb1, 0x1b, 0x2a, 0x0f, 0xe8, 0x86, 0x75, 0x0d, 0x55, 0x0b, 0x35, 0x74, 0x92, 0x25, 0xa4, 0x26, 0xad, 0xbc, 0x87, 0x5e, 0x9a, 0x24, 0xd4, 0x81, 0x5a, 0x18, 0xd8, 0x8b, 0x85, 0xd7, 0xae, 0x73, 0x37, 0xbf, 0x97, 0x97, 0x9d, 0x06, 0xc3, 0xa1, 0xd9, 0x13, 0x65, 0x51, 0x0d, 0x83, 0xe1, 0xc2, 0x43, 0x4f, 0xa0, 0x45, 0xbe, 0xa6, 0x24, 0x0e, 0x1c, 0xcf, 0xf6, 0x57, 0x6c, 0x7a, 0x35, 0x78, 0xe8, 0xdb, 0x29, 0x77, 0xcc, 0x98, 0xe8, 0x33, 0xd8, 0x49, 0x68, 0x18, 0xd9, 0xce, 0x35, 0x25, 0xb1, 0x3d, 0x0f, 0xa3, 0x55, 0xbb, 0x79, 0xa4, 0x1c, 0x37, 0xf0, 0x36, 0x63, 0xf7, 0x18, 0x77, 0x10, 0x46, 0x2b, 0xfd, 0x15, 0x34, 0x71, 0x78, 0x3f, 0x78, 0xcb, 0xe3, 0xd1, 0xa1, 0x76, 0x45, 0xae, 0xc3, 0x98, 0xc8, 0x42, 0x05, 0x39, 0xc8, 0x71, 0x78, 0x8f, 0xe5, 0x17, 0x74, 0x04, 0x55, 0x6e, 0x53, 0x8e, 0x8b, 0xbc, 0x88, 0xf8, 0xa0, 0x3b, 0xd0, 0xc0, 0xe1, 0x3d, 0x4f, 0x3b, 0xfa, 0x04, 0x04, 0xc0, 0x76, 0xe0, 0xf8, 0x69, 0xf6, 0x9a, 0x9c, 0x33, 0x71, 0x7c, 0x82, 0x9e, 0x81, 0x1a, 0x87, 0xf7, 0xf6, 0x9c, 0x6f, 0x2f, 0x3a, 0x51, 0xed, 0x1e, 0x14, 0x8a, 0x33, 0x75, 0x0e, 0x43, 0x9c, 0x92, 0x89, 0xfe, 0x0a, 0x60, 0x5d, 0x5b, 0x1f, 0xda, 0xe4, 0x47, 0x2c, 0x1b, 0xc4, 0x5b, 0xa4, 0xf6, 0xb7, 0xa4, 0xcb, 0xdc, 0x02, 0x96, 0xdf, 0x18, 0x10, 0x33, 0x56, 0x3c, 0xe7, 0xd4, 0x5d, 0x7c, 0x87, 0x92, 0x43, 0x50, 0xb9, 0xa1, 0xee, 0x82, 0xd7, 0x5a, 0x13, 0x73, 0x5a, 0xff, 0x12, 0xaa, 0x97, 0xdc, 0xdc, 0x33, 0x50, 0xb9, 0x94, 0xcd, 0xd8, 0x69, 0x0f, 0x16, 0xc2, 0xcc, 0xb6, 0xc6, 0x90, 0xa4, 0x64, 0xa2, 0xf7, 0x60, 0xfb, 0xa5, 0xdc, 0x96, 0x0b, 0x7c, 0xbc, 0x5f, 0xfa, 0x9f, 0x4b, 0x50, 0x7f, 0x11, 0x2e, 0x59, 0x61, 0xa0, 0x16, 0x94, 0xdc, 0x05, 0xd7, 0x2b, 0xe3, 0x92, 0xbb, 0x40, 0xbf, 0x86, 0x96, 0xef, 0xde, 0xc4, 0x0e, 0x2b, 0x2f, 0xd1, 0x29, 0xa2, 0xd9, 0xbf, 0x9f, 0xf7, 0x6c, 0x9c, 0x4a, 0xf0, 0x76, 0xd9, 0xf6, 0xf3, 0xcb, 0x5c, 0x03, 0x94, 0x0b, 0x0d, 0xf0, 0x04, 0x5a, 0x5e, 0x38, 0x77, 0x3c, 0x3b, 0x1b, 0xbf, 0x15, 0x51, 0xa4, 0x9c, 0x7b, 0x91, 0xce, 0xe0, 0x0d, 0x5c, 0xaa, 0x0f, 0xc4, 0x05, 0x7d, 0x01, 0x5b, 0x91, 0x13, 0x53, 0x77, 0xee, 0x46, 0x0e, 0xbb, 0xc0, 0xd4, 0xb8, 0x62, 0xc1, 0xed, 0x02, 0x6e, 0xb8, 0x20, 0x8e, 0x3e, 0x07, 0x2d, 0xe1, 0xa3, 0xc5, 0xbe, 0x0f, 0xe3, 0xdb, 0x6b, 0x2f, 0xbc, 0x4f, 0xda, 0x75, 0xee, 0xff, 0x8e, 0xe0, 0xbf, 0x49, 0xd9, 0xfa, 0xbf, 0x4a, 0x50, 0xbb, 0x14, 0x55, 0x76, 0x02, 0x15, 0x8e, 0x91, 0xb8, 0xa4, 0x1c, 0xe6, 0x37, 0x13, 0x12, 0x1c, 0x20, 0x2e, 0x83, 0x7e, 0x00, 0x4d, 0xea, 0xfa, 0x24, 0xa1, 0x8e, 0x1f, 0x71, 0x50, 0xcb, 0x78, 0xcd, 0xf8, 0xa6, 0x5a, 0x61, 0x37, 0x11, 0x36, 0x03, 0x04, 0x4c, 0x8c, 0x44, 0x3f, 0x85, 0x26, 0xeb, 0x0d, 0x7e, 0x71, 0x6a, 0x57, 0x79, 0xb3, 0xed, 0x6f, 0x74, 0x06, 0xdf, 0x16, 0x37, 0xe2, 0xb4, 0xdb, 0x7e, 0x09, 0x2a, 0xaf, 0x66, 0xa9, 0x24, 0x86, 0xcf, 0x61, 0x71, 0xf8, 0xa4, 0x5d, 0x83, 0x61, 0x3d, 0xaf, 0xd1, 0x53, 0xa8, 0xde, 0x71, 0x97, 0xea, 0xf2, 0x02, 0x97, 0x0f, 0x8e, 0xc3, 0x2f, 0xbe, 0xb3, 0xd3, 0xf1, 0xb7, 0xa2, 0x9a, 0xf8, 0xd8, 0xd9, 0x38, 0x1d, 0x65, 0xa1, 0xe1, 0x54, 0x86, 0x47, 0xe5, 0x7b, 0x7c, 0xf2, 0xb0, 0xa8, 0x7c, 0x0f, 0x7d, 0x0a, 0x5b, 0xf3, 0x65, 0x1c, 0xf3, 0x2b, 0xa3, 0xeb, 0x93, 0xf6, 0x3e, 0x07, 0x47, 0x95, 0x3c, 0xcb, 0xf5, 0x89, 0xfe, 0xfb, 0x12, 0xb4, 0x2e, 0xc5, 0xa1, 0x9a, 0x1e, 0xe4, 0x5f, 0xc2, 0x1e, 0xb9, 0xbe, 0x26, 0x73, 0xea, 0xde, 0x11, 0x7b, 0xee, 0x78, 0x1e, 0x89, 0x6d, 0x59, 0xca, 0x6a, 0x77, 0xa7, 0x23, 0x2e, 0xd7, 0x03, 0xce, 0x1f, 0x0d, 0xf1, 0x6e, 0x26, 0x2b, 0x59, 0x0b, 0x64, 0xc0, 0x9e, 0xeb, 0xfb, 0x64, 0xe1, 0x3a, 0x34, 0x6f, 0x40, 0xcc, 0xb0, 0x03, 0x39, 0x10, 0x2e, 0xad, 0x73, 0x87, 0x92, 0xb5, 0x99, 0x4c, 0x23, 0x33, 0xf3, 0x84, 0xd5, 0x7b, 0x7c, 0x93, 0xdd, 0x0d, 0xb6, 0xa5, 0xa6, 0xc5, 0x99, 0x58, 0x7e, 0x2c, 0xdc, 0x3b, 0x2a, 0x1b, 0xf7, 0x8e, 0xf5, 0xd9, 0x50, 0xfd, 0xd0, 0xd9, 0xa0, 0x7f, 0x01, 0x3b, 0x19, 0x10, 0xf2, 0x5e, 0x71, 0x02, 0x35, 0x9e, 0xdc, 0x74, 0x8a, 0xa0, 0xf7, 0xeb, 0x10, 0x4b, 0x09, 0xfd, 0x77, 0x25, 0x40, 0xa9, 0x7e, 0x78, 0x9f, 0xfc, 0x8f, 0x82, 0xb9, 0x0f, 0x55, 0xce, 0x97, 0x48, 0x8a, 0x05, 0xc3, 0xc1, 0x73, 0x12, 0x1a, 0xdd, 0x66, 0x30, 0x0a, 0xe5, 0x57, 0xec, 0x17, 0x93, 0x64, 0xe9, 0x51, 0x2c, 0x25, 0xf4, 0xbf, 0x28, 0xb0, 0x57, 0xc0, 0x41, 0x62, 0xb9, 0x3e, 0x18, 0x94, 0xff, 0x7c, 0x30, 0xa0, 0x63, 0x68, 0x44, 0xb7, 0xdf, 0x72, 0x80, 0x64, 0x5f, 0xbf, 0xb1, 0xaf, 0x7f, 0x08, 0x95, 0x98, 0xcd, 0x97, 0x0a, 0xd7, 0xcc, 0x9f, 0x96, 0x9c, 0xcf, 0x8e, 0xdc, 0x42, 0x1c, 0x85, 0x23, 0x57, 0xfa, 0xff, 0x77, 0x05, 0x0e, 0xd6, 0x75, 0xb0, 0xf4, 0xe8, 0xff, 0x55, 0x2a, 0xf5, 0x18, 0x0e, 0x37, 0xa3, 0xfb, 0xa8, 0x04, 0x7d, 0x07, 0xd8, 0x4f, 0x7e, 0x05, 0x6a, 0xee, 0x6e, 0xc5, 0x9e, 0x60, 0xa3, 0xf3, 0xc9, 0x14, 0x1b, 0xda, 0x23, 0xd4, 0x80, 0xca, 0xcc, 0x9a, 0x5e, 0x68, 0x0a, 0xa3, 0x8c, 0xdf, 0x18, 0x03, 0xf1, 0xac, 0x63, 0x94, 0x2d, 0x85, 0xca, 0x27, 0x7f, 0x53, 0x00, 0xd6, 0x53, 0x1f, 0xa9, 0x50, 0x7f, 0x3d, 0x79, 0x39, 0x99, 0xbe, 0x99, 0x08, 0x03, 0xe7, 0xd6, 0x68, 0xa8, 0x29, 0xa8, 0x09, 0x55, 0xf1, 0x4e, 0x2c, 0xb1, 0x1d, 0xe4, 0x23, 0xb1, 0xcc, 0x5e, 0x90, 0xd9, 0x0b, 0xb1, 0x82, 0xea, 0x50, 0xce, 0xde, 0x81, 0xf2, 0xe1, 0x57, 0x63, 0x06, 0xb1, 0x71, 0x61, 0xf6, 0x06, 0x86, 0x56, 0x67, 0x1f, 0xb2, 0x27, 0x20, 0x40, 0x2d, 0x7d, 0xff, 0x31, 0x4d, 0xf6, 0x6a, 0x04, 0xb6, 0xcf, 0xd4, 0x7a, 0x6e, 0x60, 0x4d, 0x65, 0x3c, 0x3c, 0x7d, 0xa3, 0x6d, 0x31, 0xde, 0xd9, 0xc8, 0x30, 0x87, 0xda, 0x36, 0x7b, 0x36, 0x3e, 0x37, 0x7a, 0xd8, 0xea, 0x1b, 0x3d, 0x4b, 0x6b, 0xb1, 0x2f, 0x97, 0xdc, 0xc1, 0x1d, 0xb6, 0xcd, 0x8b, 0xe9, 0x6b, 0x3c, 0xe9, 0x99, 0x9a, 0x76, 0xf2, 0x14, 0xb6, 0x0b, 0x87, 0x3d, 0xdb, 0xcb, 0xea, 0xf5, 0x4d, 0x63, 0xa6, 0x3d, 0x62, 0xf4, 0xec, 0x79, 0x0f, 0x0f, 0x67, 0x9a, 0xd2, 0xff, 0xfc, 0xab, 0xa7, 0x77, 0x2e, 0x25, 0x49, 0xd2, 0x71, 0xc3, 0x53, 0x41, 0x9d, 0xde, 0x84, 0xa7, 0x77, 0xf4, 0x94, 0xff, 0x85, 0x71, 0xba, 0x9e, 0x48, 0x57, 0x35, 0xce, 0xf9, 0xd9, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x78, 0x33, 0x5b, 0xba, 0x1e, 0x11, 0x00, 0x00, }