From c71815b3cf3e7ea2e9d884183d9e19b2f6f99e96 Mon Sep 17 00:00:00 2001 From: Wenxuan Date: Tue, 1 Apr 2025 16:36:36 +0800 Subject: [PATCH 1/8] *: Add FTS related query info (#357) Signed-off-by: Wish (cherry picked from commit 44ad2b398c969661222d8836932177f1e056e80a) --- go-tipb/analyze.pb.go | 1 + go-tipb/executor.pb.go | 2155 +++++++++++++++++++++++++++++++------- go-tipb/expression.pb.go | 737 ++++++------- proto/executor.proto | 52 +- proto/expression.proto | 3 + 5 files changed, 2188 insertions(+), 760 deletions(-) diff --git a/go-tipb/analyze.pb.go b/go-tipb/analyze.pb.go index f0083270..2ceda9e6 100644 --- a/go-tipb/analyze.pb.go +++ b/go-tipb/analyze.pb.go @@ -45,6 +45,7 @@ It has these top-level messages: EncodedBytesSlice ExchangeReceiver ANNQueryInfo + FTSQueryInfo TableScan PartitionTableScan Join diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index 28fcc23a..f8da679f 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -333,6 +333,43 @@ func (x *ANNQueryType) UnmarshalJSON(data []byte) error { } func (ANNQueryType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{6} } +type FTSQueryType int32 + +const ( + FTSQueryType_FTSQueryTypeInvalid FTSQueryType = 0 + FTSQueryType_FTSQueryTypeFilter FTSQueryType = 1 + FTSQueryType_FTSQueryTypeTopK FTSQueryType = 2 +) + +var FTSQueryType_name = map[int32]string{ + 0: "FTSQueryTypeInvalid", + 1: "FTSQueryTypeFilter", + 2: "FTSQueryTypeTopK", +} +var FTSQueryType_value = map[string]int32{ + "FTSQueryTypeInvalid": 0, + "FTSQueryTypeFilter": 1, + "FTSQueryTypeTopK": 2, +} + +func (x FTSQueryType) Enum() *FTSQueryType { + p := new(FTSQueryType) + *p = x + return p +} +func (x FTSQueryType) String() string { + return proto.EnumName(FTSQueryType_name, int32(x)) +} +func (x *FTSQueryType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FTSQueryType_value, data, "FTSQueryType") + if err != nil { + return err + } + *x = FTSQueryType(value) + return nil +} +func (FTSQueryType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{7} } + type JoinType int32 const ( @@ -380,7 +417,7 @@ func (x *JoinType) UnmarshalJSON(data []byte) error { *x = JoinType(value) return nil } -func (JoinType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{7} } +func (JoinType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{8} } type JoinExecType int32 @@ -411,7 +448,7 @@ func (x *JoinExecType) UnmarshalJSON(data []byte) error { *x = JoinExecType(value) return nil } -func (JoinExecType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{8} } +func (JoinExecType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{9} } type RuntimeFilterType int32 @@ -448,7 +485,7 @@ func (x *RuntimeFilterType) UnmarshalJSON(data []byte) error { *x = RuntimeFilterType(value) return nil } -func (RuntimeFilterType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{9} } +func (RuntimeFilterType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{10} } type RuntimeFilterMode int32 @@ -482,7 +519,7 @@ func (x *RuntimeFilterMode) UnmarshalJSON(data []byte) error { *x = RuntimeFilterMode(value) return nil } -func (RuntimeFilterMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{10} } +func (RuntimeFilterMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{11} } type TiFlashPreAggMode int32 @@ -519,7 +556,7 @@ func (x *TiFlashPreAggMode) UnmarshalJSON(data []byte) error { *x = TiFlashPreAggMode(value) return nil } -func (TiFlashPreAggMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{11} } +func (TiFlashPreAggMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{12} } type WindowBoundType int32 @@ -556,7 +593,7 @@ func (x *WindowBoundType) UnmarshalJSON(data []byte) error { *x = WindowBoundType(value) return nil } -func (WindowBoundType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{12} } +func (WindowBoundType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{13} } // Used for range frame's comparison when finding frame's boundary type RangeCmpDataType int32 @@ -600,7 +637,7 @@ func (x *RangeCmpDataType) UnmarshalJSON(data []byte) error { *x = RangeCmpDataType(value) return nil } -func (RangeCmpDataType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{13} } +func (RangeCmpDataType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{14} } type WindowFrameType int32 @@ -637,7 +674,7 @@ func (x *WindowFrameType) UnmarshalJSON(data []byte) error { *x = WindowFrameType(value) return nil } -func (WindowFrameType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{14} } +func (WindowFrameType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{15} } // It represents a Executor. type Executor struct { @@ -1092,6 +1129,65 @@ func (m *ANNQueryInfo) GetHnswEfSearch() uint32 { return 0 } +type FTSQueryInfo struct { + QueryType FTSQueryType `protobuf:"varint,1,opt,name=query_type,json=queryType,enum=tipb.FTSQueryType" json:"query_type"` + IndexId int64 `protobuf:"varint,2,opt,name=index_id,json=indexId" json:"index_id"` + // Currently only one column is supported. + Columns []*ColumnInfo `protobuf:"bytes,3,rep,name=columns" json:"columns,omitempty"` + ColumnNames []string `protobuf:"bytes,4,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` + QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` + // For QueryType == TopK + TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FTSQueryInfo) Reset() { *m = FTSQueryInfo{} } +func (m *FTSQueryInfo) String() string { return proto.CompactTextString(m) } +func (*FTSQueryInfo) ProtoMessage() {} +func (*FTSQueryInfo) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{6} } + +func (m *FTSQueryInfo) GetQueryType() FTSQueryType { + if m != nil { + return m.QueryType + } + return FTSQueryType_FTSQueryTypeInvalid +} + +func (m *FTSQueryInfo) GetIndexId() int64 { + if m != nil { + return m.IndexId + } + return 0 +} + +func (m *FTSQueryInfo) GetColumns() []*ColumnInfo { + if m != nil { + return m.Columns + } + return nil +} + +func (m *FTSQueryInfo) GetColumnNames() []string { + if m != nil { + return m.ColumnNames + } + return nil +} + +func (m *FTSQueryInfo) GetQueryText() string { + if m != nil { + return m.QueryText + } + return "" +} + +func (m *FTSQueryInfo) GetTopK() uint32 { + if m != nil && m.TopK != nil { + return *m.TopK + } + return 0 +} + type TableScan struct { TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId" json:"table_id"` Columns []*ColumnInfo `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"` @@ -1112,7 +1208,7 @@ type TableScan struct { func (m *TableScan) Reset() { *m = TableScan{} } func (m *TableScan) String() string { return proto.CompactTextString(m) } func (*TableScan) ProtoMessage() {} -func (*TableScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{6} } +func (*TableScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{7} } func (m *TableScan) GetTableId() int64 { if m != nil { @@ -1223,7 +1319,7 @@ type PartitionTableScan struct { func (m *PartitionTableScan) Reset() { *m = PartitionTableScan{} } func (m *PartitionTableScan) String() string { return proto.CompactTextString(m) } func (*PartitionTableScan) ProtoMessage() {} -func (*PartitionTableScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{7} } +func (*PartitionTableScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{8} } func (m *PartitionTableScan) GetTableId() int64 { if m != nil { @@ -1324,7 +1420,7 @@ type Join struct { func (m *Join) Reset() { *m = Join{} } func (m *Join) String() string { return proto.CompactTextString(m) } func (*Join) ProtoMessage() {} -func (*Join) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{8} } +func (*Join) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{9} } func (m *Join) GetJoinType() JoinType { if m != nil { @@ -1438,7 +1534,7 @@ type RuntimeFilter struct { func (m *RuntimeFilter) Reset() { *m = RuntimeFilter{} } func (m *RuntimeFilter) String() string { return proto.CompactTextString(m) } func (*RuntimeFilter) ProtoMessage() {} -func (*RuntimeFilter) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{9} } +func (*RuntimeFilter) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{10} } func (m *RuntimeFilter) GetId() int32 { if m != nil { @@ -1502,7 +1598,7 @@ type IndexScan struct { func (m *IndexScan) Reset() { *m = IndexScan{} } func (m *IndexScan) String() string { return proto.CompactTextString(m) } func (*IndexScan) ProtoMessage() {} -func (*IndexScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{10} } +func (*IndexScan) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{11} } func (m *IndexScan) GetTableId() int64 { if m != nil { @@ -1557,7 +1653,7 @@ type Selection struct { func (m *Selection) Reset() { *m = Selection{} } func (m *Selection) String() string { return proto.CompactTextString(m) } func (*Selection) ProtoMessage() {} -func (*Selection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{11} } +func (*Selection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{12} } func (m *Selection) GetConditions() []*Expr { if m != nil { @@ -1591,7 +1687,7 @@ type Projection struct { func (m *Projection) Reset() { *m = Projection{} } func (m *Projection) String() string { return proto.CompactTextString(m) } func (*Projection) ProtoMessage() {} -func (*Projection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{12} } +func (*Projection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{13} } func (m *Projection) GetExprs() []*Expr { if m != nil { @@ -1631,7 +1727,7 @@ type Aggregation struct { func (m *Aggregation) Reset() { *m = Aggregation{} } func (m *Aggregation) String() string { return proto.CompactTextString(m) } func (*Aggregation) ProtoMessage() {} -func (*Aggregation) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{13} } +func (*Aggregation) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{14} } func (m *Aggregation) GetGroupBy() []*Expr { if m != nil { @@ -1696,7 +1792,7 @@ type TopN struct { func (m *TopN) Reset() { *m = TopN{} } func (m *TopN) String() string { return proto.CompactTextString(m) } func (*TopN) ProtoMessage() {} -func (*TopN) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{14} } +func (*TopN) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{15} } func (m *TopN) GetOrderBy() []*ByItem { if m != nil { @@ -1740,7 +1836,7 @@ type Limit struct { func (m *Limit) Reset() { *m = Limit{} } func (m *Limit) String() string { return proto.CompactTextString(m) } func (*Limit) ProtoMessage() {} -func (*Limit) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{15} } +func (*Limit) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{16} } func (m *Limit) GetLimit() uint64 { if m != nil { @@ -1783,7 +1879,7 @@ type Kill struct { func (m *Kill) Reset() { *m = Kill{} } func (m *Kill) String() string { return proto.CompactTextString(m) } func (*Kill) ProtoMessage() {} -func (*Kill) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{16} } +func (*Kill) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{17} } func (m *Kill) GetConnID() uint64 { if m != nil { @@ -1807,7 +1903,7 @@ type ExplainForConnection struct { func (m *ExplainForConnection) Reset() { *m = ExplainForConnection{} } func (m *ExplainForConnection) String() string { return proto.CompactTextString(m) } func (*ExplainForConnection) ProtoMessage() {} -func (*ExplainForConnection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{17} } +func (*ExplainForConnection) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{18} } func (m *ExplainForConnection) GetConnectionId() uint64 { if m != nil { @@ -1842,7 +1938,7 @@ func (m *ExecutorExecutionSummary) Reset() { *m = ExecutorExecutionSumma func (m *ExecutorExecutionSummary) String() string { return proto.CompactTextString(m) } func (*ExecutorExecutionSummary) ProtoMessage() {} func (*ExecutorExecutionSummary) Descriptor() ([]byte, []int) { - return fileDescriptorExecutor, []int{18} + return fileDescriptorExecutor, []int{19} } type isExecutorExecutionSummary_DetailInfo interface { @@ -1984,7 +2080,7 @@ type TiFlashExecutionInfo struct { func (m *TiFlashExecutionInfo) Reset() { *m = TiFlashExecutionInfo{} } func (m *TiFlashExecutionInfo) String() string { return proto.CompactTextString(m) } func (*TiFlashExecutionInfo) ProtoMessage() {} -func (*TiFlashExecutionInfo) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{19} } +func (*TiFlashExecutionInfo) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{20} } func (m *TiFlashExecutionInfo) GetExecutionSummaries() []*ExecutorExecutionSummary { if m != nil { @@ -2003,7 +2099,7 @@ func (m *TiFlashRegionNumOfInstance) Reset() { *m = TiFlashRegionNumOfIn func (m *TiFlashRegionNumOfInstance) String() string { return proto.CompactTextString(m) } func (*TiFlashRegionNumOfInstance) ProtoMessage() {} func (*TiFlashRegionNumOfInstance) Descriptor() ([]byte, []int) { - return fileDescriptorExecutor, []int{20} + return fileDescriptorExecutor, []int{21} } func (m *TiFlashRegionNumOfInstance) GetInstanceId() string { @@ -2064,13 +2160,38 @@ type TiFlashScanContext struct { TotalVectorIdxSearchDiscardedNodes *uint64 `protobuf:"varint,106,opt,name=total_vector_idx_search_discarded_nodes,json=totalVectorIdxSearchDiscardedNodes" json:"total_vector_idx_search_discarded_nodes,omitempty"` TotalVectorIdxReadVecTimeMs *uint64 `protobuf:"varint,107,opt,name=total_vector_idx_read_vec_time_ms,json=totalVectorIdxReadVecTimeMs" json:"total_vector_idx_read_vec_time_ms,omitempty"` TotalVectorIdxReadOthersTimeMs *uint64 `protobuf:"varint,108,opt,name=total_vector_idx_read_others_time_ms,json=totalVectorIdxReadOthersTimeMs" json:"total_vector_idx_read_others_time_ms,omitempty"` + FtsNFromInmemoryNoindex *uint32 `protobuf:"varint,150,opt,name=fts_n_from_inmemory_noindex,json=ftsNFromInmemoryNoindex" json:"fts_n_from_inmemory_noindex,omitempty"` + FtsNFromTinyIndex *uint32 `protobuf:"varint,151,opt,name=fts_n_from_tiny_index,json=ftsNFromTinyIndex" json:"fts_n_from_tiny_index,omitempty"` + FtsNFromTinyNoindex *uint32 `protobuf:"varint,152,opt,name=fts_n_from_tiny_noindex,json=ftsNFromTinyNoindex" json:"fts_n_from_tiny_noindex,omitempty"` + FtsNFromDmfIndex *uint32 `protobuf:"varint,153,opt,name=fts_n_from_dmf_index,json=ftsNFromDmfIndex" json:"fts_n_from_dmf_index,omitempty"` + FtsNFromDmfNoindex *uint32 `protobuf:"varint,154,opt,name=fts_n_from_dmf_noindex,json=ftsNFromDmfNoindex" json:"fts_n_from_dmf_noindex,omitempty"` + FtsRowsFromInmemoryNoindex *uint64 `protobuf:"varint,155,opt,name=fts_rows_from_inmemory_noindex,json=ftsRowsFromInmemoryNoindex" json:"fts_rows_from_inmemory_noindex,omitempty"` + FtsRowsFromTinyIndex *uint64 `protobuf:"varint,156,opt,name=fts_rows_from_tiny_index,json=ftsRowsFromTinyIndex" json:"fts_rows_from_tiny_index,omitempty"` + FtsRowsFromTinyNoindex *uint64 `protobuf:"varint,157,opt,name=fts_rows_from_tiny_noindex,json=ftsRowsFromTinyNoindex" json:"fts_rows_from_tiny_noindex,omitempty"` + FtsRowsFromDmfIndex *uint64 `protobuf:"varint,158,opt,name=fts_rows_from_dmf_index,json=ftsRowsFromDmfIndex" json:"fts_rows_from_dmf_index,omitempty"` + FtsRowsFromDmfNoindex *uint64 `protobuf:"varint,159,opt,name=fts_rows_from_dmf_noindex,json=ftsRowsFromDmfNoindex" json:"fts_rows_from_dmf_noindex,omitempty"` + FtsIdxLoadTotalMs *uint64 `protobuf:"varint,160,opt,name=fts_idx_load_total_ms,json=ftsIdxLoadTotalMs" json:"fts_idx_load_total_ms,omitempty"` + FtsIdxLoadFromCache *uint32 `protobuf:"varint,161,opt,name=fts_idx_load_from_cache,json=ftsIdxLoadFromCache" json:"fts_idx_load_from_cache,omitempty"` + FtsIdxLoadFromColumnFile *uint32 `protobuf:"varint,162,opt,name=fts_idx_load_from_column_file,json=ftsIdxLoadFromColumnFile" json:"fts_idx_load_from_column_file,omitempty"` + FtsIdxLoadFromStableS3 *uint32 `protobuf:"varint,163,opt,name=fts_idx_load_from_stable_s3,json=ftsIdxLoadFromStableS3" json:"fts_idx_load_from_stable_s3,omitempty"` + FtsIdxLoadFromStableDisk *uint32 `protobuf:"varint,164,opt,name=fts_idx_load_from_stable_disk,json=ftsIdxLoadFromStableDisk" json:"fts_idx_load_from_stable_disk,omitempty"` + FtsIdxSearchN *uint32 `protobuf:"varint,165,opt,name=fts_idx_search_n,json=ftsIdxSearchN" json:"fts_idx_search_n,omitempty"` + FtsIdxSearchTotalMs *uint64 `protobuf:"varint,166,opt,name=fts_idx_search_total_ms,json=ftsIdxSearchTotalMs" json:"fts_idx_search_total_ms,omitempty"` + FtsIdxDmSearchRows *uint64 `protobuf:"varint,167,opt,name=fts_idx_dm_search_rows,json=ftsIdxDmSearchRows" json:"fts_idx_dm_search_rows,omitempty"` + FtsIdxDmTotalReadFtsMs *uint64 `protobuf:"varint,168,opt,name=fts_idx_dm_total_read_fts_ms,json=ftsIdxDmTotalReadFtsMs" json:"fts_idx_dm_total_read_fts_ms,omitempty"` + FtsIdxDmTotalReadOthersMs *uint64 `protobuf:"varint,169,opt,name=fts_idx_dm_total_read_others_ms,json=ftsIdxDmTotalReadOthersMs" json:"fts_idx_dm_total_read_others_ms,omitempty"` + FtsIdxTinySearchRows *uint64 `protobuf:"varint,170,opt,name=fts_idx_tiny_search_rows,json=ftsIdxTinySearchRows" json:"fts_idx_tiny_search_rows,omitempty"` + FtsIdxTinyTotalReadFtsMs *uint64 `protobuf:"varint,171,opt,name=fts_idx_tiny_total_read_fts_ms,json=ftsIdxTinyTotalReadFtsMs" json:"fts_idx_tiny_total_read_fts_ms,omitempty"` + FtsIdxTinyTotalReadOthersMs *uint64 `protobuf:"varint,172,opt,name=fts_idx_tiny_total_read_others_ms,json=ftsIdxTinyTotalReadOthersMs" json:"fts_idx_tiny_total_read_others_ms,omitempty"` + FtsBruteTotalReadMs *uint64 `protobuf:"varint,173,opt,name=fts_brute_total_read_ms,json=ftsBruteTotalReadMs" json:"fts_brute_total_read_ms,omitempty"` + FtsBruteTotalSearchMs *uint64 `protobuf:"varint,174,opt,name=fts_brute_total_search_ms,json=ftsBruteTotalSearchMs" json:"fts_brute_total_search_ms,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TiFlashScanContext) Reset() { *m = TiFlashScanContext{} } func (m *TiFlashScanContext) String() string { return proto.CompactTextString(m) } func (*TiFlashScanContext) ProtoMessage() {} -func (*TiFlashScanContext) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{21} } +func (*TiFlashScanContext) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{22} } func (m *TiFlashScanContext) GetDmfileScannedPacks() uint64 { if m != nil && m.DmfileScannedPacks != nil { @@ -2373,6 +2494,181 @@ func (m *TiFlashScanContext) GetTotalVectorIdxReadOthersTimeMs() uint64 { return 0 } +func (m *TiFlashScanContext) GetFtsNFromInmemoryNoindex() uint32 { + if m != nil && m.FtsNFromInmemoryNoindex != nil { + return *m.FtsNFromInmemoryNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsNFromTinyIndex() uint32 { + if m != nil && m.FtsNFromTinyIndex != nil { + return *m.FtsNFromTinyIndex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsNFromTinyNoindex() uint32 { + if m != nil && m.FtsNFromTinyNoindex != nil { + return *m.FtsNFromTinyNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsNFromDmfIndex() uint32 { + if m != nil && m.FtsNFromDmfIndex != nil { + return *m.FtsNFromDmfIndex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsNFromDmfNoindex() uint32 { + if m != nil && m.FtsNFromDmfNoindex != nil { + return *m.FtsNFromDmfNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsRowsFromInmemoryNoindex() uint64 { + if m != nil && m.FtsRowsFromInmemoryNoindex != nil { + return *m.FtsRowsFromInmemoryNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsRowsFromTinyIndex() uint64 { + if m != nil && m.FtsRowsFromTinyIndex != nil { + return *m.FtsRowsFromTinyIndex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsRowsFromTinyNoindex() uint64 { + if m != nil && m.FtsRowsFromTinyNoindex != nil { + return *m.FtsRowsFromTinyNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsRowsFromDmfIndex() uint64 { + if m != nil && m.FtsRowsFromDmfIndex != nil { + return *m.FtsRowsFromDmfIndex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsRowsFromDmfNoindex() uint64 { + if m != nil && m.FtsRowsFromDmfNoindex != nil { + return *m.FtsRowsFromDmfNoindex + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxLoadTotalMs() uint64 { + if m != nil && m.FtsIdxLoadTotalMs != nil { + return *m.FtsIdxLoadTotalMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxLoadFromCache() uint32 { + if m != nil && m.FtsIdxLoadFromCache != nil { + return *m.FtsIdxLoadFromCache + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxLoadFromColumnFile() uint32 { + if m != nil && m.FtsIdxLoadFromColumnFile != nil { + return *m.FtsIdxLoadFromColumnFile + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxLoadFromStableS3() uint32 { + if m != nil && m.FtsIdxLoadFromStableS3 != nil { + return *m.FtsIdxLoadFromStableS3 + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxLoadFromStableDisk() uint32 { + if m != nil && m.FtsIdxLoadFromStableDisk != nil { + return *m.FtsIdxLoadFromStableDisk + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxSearchN() uint32 { + if m != nil && m.FtsIdxSearchN != nil { + return *m.FtsIdxSearchN + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxSearchTotalMs() uint64 { + if m != nil && m.FtsIdxSearchTotalMs != nil { + return *m.FtsIdxSearchTotalMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxDmSearchRows() uint64 { + if m != nil && m.FtsIdxDmSearchRows != nil { + return *m.FtsIdxDmSearchRows + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxDmTotalReadFtsMs() uint64 { + if m != nil && m.FtsIdxDmTotalReadFtsMs != nil { + return *m.FtsIdxDmTotalReadFtsMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxDmTotalReadOthersMs() uint64 { + if m != nil && m.FtsIdxDmTotalReadOthersMs != nil { + return *m.FtsIdxDmTotalReadOthersMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxTinySearchRows() uint64 { + if m != nil && m.FtsIdxTinySearchRows != nil { + return *m.FtsIdxTinySearchRows + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxTinyTotalReadFtsMs() uint64 { + if m != nil && m.FtsIdxTinyTotalReadFtsMs != nil { + return *m.FtsIdxTinyTotalReadFtsMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsIdxTinyTotalReadOthersMs() uint64 { + if m != nil && m.FtsIdxTinyTotalReadOthersMs != nil { + return *m.FtsIdxTinyTotalReadOthersMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsBruteTotalReadMs() uint64 { + if m != nil && m.FtsBruteTotalReadMs != nil { + return *m.FtsBruteTotalReadMs + } + return 0 +} + +func (m *TiFlashScanContext) GetFtsBruteTotalSearchMs() uint64 { + if m != nil && m.FtsBruteTotalSearchMs != nil { + return *m.FtsBruteTotalSearchMs + } + return 0 +} + type TiFlashWaitSummary struct { MinTSOWaitNs *uint64 `protobuf:"varint,1,opt,name=minTSO_wait_ns,json=minTSOWaitNs" json:"minTSO_wait_ns,omitempty"` PipelineQueueWaitNs *uint64 `protobuf:"varint,2,opt,name=pipeline_queue_wait_ns,json=pipelineQueueWaitNs" json:"pipeline_queue_wait_ns,omitempty"` @@ -2383,7 +2679,7 @@ type TiFlashWaitSummary struct { func (m *TiFlashWaitSummary) Reset() { *m = TiFlashWaitSummary{} } func (m *TiFlashWaitSummary) String() string { return proto.CompactTextString(m) } func (*TiFlashWaitSummary) ProtoMessage() {} -func (*TiFlashWaitSummary) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{22} } +func (*TiFlashWaitSummary) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{23} } func (m *TiFlashWaitSummary) GetMinTSOWaitNs() uint64 { if m != nil && m.MinTSOWaitNs != nil { @@ -2416,7 +2712,7 @@ type Sort struct { func (m *Sort) Reset() { *m = Sort{} } func (m *Sort) String() string { return proto.CompactTextString(m) } func (*Sort) ProtoMessage() {} -func (*Sort) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{23} } +func (*Sort) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{24} } func (m *Sort) GetByItems() []*ByItem { if m != nil { @@ -2452,7 +2748,7 @@ type WindowFrameBound struct { func (m *WindowFrameBound) Reset() { *m = WindowFrameBound{} } func (m *WindowFrameBound) String() string { return proto.CompactTextString(m) } func (*WindowFrameBound) ProtoMessage() {} -func (*WindowFrameBound) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{24} } +func (*WindowFrameBound) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{25} } func (m *WindowFrameBound) GetType() WindowBoundType { if m != nil { @@ -2506,7 +2802,7 @@ type WindowFrame struct { func (m *WindowFrame) Reset() { *m = WindowFrame{} } func (m *WindowFrame) String() string { return proto.CompactTextString(m) } func (*WindowFrame) ProtoMessage() {} -func (*WindowFrame) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{25} } +func (*WindowFrame) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{26} } func (m *WindowFrame) GetType() WindowFrameType { if m != nil { @@ -2541,7 +2837,7 @@ type Window struct { func (m *Window) Reset() { *m = Window{} } func (m *Window) String() string { return proto.CompactTextString(m) } func (*Window) ProtoMessage() {} -func (*Window) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{26} } +func (*Window) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{27} } func (m *Window) GetFuncDesc() []*Expr { if m != nil { @@ -2586,7 +2882,7 @@ type GroupingExpr struct { func (m *GroupingExpr) Reset() { *m = GroupingExpr{} } func (m *GroupingExpr) String() string { return proto.CompactTextString(m) } func (*GroupingExpr) ProtoMessage() {} -func (*GroupingExpr) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{27} } +func (*GroupingExpr) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{28} } func (m *GroupingExpr) GetGroupingExpr() []*Expr { if m != nil { @@ -2603,7 +2899,7 @@ type GroupingSet struct { func (m *GroupingSet) Reset() { *m = GroupingSet{} } func (m *GroupingSet) String() string { return proto.CompactTextString(m) } func (*GroupingSet) ProtoMessage() {} -func (*GroupingSet) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{28} } +func (*GroupingSet) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{29} } func (m *GroupingSet) GetGroupingExprs() []*GroupingExpr { if m != nil { @@ -2623,7 +2919,7 @@ type Expand struct { func (m *Expand) Reset() { *m = Expand{} } func (m *Expand) String() string { return proto.CompactTextString(m) } func (*Expand) ProtoMessage() {} -func (*Expand) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{29} } +func (*Expand) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{30} } func (m *Expand) GetGroupingSets() []*GroupingSet { if m != nil { @@ -2654,7 +2950,7 @@ type ExprSlice struct { func (m *ExprSlice) Reset() { *m = ExprSlice{} } func (m *ExprSlice) String() string { return proto.CompactTextString(m) } func (*ExprSlice) ProtoMessage() {} -func (*ExprSlice) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{30} } +func (*ExprSlice) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{31} } func (m *ExprSlice) GetExprs() []*Expr { if m != nil { @@ -2673,7 +2969,7 @@ type Expand2 struct { func (m *Expand2) Reset() { *m = Expand2{} } func (m *Expand2) String() string { return proto.CompactTextString(m) } func (*Expand2) ProtoMessage() {} -func (*Expand2) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{31} } +func (*Expand2) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{32} } func (m *Expand2) GetProjExprs() []*ExprSlice { if m != nil { @@ -2704,7 +3000,7 @@ type BroadcastQuery struct { func (m *BroadcastQuery) Reset() { *m = BroadcastQuery{} } func (m *BroadcastQuery) String() string { return proto.CompactTextString(m) } func (*BroadcastQuery) ProtoMessage() {} -func (*BroadcastQuery) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{32} } +func (*BroadcastQuery) Descriptor() ([]byte, []int) { return fileDescriptorExecutor, []int{33} } func (m *BroadcastQuery) GetQuery() string { if m != nil && m.Query != nil { @@ -2720,6 +3016,7 @@ func init() { proto.RegisterType((*EncodedBytesSlice)(nil), "tipb.EncodedBytesSlice") proto.RegisterType((*ExchangeReceiver)(nil), "tipb.ExchangeReceiver") proto.RegisterType((*ANNQueryInfo)(nil), "tipb.ANNQueryInfo") + proto.RegisterType((*FTSQueryInfo)(nil), "tipb.FTSQueryInfo") proto.RegisterType((*TableScan)(nil), "tipb.TableScan") proto.RegisterType((*PartitionTableScan)(nil), "tipb.PartitionTableScan") proto.RegisterType((*Join)(nil), "tipb.Join") @@ -2754,6 +3051,7 @@ func init() { proto.RegisterEnum("tipb.VectorIndexKind", VectorIndexKind_name, VectorIndexKind_value) proto.RegisterEnum("tipb.VectorDistanceMetric", VectorDistanceMetric_name, VectorDistanceMetric_value) proto.RegisterEnum("tipb.ANNQueryType", ANNQueryType_name, ANNQueryType_value) + proto.RegisterEnum("tipb.FTSQueryType", FTSQueryType_name, FTSQueryType_value) proto.RegisterEnum("tipb.JoinType", JoinType_name, JoinType_value) proto.RegisterEnum("tipb.JoinExecType", JoinExecType_name, JoinExecType_value) proto.RegisterEnum("tipb.RuntimeFilterType", RuntimeFilterType_name, RuntimeFilterType_value) @@ -3293,6 +3591,69 @@ func (m *ANNQueryInfo) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *FTSQueryInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FTSQueryInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(m.QueryType)) + dAtA[i] = 0x10 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(m.IndexId)) + if len(m.Columns) > 0 { + for _, msg := range m.Columns { + dAtA[i] = 0x1a + i++ + i = encodeVarintExecutor(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.ColumnNames) > 0 { + for _, s := range m.ColumnNames { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + dAtA[i] = 0x2a + i++ + i = encodeVarintExecutor(dAtA, i, uint64(len(m.QueryText))) + i += copy(dAtA[i:], m.QueryText) + if m.TopK != nil { + dAtA[i] = 0x50 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.TopK)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + func (m *TableScan) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4637,49 +4998,224 @@ func (m *TiFlashScanContext) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintExecutor(dAtA, i, uint64(*m.TotalVectorIdxReadOthersTimeMs)) } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) + if m.FtsNFromInmemoryNoindex != nil { + dAtA[i] = 0xb0 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsNFromInmemoryNoindex)) } - return i, nil -} - -func (m *TiFlashWaitSummary) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err + if m.FtsNFromTinyIndex != nil { + dAtA[i] = 0xb8 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsNFromTinyIndex)) } - return dAtA[:n], nil -} - -func (m *TiFlashWaitSummary) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.MinTSOWaitNs != nil { - dAtA[i] = 0x8 + if m.FtsNFromTinyNoindex != nil { + dAtA[i] = 0xc0 i++ - i = encodeVarintExecutor(dAtA, i, uint64(*m.MinTSOWaitNs)) + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsNFromTinyNoindex)) } - if m.PipelineQueueWaitNs != nil { - dAtA[i] = 0x10 + if m.FtsNFromDmfIndex != nil { + dAtA[i] = 0xc8 i++ - i = encodeVarintExecutor(dAtA, i, uint64(*m.PipelineQueueWaitNs)) + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsNFromDmfIndex)) } - if m.PipelineBreakerWaitNs != nil { - dAtA[i] = 0x18 + if m.FtsNFromDmfNoindex != nil { + dAtA[i] = 0xd0 i++ - i = encodeVarintExecutor(dAtA, i, uint64(*m.PipelineBreakerWaitNs)) + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsNFromDmfNoindex)) } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) + if m.FtsRowsFromInmemoryNoindex != nil { + dAtA[i] = 0xd8 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsRowsFromInmemoryNoindex)) } - return i, nil -} - -func (m *Sort) Marshal() (dAtA []byte, err error) { + if m.FtsRowsFromTinyIndex != nil { + dAtA[i] = 0xe0 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsRowsFromTinyIndex)) + } + if m.FtsRowsFromTinyNoindex != nil { + dAtA[i] = 0xe8 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsRowsFromTinyNoindex)) + } + if m.FtsRowsFromDmfIndex != nil { + dAtA[i] = 0xf0 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsRowsFromDmfIndex)) + } + if m.FtsRowsFromDmfNoindex != nil { + dAtA[i] = 0xf8 + i++ + dAtA[i] = 0x9 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsRowsFromDmfNoindex)) + } + if m.FtsIdxLoadTotalMs != nil { + dAtA[i] = 0x80 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxLoadTotalMs)) + } + if m.FtsIdxLoadFromCache != nil { + dAtA[i] = 0x88 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxLoadFromCache)) + } + if m.FtsIdxLoadFromColumnFile != nil { + dAtA[i] = 0x90 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxLoadFromColumnFile)) + } + if m.FtsIdxLoadFromStableS3 != nil { + dAtA[i] = 0x98 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxLoadFromStableS3)) + } + if m.FtsIdxLoadFromStableDisk != nil { + dAtA[i] = 0xa0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxLoadFromStableDisk)) + } + if m.FtsIdxSearchN != nil { + dAtA[i] = 0xa8 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxSearchN)) + } + if m.FtsIdxSearchTotalMs != nil { + dAtA[i] = 0xb0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxSearchTotalMs)) + } + if m.FtsIdxDmSearchRows != nil { + dAtA[i] = 0xb8 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxDmSearchRows)) + } + if m.FtsIdxDmTotalReadFtsMs != nil { + dAtA[i] = 0xc0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxDmTotalReadFtsMs)) + } + if m.FtsIdxDmTotalReadOthersMs != nil { + dAtA[i] = 0xc8 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxDmTotalReadOthersMs)) + } + if m.FtsIdxTinySearchRows != nil { + dAtA[i] = 0xd0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxTinySearchRows)) + } + if m.FtsIdxTinyTotalReadFtsMs != nil { + dAtA[i] = 0xd8 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxTinyTotalReadFtsMs)) + } + if m.FtsIdxTinyTotalReadOthersMs != nil { + dAtA[i] = 0xe0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsIdxTinyTotalReadOthersMs)) + } + if m.FtsBruteTotalReadMs != nil { + dAtA[i] = 0xe8 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsBruteTotalReadMs)) + } + if m.FtsBruteTotalSearchMs != nil { + dAtA[i] = 0xf0 + i++ + dAtA[i] = 0xa + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.FtsBruteTotalSearchMs)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *TiFlashWaitSummary) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiFlashWaitSummary) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MinTSOWaitNs != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.MinTSOWaitNs)) + } + if m.PipelineQueueWaitNs != nil { + dAtA[i] = 0x10 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.PipelineQueueWaitNs)) + } + if m.PipelineBreakerWaitNs != nil { + dAtA[i] = 0x18 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(*m.PipelineBreakerWaitNs)) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Sort) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -5388,6 +5924,34 @@ func (m *ANNQueryInfo) Size() (n int) { return n } +func (m *FTSQueryInfo) Size() (n int) { + var l int + _ = l + n += 1 + sovExecutor(uint64(m.QueryType)) + n += 1 + sovExecutor(uint64(m.IndexId)) + if len(m.Columns) > 0 { + for _, e := range m.Columns { + l = e.Size() + n += 1 + l + sovExecutor(uint64(l)) + } + } + if len(m.ColumnNames) > 0 { + for _, s := range m.ColumnNames { + l = len(s) + n += 1 + l + sovExecutor(uint64(l)) + } + } + l = len(m.QueryText) + n += 1 + l + sovExecutor(uint64(l)) + if m.TopK != nil { + n += 1 + sovExecutor(uint64(*m.TopK)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *TableScan) Size() (n int) { var l int _ = l @@ -6001,6 +6565,81 @@ func (m *TiFlashScanContext) Size() (n int) { if m.TotalVectorIdxReadOthersTimeMs != nil { n += 2 + sovExecutor(uint64(*m.TotalVectorIdxReadOthersTimeMs)) } + if m.FtsNFromInmemoryNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsNFromInmemoryNoindex)) + } + if m.FtsNFromTinyIndex != nil { + n += 2 + sovExecutor(uint64(*m.FtsNFromTinyIndex)) + } + if m.FtsNFromTinyNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsNFromTinyNoindex)) + } + if m.FtsNFromDmfIndex != nil { + n += 2 + sovExecutor(uint64(*m.FtsNFromDmfIndex)) + } + if m.FtsNFromDmfNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsNFromDmfNoindex)) + } + if m.FtsRowsFromInmemoryNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsRowsFromInmemoryNoindex)) + } + if m.FtsRowsFromTinyIndex != nil { + n += 2 + sovExecutor(uint64(*m.FtsRowsFromTinyIndex)) + } + if m.FtsRowsFromTinyNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsRowsFromTinyNoindex)) + } + if m.FtsRowsFromDmfIndex != nil { + n += 2 + sovExecutor(uint64(*m.FtsRowsFromDmfIndex)) + } + if m.FtsRowsFromDmfNoindex != nil { + n += 2 + sovExecutor(uint64(*m.FtsRowsFromDmfNoindex)) + } + if m.FtsIdxLoadTotalMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxLoadTotalMs)) + } + if m.FtsIdxLoadFromCache != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxLoadFromCache)) + } + if m.FtsIdxLoadFromColumnFile != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxLoadFromColumnFile)) + } + if m.FtsIdxLoadFromStableS3 != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxLoadFromStableS3)) + } + if m.FtsIdxLoadFromStableDisk != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxLoadFromStableDisk)) + } + if m.FtsIdxSearchN != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxSearchN)) + } + if m.FtsIdxSearchTotalMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxSearchTotalMs)) + } + if m.FtsIdxDmSearchRows != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxDmSearchRows)) + } + if m.FtsIdxDmTotalReadFtsMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxDmTotalReadFtsMs)) + } + if m.FtsIdxDmTotalReadOthersMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxDmTotalReadOthersMs)) + } + if m.FtsIdxTinySearchRows != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxTinySearchRows)) + } + if m.FtsIdxTinyTotalReadFtsMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxTinyTotalReadFtsMs)) + } + if m.FtsIdxTinyTotalReadOthersMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsIdxTinyTotalReadOthersMs)) + } + if m.FtsBruteTotalReadMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsBruteTotalReadMs)) + } + if m.FtsBruteTotalSearchMs != nil { + n += 2 + sovExecutor(uint64(*m.FtsBruteTotalSearchMs)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7946,7 +8585,7 @@ func (m *ANNQueryInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *TableScan) Unmarshal(dAtA []byte) error { +func (m *FTSQueryInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7969,17 +8608,17 @@ func (m *TableScan) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TableScan: wiretype end group for non-group") + return fmt.Errorf("proto: FTSQueryInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TableScan: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FTSQueryInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field QueryType", wireType) } - m.TableId = 0 + m.QueryType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowExecutor @@ -7989,12 +8628,31 @@ func (m *TableScan) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TableId |= (int64(b) & 0x7F) << shift + m.QueryType |= (FTSQueryType(b) & 0x7F) << shift if b < 0x80 { break } } case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexId", wireType) + } + m.IndexId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.IndexId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType) } @@ -8025,11 +8683,11 @@ func (m *TableScan) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ColumnNames", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowExecutor @@ -8039,37 +8697,216 @@ func (m *TableScan) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Desc = bool(v != 0) - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutor - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ColumnNames = append(m.ColumnNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QueryText", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor } - m.PrimaryColumnIds = append(m.PrimaryColumnIds, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutor - } - if iNdEx >= l { + 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 ErrInvalidLengthExecutor + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.QueryText = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TopK", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.TopK = &v + default: + iNdEx = preIndex + skippy, err := skipExecutor(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthExecutor + } + 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 *TableScan) 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 ErrIntOverflowExecutor + } + 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: TableScan: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TableScan: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) + } + m.TableId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TableId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Columns = append(m.Columns, &ColumnInfo{}) + if err := m.Columns[len(m.Columns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Desc = bool(v != 0) + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.PrimaryColumnIds = append(m.PrimaryColumnIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] @@ -12099,6 +12936,506 @@ func (m *TiFlashScanContext) Unmarshal(dAtA []byte) error { } } m.TotalVectorIdxReadOthersTimeMs = &v + case 150: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsNFromInmemoryNoindex", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsNFromInmemoryNoindex = &v + case 151: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsNFromTinyIndex", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsNFromTinyIndex = &v + case 152: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsNFromTinyNoindex", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsNFromTinyNoindex = &v + case 153: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsNFromDmfIndex", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsNFromDmfIndex = &v + case 154: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsNFromDmfNoindex", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsNFromDmfNoindex = &v + case 155: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsRowsFromInmemoryNoindex", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsRowsFromInmemoryNoindex = &v + case 156: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsRowsFromTinyIndex", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsRowsFromTinyIndex = &v + case 157: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsRowsFromTinyNoindex", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsRowsFromTinyNoindex = &v + case 158: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsRowsFromDmfIndex", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsRowsFromDmfIndex = &v + case 159: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsRowsFromDmfNoindex", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsRowsFromDmfNoindex = &v + case 160: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxLoadTotalMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxLoadTotalMs = &v + case 161: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxLoadFromCache", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxLoadFromCache = &v + case 162: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxLoadFromColumnFile", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxLoadFromColumnFile = &v + case 163: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxLoadFromStableS3", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxLoadFromStableS3 = &v + case 164: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxLoadFromStableDisk", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxLoadFromStableDisk = &v + case 165: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxSearchN", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxSearchN = &v + case 166: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxSearchTotalMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxSearchTotalMs = &v + case 167: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxDmSearchRows", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxDmSearchRows = &v + case 168: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxDmTotalReadFtsMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxDmTotalReadFtsMs = &v + case 169: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxDmTotalReadOthersMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxDmTotalReadOthersMs = &v + case 170: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxTinySearchRows", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxTinySearchRows = &v + case 171: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxTinyTotalReadFtsMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxTinyTotalReadFtsMs = &v + case 172: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsIdxTinyTotalReadOthersMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsIdxTinyTotalReadOthersMs = &v + case 173: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsBruteTotalReadMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsBruteTotalReadMs = &v + case 174: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsBruteTotalSearchMs", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FtsBruteTotalSearchMs = &v default: iNdEx = preIndex skippy, err := skipExecutor(dAtA[iNdEx:]) @@ -13622,291 +14959,325 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 4569 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4b, 0x73, 0x1c, 0x47, - 0x72, 0x66, 0xcf, 0x03, 0x98, 0xc9, 0x79, 0xa0, 0x51, 0x00, 0xc1, 0x26, 0x28, 0x92, 0xd0, 0x2c, - 0x25, 0x61, 0x61, 0x89, 0xa2, 0x40, 0xae, 0x1e, 0xbb, 0xde, 0x95, 0xf0, 0x14, 0x87, 0x04, 0x06, - 0xd8, 0x1e, 0x2c, 0xb5, 0x07, 0x47, 0x74, 0x34, 0xba, 0x6b, 0x06, 0x45, 0x74, 0x57, 0x37, 0xfb, - 0x41, 0x0e, 0x74, 0xd2, 0xd9, 0x27, 0x87, 0x37, 0xec, 0xf0, 0xcd, 0x11, 0x3e, 0xd9, 0x61, 0x87, - 0x0f, 0xfe, 0x03, 0xf6, 0x71, 0x8f, 0xbe, 0x7a, 0x0f, 0x0e, 0x87, 0x7c, 0xf2, 0x5f, 0xf0, 0xc9, - 0x51, 0x59, 0xd5, 0x3d, 0x3d, 0x98, 0x01, 0x44, 0x85, 0x7d, 0xf0, 0x69, 0xa6, 0x32, 0xbf, 0xcc, - 0x7a, 0x65, 0x66, 0x65, 0x65, 0x17, 0xb4, 0xe9, 0x88, 0x3a, 0x69, 0x12, 0x44, 0x0f, 0xc3, 0x28, - 0x48, 0x02, 0x52, 0x49, 0x58, 0x78, 0xba, 0xaa, 0xd3, 0x51, 0x18, 0xd1, 0x38, 0x66, 0x01, 0x97, - 0xf4, 0xd5, 0x66, 0xec, 0x9c, 0x51, 0xdf, 0x56, 0xad, 0xe5, 0x61, 0x30, 0x0c, 0xf0, 0xef, 0xc7, - 0xe2, 0x9f, 0xa4, 0x76, 0xfe, 0xae, 0x0e, 0xb5, 0x3d, 0xa5, 0x8e, 0x3c, 0x80, 0x52, 0x12, 0x1a, - 0xda, 0x9a, 0xb6, 0xde, 0xde, 0x6c, 0x3f, 0x14, 0x5a, 0x1f, 0x0a, 0xde, 0xc9, 0x45, 0x48, 0xb7, - 0x2b, 0xbf, 0xff, 0xf7, 0xfb, 0x37, 0xcc, 0x52, 0x12, 0x92, 0x0d, 0xa8, 0x25, 0xa7, 0x9e, 0x15, - 0x3b, 0x36, 0x37, 0x4a, 0x6b, 0xda, 0x7a, 0x63, 0x73, 0x41, 0x62, 0x4f, 0xec, 0x53, 0x8f, 0xf6, - 0x1d, 0x9b, 0x9b, 0xf3, 0xc9, 0xa9, 0x27, 0xfe, 0x08, 0x2c, 0x73, 0x47, 0x12, 0x5b, 0x2e, 0x62, - 0xbb, 0xdc, 0xa5, 0x23, 0x89, 0x65, 0x2e, 0xfe, 0x21, 0x1f, 0x41, 0x3d, 0xa6, 0x1e, 0x75, 0x12, - 0x16, 0x70, 0xa3, 0x52, 0x04, 0xf7, 0x33, 0xb2, 0x39, 0x46, 0x90, 0xc7, 0xd0, 0xb0, 0x87, 0xc3, - 0x88, 0x0e, 0x6d, 0x14, 0xa8, 0xa2, 0xc0, 0xa2, 0x14, 0xd8, 0x1a, 0x33, 0xcc, 0x22, 0x8a, 0xdc, - 0x83, 0x4a, 0x12, 0x84, 0x3d, 0x63, 0x0e, 0xd1, 0xa0, 0xc6, 0x1d, 0x84, 0x3d, 0x13, 0xe9, 0xe4, - 0x5d, 0xa8, 0x7a, 0xcc, 0x67, 0x89, 0x31, 0x8f, 0x80, 0x86, 0x04, 0x1c, 0x08, 0x92, 0x29, 0x39, - 0x64, 0x07, 0x16, 0xe9, 0xc8, 0x39, 0xb3, 0xf9, 0x90, 0x5a, 0x11, 0x75, 0x28, 0x7b, 0x4d, 0x23, - 0xa3, 0x86, 0xf0, 0x95, 0x6c, 0xcd, 0x24, 0xdb, 0x54, 0x5c, 0x53, 0xa7, 0x97, 0x28, 0x62, 0x1c, - 0x2f, 0x03, 0xc6, 0x8d, 0x7a, 0x71, 0x1c, 0xcf, 0x02, 0xc6, 0x4d, 0xa4, 0x93, 0xfb, 0xd0, 0xc8, - 0x36, 0xd9, 0x62, 0xae, 0x01, 0x6b, 0xda, 0x7a, 0xdd, 0x84, 0x8c, 0xd4, 0x75, 0x85, 0x82, 0x73, - 0xe6, 0x79, 0x46, 0xa3, 0xa8, 0xe0, 0x39, 0xf3, 0x3c, 0x13, 0xe9, 0xe4, 0x97, 0xb0, 0x90, 0x8f, - 0x32, 0xa6, 0xdc, 0xa5, 0x91, 0xd1, 0x44, 0xe8, 0xf2, 0xe4, 0x18, 0xfb, 0xc8, 0x33, 0xdb, 0x74, - 0xa2, 0x4d, 0x1e, 0x01, 0x1c, 0x47, 0xc1, 0x4b, 0xb5, 0x19, 0x2d, 0x94, 0xd4, 0xa5, 0xe4, 0x98, - 0x6e, 0x16, 0x30, 0xe4, 0x19, 0x2c, 0x87, 0x76, 0x94, 0x30, 0xd1, 0xb0, 0x12, 0x61, 0x09, 0x72, - 0xd7, 0xdb, 0x28, 0x6b, 0x28, 0xd9, 0x0c, 0x31, 0x36, 0x15, 0x12, 0x4e, 0xd1, 0xc4, 0xe4, 0xe2, - 0x20, 0x4a, 0x8c, 0x85, 0xe2, 0xe4, 0xfa, 0x41, 0x94, 0x98, 0x48, 0x27, 0x0f, 0x60, 0xee, 0x0d, - 0xe3, 0x6e, 0xf0, 0xc6, 0xd0, 0x11, 0xd1, 0x94, 0x88, 0x6f, 0x90, 0x66, 0x2a, 0x1e, 0xe9, 0xc1, - 0xbb, 0x03, 0xc6, 0xa9, 0x35, 0x8c, 0x6c, 0xc6, 0xa9, 0x6b, 0xc5, 0x67, 0xe9, 0x60, 0x20, 0x86, - 0x95, 0x44, 0xd4, 0xf6, 0x2d, 0x27, 0x48, 0x79, 0x62, 0x2c, 0xae, 0x69, 0xeb, 0x15, 0x65, 0xdc, - 0x77, 0x05, 0xfc, 0x6b, 0x89, 0xee, 0x4b, 0x70, 0x1f, 0xb1, 0x3b, 0x02, 0x4a, 0x9e, 0xc1, 0xfd, - 0x99, 0xfa, 0x4e, 0xed, 0xc4, 0x39, 0xb3, 0x62, 0xf6, 0x2d, 0x35, 0x48, 0x41, 0xdb, 0x9d, 0x69, - 0x6d, 0xdb, 0x02, 0xd9, 0x67, 0xdf, 0x52, 0x31, 0x03, 0x3a, 0x0a, 0x6d, 0xee, 0x1a, 0x4b, 0xc5, - 0x19, 0xec, 0x21, 0xcd, 0x54, 0x3c, 0xf2, 0x01, 0xcc, 0xcb, 0x7f, 0x9b, 0xc6, 0x32, 0xc2, 0x5a, - 0x45, 0xd8, 0xa6, 0x99, 0x71, 0xc5, 0x6e, 0x9f, 0x46, 0x81, 0xed, 0x3a, 0x76, 0x9c, 0x58, 0xaf, - 0x52, 0x1a, 0x5d, 0x18, 0x37, 0x8b, 0xbb, 0xbd, 0x9d, 0x31, 0x7f, 0x2d, 0x78, 0x66, 0xfb, 0x74, - 0xa2, 0x4d, 0x9e, 0x40, 0x93, 0x09, 0x7f, 0xb4, 0xbc, 0x20, 0x38, 0x4f, 0x43, 0xc3, 0x28, 0xfa, - 0x12, 0x7a, 0xea, 0x41, 0x10, 0x9c, 0xff, 0x26, 0x34, 0x1b, 0x2c, 0x6b, 0xa4, 0x21, 0xb9, 0x0b, - 0x10, 0xda, 0x11, 0xe5, 0x89, 0xc5, 0xdc, 0x91, 0x71, 0x7b, 0x4d, 0x5b, 0x6f, 0x99, 0x75, 0x49, - 0xe9, 0xba, 0x23, 0x72, 0x0c, 0x2b, 0x74, 0x14, 0x7a, 0x36, 0xe3, 0xd6, 0x20, 0x88, 0x2c, 0x27, - 0xe0, 0x5c, 0x99, 0xd3, 0x2a, 0xaa, 0x5f, 0xcd, 0xe7, 0x22, 0x30, 0xfb, 0x41, 0xb4, 0x93, 0x23, - 0xcc, 0x65, 0x3a, 0x83, 0xda, 0xf9, 0x87, 0x32, 0xb4, 0x27, 0xed, 0x96, 0xac, 0x17, 0x22, 0x16, - 0x99, 0xb4, 0xec, 0xa9, 0xa8, 0xb5, 0x48, 0xb9, 0x13, 0xb8, 0xd4, 0xb5, 0x12, 0x3b, 0x3e, 0xb7, - 0x7c, 0x9a, 0xd8, 0x46, 0x69, 0xad, 0xbc, 0xde, 0x34, 0x17, 0x14, 0xe3, 0xc4, 0x8e, 0xcf, 0x0f, - 0x69, 0x62, 0x93, 0x4f, 0xa0, 0x3d, 0xb6, 0xe5, 0x73, 0x7a, 0x11, 0x1b, 0xe5, 0xb5, 0xf2, 0xd8, - 0x12, 0xf7, 0x46, 0x61, 0x64, 0xb6, 0x72, 0xc4, 0x73, 0x7a, 0x11, 0x93, 0x07, 0x50, 0x75, 0xce, - 0x98, 0xe7, 0xaa, 0xc0, 0x55, 0x88, 0x9e, 0xc2, 0x61, 0x4d, 0xc9, 0x24, 0xef, 0x41, 0x35, 0xb9, - 0x08, 0x69, 0x6c, 0x54, 0x51, 0x9f, 0x0a, 0x6f, 0xfb, 0x8c, 0x7a, 0xae, 0x18, 0xae, 0x29, 0xb9, - 0xe4, 0x33, 0x58, 0xb0, 0x3d, 0xcf, 0x1a, 0x08, 0xba, 0x25, 0x05, 0xe6, 0x66, 0x0b, 0xb4, 0x6c, - 0xcf, 0xcb, 0x5b, 0x31, 0xf9, 0x25, 0x34, 0x9c, 0xc0, 0xcf, 0x8e, 0x01, 0x0c, 0x62, 0xed, 0xcd, - 0x9b, 0x52, 0x68, 0x67, 0xcc, 0x38, 0x0c, 0xdc, 0x6c, 0x69, 0x8a, 0x78, 0x72, 0x00, 0x2b, 0x69, - 0x98, 0xb9, 0x47, 0x42, 0x0b, 0x0b, 0x55, 0xc3, 0xee, 0x6f, 0xa9, 0x59, 0xc9, 0xe5, 0xda, 0xbe, - 0x48, 0x68, 0xdc, 0xf7, 0x98, 0x43, 0xcd, 0xa5, 0x4c, 0x6c, 0x27, 0xa1, 0xd9, 0x2a, 0x76, 0xfe, - 0x54, 0x83, 0x46, 0xc1, 0x78, 0xc8, 0x23, 0x58, 0x96, 0x56, 0x76, 0x66, 0x73, 0xd7, 0xa3, 0x56, - 0x30, 0x18, 0xc4, 0x34, 0x89, 0x0d, 0x6d, 0xad, 0xbc, 0xde, 0x32, 0x09, 0xf2, 0x9e, 0x22, 0xeb, - 0x48, 0x72, 0x84, 0x85, 0x9d, 0x53, 0x1a, 0x5a, 0x41, 0x24, 0xe2, 0x97, 0x38, 0x6b, 0x6a, 0x66, - 0x5d, 0x50, 0x8e, 0x04, 0x41, 0x1c, 0x2e, 0xb8, 0xac, 0x11, 0xe5, 0x6a, 0x83, 0x2e, 0x2f, 0x7b, - 0xce, 0xef, 0x7c, 0x0e, 0x8b, 0x53, 0xc3, 0x26, 0x3f, 0x81, 0x56, 0xd1, 0x26, 0xe4, 0x50, 0x9a, - 0x66, 0xb3, 0x60, 0x0f, 0x71, 0xe7, 0x0f, 0x1a, 0xe8, 0x97, 0x23, 0xfa, 0x6c, 0x6b, 0xd2, 0x66, - 0x5b, 0xd3, 0x23, 0x68, 0x14, 0x77, 0xb2, 0x34, 0x7b, 0x27, 0x61, 0x30, 0xde, 0xc6, 0x0e, 0x5a, - 0x75, 0xf9, 0x2a, 0xab, 0x46, 0x7b, 0xde, 0x85, 0xfb, 0x41, 0xc4, 0x86, 0x8c, 0xdb, 0x1e, 0xee, - 0x55, 0x18, 0xb9, 0x81, 0x93, 0xd2, 0xa8, 0x30, 0x9e, 0x0a, 0x8e, 0xe7, 0x4e, 0x06, 0xdb, 0x49, - 0xe8, 0xb1, 0x02, 0xe5, 0x7b, 0xf4, 0xbb, 0x32, 0x34, 0xb7, 0x7a, 0x3d, 0x0c, 0x03, 0x5d, 0x3e, - 0x08, 0xc8, 0x67, 0x00, 0x18, 0x3f, 0x70, 0xb0, 0x93, 0x8e, 0x95, 0xe1, 0x0a, 0x8e, 0x55, 0x7f, - 0x95, 0x11, 0x48, 0x17, 0x16, 0x5c, 0x16, 0x27, 0x36, 0x77, 0xa8, 0xe8, 0x3d, 0x62, 0x0e, 0x6e, - 0x58, 0x3b, 0xf3, 0xf3, 0x17, 0xd4, 0x49, 0x82, 0x68, 0x57, 0x41, 0x0e, 0x11, 0xa1, 0xb4, 0xb4, - 0xdd, 0x09, 0x2a, 0xb9, 0x0d, 0xd5, 0x24, 0x08, 0xad, 0x73, 0x5c, 0x81, 0x96, 0x02, 0x89, 0xf3, - 0xf9, 0x39, 0x79, 0x4f, 0x18, 0xb8, 0x97, 0xfa, 0xdc, 0xe2, 0xb6, 0x4f, 0xd1, 0xd9, 0xea, 0x0a, - 0x00, 0x92, 0xd1, 0xb3, 0x7d, 0x4a, 0xde, 0x85, 0xba, 0x82, 0x31, 0x17, 0x33, 0x83, 0xb2, 0x02, - 0xd5, 0x24, 0x19, 0x0f, 0xd0, 0x46, 0x44, 0x07, 0xd6, 0x6b, 0xea, 0x58, 0x83, 0xc7, 0x9b, 0x98, - 0x10, 0x34, 0xcd, 0x7a, 0x44, 0x07, 0x2f, 0xa8, 0xb3, 0xff, 0x78, 0x93, 0xdc, 0x87, 0x9a, 0xb4, - 0x56, 0xe6, 0xe2, 0xe9, 0x9e, 0x69, 0x98, 0x47, 0x6a, 0x57, 0x04, 0xe7, 0xa6, 0x6f, 0x8f, 0xac, - 0x6c, 0xec, 0x78, 0x46, 0x6b, 0x99, 0x57, 0xf9, 0xf6, 0x28, 0x9b, 0x2a, 0xd9, 0x80, 0xf6, 0x19, - 0x8f, 0xdf, 0x58, 0x74, 0x60, 0xc5, 0xd4, 0x8e, 0x9c, 0x33, 0x0c, 0xe6, 0xd9, 0xbc, 0x9a, 0x82, - 0xb7, 0x37, 0xe8, 0x23, 0xe7, 0x59, 0xa5, 0x36, 0xaf, 0xd7, 0x3a, 0xdf, 0x55, 0xa1, 0x3e, 0x3e, - 0x0d, 0xef, 0x43, 0x4d, 0x9e, 0xa7, 0xcc, 0xc5, 0x0d, 0xc9, 0x47, 0x82, 0xd4, 0xae, 0x4b, 0x36, - 0x60, 0x5e, 0x4e, 0x2b, 0x33, 0x2e, 0x3d, 0xf3, 0x78, 0x9c, 0x2b, 0x1f, 0x04, 0x66, 0x06, 0x20, - 0x06, 0x54, 0x5c, 0x1a, 0x3b, 0xb8, 0xb4, 0xb5, 0x6c, 0x69, 0x05, 0x85, 0x7c, 0x08, 0x24, 0x8c, - 0x98, 0x6f, 0x47, 0x17, 0x56, 0xbe, 0x76, 0x31, 0xda, 0x50, 0xd9, 0xd4, 0x15, 0x47, 0x69, 0x74, - 0x63, 0xf2, 0x15, 0xe8, 0x9c, 0x8e, 0x12, 0x2b, 0xa2, 0xb6, 0x6b, 0x51, 0x3e, 0x64, 0x9c, 0xe2, - 0x42, 0xb7, 0xb3, 0xce, 0xf7, 0x90, 0x56, 0xb0, 0x95, 0xb6, 0xc0, 0x9b, 0xd4, 0x76, 0x25, 0x87, - 0x7c, 0x08, 0x73, 0x91, 0xb0, 0xe8, 0x2c, 0xb6, 0x29, 0xdf, 0x7d, 0x4e, 0x2f, 0x4c, 0x41, 0x56, - 0x52, 0x0a, 0x43, 0xbe, 0x80, 0xdb, 0xd9, 0xe8, 0xc2, 0x88, 0x0e, 0xd8, 0xa8, 0x38, 0xc8, 0x79, - 0x1c, 0xe4, 0x8a, 0x02, 0x1c, 0x23, 0x7f, 0x3c, 0xd4, 0xc9, 0x28, 0x52, 0xbb, 0x1c, 0x45, 0xd6, - 0xa0, 0xc9, 0x62, 0x6b, 0x20, 0x4e, 0x4e, 0x4c, 0x58, 0xea, 0x08, 0x00, 0x16, 0xef, 0xdb, 0x71, - 0x82, 0x1b, 0x70, 0x08, 0x77, 0xc3, 0x34, 0x3e, 0xa3, 0xae, 0xe5, 0x06, 0x6f, 0xb8, 0x35, 0x60, - 0x5e, 0x42, 0xf1, 0x40, 0x73, 0x31, 0xfe, 0xc7, 0x06, 0x4c, 0x9d, 0x0e, 0xab, 0x52, 0x60, 0x37, - 0x78, 0xc3, 0xf7, 0x11, 0xbe, 0x93, 0xa3, 0xc9, 0x0e, 0x2c, 0x45, 0x29, 0x4f, 0x98, 0x4f, 0x33, - 0x55, 0x1e, 0x8b, 0x13, 0xa3, 0x81, 0x4a, 0x96, 0xa4, 0x12, 0x53, 0x02, 0xa4, 0xac, 0xb9, 0x18, - 0x15, 0x9b, 0x07, 0x2c, 0x4e, 0xc8, 0x47, 0xa0, 0x0b, 0xeb, 0x7b, 0x63, 0xb3, 0xc4, 0x42, 0x55, - 0x7e, 0x8c, 0x09, 0x5e, 0x55, 0xad, 0x5b, 0xcb, 0xb7, 0x47, 0xdf, 0xd8, 0x2c, 0x39, 0x61, 0x3e, - 0x3d, 0x8c, 0xc9, 0xc7, 0x50, 0xb7, 0x39, 0x57, 0xa9, 0x81, 0x4c, 0xe7, 0x2e, 0x79, 0x35, 0x9a, - 0x49, 0xcd, 0xe6, 0x1c, 0x5b, 0x9d, 0xbf, 0xae, 0x00, 0x99, 0xce, 0xd6, 0xfe, 0x7f, 0xda, 0xe2, - 0xb5, 0xb6, 0x51, 0xbd, 0xd6, 0x36, 0x7e, 0x02, 0xe3, 0x73, 0x1c, 0xe1, 0x73, 0x08, 0x6f, 0xe6, - 0x44, 0x01, 0xba, 0x6c, 0x21, 0xf3, 0x3f, 0xde, 0x42, 0x6a, 0xff, 0x17, 0x16, 0x52, 0xff, 0x5f, - 0x5b, 0x08, 0xbc, 0xa5, 0x85, 0x34, 0xde, 0xc2, 0x42, 0xfe, 0xbb, 0x0a, 0x15, 0x71, 0x63, 0x21, - 0x9f, 0x40, 0x5d, 0xdc, 0x59, 0x8a, 0x27, 0x46, 0x7b, 0x7c, 0xa1, 0x29, 0x44, 0x80, 0xda, 0x4b, - 0xd5, 0x26, 0xbf, 0x82, 0x36, 0x8a, 0x88, 0x0b, 0x8d, 0x94, 0x2b, 0x15, 0x4f, 0x1a, 0x21, 0x77, - 0xe9, 0xe2, 0xd9, 0x7c, 0x59, 0xa0, 0xfd, 0x98, 0x93, 0x5f, 0x9c, 0x05, 0x8c, 0x73, 0x1a, 0x61, - 0x96, 0x5a, 0x29, 0x9e, 0x05, 0x48, 0x16, 0xa9, 0xea, 0x23, 0x68, 0x7b, 0x74, 0x90, 0x58, 0x38, - 0x26, 0xcc, 0xf7, 0xaa, 0x53, 0xfb, 0xd5, 0x14, 0x08, 0x31, 0x30, 0x4c, 0xf7, 0x36, 0x61, 0x21, - 0x62, 0xc3, 0xb3, 0xa2, 0xc8, 0xdc, 0x74, 0x8a, 0x88, 0x90, 0x5c, 0xe6, 0x11, 0x34, 0xc2, 0x28, - 0x38, 0xa5, 0x2a, 0x0f, 0x98, 0xbf, 0x22, 0x0f, 0x40, 0x8c, 0xcc, 0x03, 0x1e, 0x41, 0xe3, 0x34, - 0x65, 0x79, 0xe6, 0x50, 0xbb, 0x42, 0x02, 0x31, 0x52, 0xe2, 0x31, 0x2c, 0xe0, 0x4c, 0x0a, 0xa6, - 0x57, 0x9f, 0x1a, 0x17, 0x4e, 0xb6, 0x60, 0x6e, 0x3f, 0x03, 0x5d, 0x4e, 0xe6, 0xda, 0x90, 0x26, - 0x27, 0x3c, 0x29, 0x16, 0x24, 0x67, 0x93, 0x76, 0xde, 0x98, 0x16, 0x43, 0x4c, 0x41, 0xec, 0x29, - 0xdc, 0x91, 0x62, 0xf4, 0x55, 0x41, 0xd2, 0x1a, 0x44, 0x81, 0x6f, 0x31, 0x6e, 0x34, 0xa7, 0x34, - 0xdc, 0x42, 0xf8, 0xde, 0xab, 0xb1, 0x8e, 0xfd, 0x28, 0xf0, 0xbb, 0x9c, 0x3c, 0x81, 0x5b, 0x2c, - 0xb6, 0x78, 0xea, 0x79, 0x96, 0xfd, 0xc6, 0x8e, 0xc4, 0x45, 0xd7, 0x67, 0xb8, 0x23, 0x18, 0xe2, - 0x6a, 0xe6, 0x12, 0x8b, 0x7b, 0xa9, 0xe7, 0x6d, 0x09, 0x66, 0x9f, 0xfa, 0x0c, 0xcd, 0xf5, 0x0a, - 0xe7, 0x6a, 0xff, 0x18, 0xe7, 0xea, 0xfc, 0x57, 0x09, 0x5a, 0x13, 0x20, 0xb2, 0x0c, 0x25, 0x15, - 0x13, 0x33, 0x07, 0x2b, 0x31, 0x97, 0x3c, 0x01, 0x3d, 0x0e, 0xd2, 0xc8, 0xa1, 0x16, 0x1d, 0x85, - 0xaa, 0xa7, 0xd2, 0xf4, 0x86, 0x48, 0x8c, 0xf8, 0x8f, 0xae, 0xfb, 0x04, 0xf4, 0xc4, 0x8e, 0x86, - 0x34, 0x29, 0x48, 0x4d, 0xdf, 0x40, 0xda, 0x12, 0x93, 0x4b, 0x6d, 0x02, 0xc9, 0xfb, 0x1a, 0x97, - 0x0e, 0x8a, 0x29, 0x92, 0x9e, 0xf5, 0x93, 0x97, 0x11, 0x36, 0x81, 0xe4, 0x3d, 0x8d, 0x65, 0xaa, - 0x45, 0x99, 0xac, 0x97, 0x5c, 0xe6, 0x53, 0x98, 0x8f, 0x06, 0xd2, 0x6b, 0xe7, 0xd0, 0x6b, 0x6f, - 0xcd, 0x58, 0xb4, 0x82, 0xeb, 0xce, 0x45, 0x03, 0x74, 0x5a, 0x29, 0xe7, 0x07, 0x2e, 0x55, 0x17, - 0x93, 0x59, 0x72, 0x85, 0xab, 0xc9, 0x5c, 0x34, 0x10, 0xad, 0xce, 0xbf, 0x69, 0x50, 0xcf, 0xcb, - 0x45, 0x3f, 0x7c, 0x02, 0x15, 0x13, 0xb7, 0xd2, 0xac, 0xc4, 0xad, 0x70, 0x44, 0x95, 0xdf, 0xf6, - 0x88, 0xaa, 0x4c, 0x1d, 0x51, 0x2b, 0x30, 0x97, 0x72, 0xf6, 0x2a, 0x95, 0x69, 0x4f, 0xcd, 0x54, - 0xad, 0x2b, 0x8e, 0xae, 0xb9, 0xd9, 0x47, 0x57, 0xe7, 0x77, 0x1a, 0xd4, 0xf3, 0xea, 0x16, 0xd9, - 0x00, 0x28, 0xf8, 0x92, 0x36, 0xb5, 0xe3, 0x05, 0x2e, 0x79, 0x02, 0xed, 0x28, 0xe4, 0x45, 0xdf, - 0x93, 0x76, 0xa5, 0x4a, 0x04, 0x66, 0xc8, 0x55, 0x0c, 0x0a, 0x79, 0xc1, 0xf9, 0xf2, 0x6b, 0x6a, - 0xf9, 0x9a, 0x6b, 0x6a, 0xe7, 0x3b, 0xad, 0x58, 0xfe, 0x21, 0x6b, 0x50, 0x15, 0x76, 0x38, 0x6b, - 0x44, 0x92, 0x41, 0x36, 0xa0, 0x2e, 0x06, 0x23, 0x51, 0x33, 0xc7, 0x51, 0x8b, 0xe4, 0x9f, 0xb7, - 0x1d, 0xc2, 0xbf, 0x94, 0xa0, 0x51, 0xa8, 0xe2, 0x91, 0xf7, 0xa0, 0x36, 0x8c, 0x82, 0x34, 0xb4, - 0x4e, 0x2f, 0x66, 0x0c, 0x63, 0x1e, 0x79, 0xdb, 0x17, 0x02, 0x66, 0x0f, 0x87, 0xd6, 0x20, 0xe5, - 0xce, 0x0c, 0x3f, 0x9b, 0xb7, 0x87, 0xc3, 0xfd, 0x94, 0x3b, 0x64, 0x0d, 0x6a, 0xf2, 0xbe, 0x4a, - 0xdd, 0x89, 0xec, 0x23, 0xa7, 0x92, 0x8f, 0xa1, 0x29, 0x66, 0x94, 0xf7, 0x59, 0x99, 0x35, 0x29, - 0x88, 0x42, 0xfe, 0xb5, 0xea, 0x59, 0x09, 0xe4, 0xbd, 0x57, 0xaf, 0x12, 0xd8, 0x52, 0x63, 0xc8, - 0xd7, 0x61, 0xee, 0xba, 0x8a, 0xc1, 0x17, 0xd0, 0x0c, 0x23, 0x8a, 0x6a, 0xa7, 0x3d, 0xe7, 0x84, - 0xed, 0x7b, 0x76, 0x7c, 0x76, 0x1c, 0xd1, 0xad, 0xe1, 0x50, 0xf8, 0x8a, 0x38, 0x3d, 0xb2, 0xff, - 0x9d, 0xbf, 0xd1, 0xa0, 0x72, 0x12, 0x84, 0x3d, 0xf2, 0x01, 0xd4, 0x30, 0xf7, 0x1d, 0xaf, 0x9d, - 0x2a, 0x37, 0x6d, 0x5f, 0x74, 0x13, 0xea, 0x9b, 0xf3, 0xc8, 0xdd, 0xbe, 0x20, 0xab, 0x59, 0xf5, - 0xb3, 0x54, 0xa8, 0x63, 0xa9, 0xb2, 0xe7, 0x5b, 0x6d, 0x9b, 0x58, 0x85, 0x71, 0x3e, 0x95, 0x2f, - 0xdb, 0x64, 0x77, 0x8d, 0x1c, 0xb1, 0x7d, 0xd1, 0xf9, 0x27, 0x0d, 0xaa, 0x58, 0x5e, 0x1d, 0x77, - 0xae, 0x5d, 0xd3, 0x79, 0xe9, 0xc7, 0x74, 0x5e, 0xfe, 0x81, 0xce, 0xc9, 0xa7, 0xb0, 0x98, 0x44, - 0x29, 0x77, 0xec, 0x84, 0x8a, 0x33, 0x1c, 0xed, 0x57, 0x0d, 0x79, 0xe2, 0x08, 0xcb, 0x40, 0xcf, - 0xe9, 0x85, 0x20, 0x74, 0xbe, 0x82, 0xca, 0x73, 0xe6, 0x79, 0xe4, 0x1d, 0x98, 0x73, 0x02, 0xce, - 0xbb, 0xbb, 0x13, 0x63, 0x56, 0x34, 0x31, 0x21, 0x99, 0x4d, 0x95, 0x0a, 0x16, 0x26, 0x49, 0x9d, - 0x2d, 0x58, 0x9e, 0x55, 0xf8, 0x22, 0x3f, 0x85, 0xd6, 0xb8, 0x50, 0x96, 0x85, 0xb8, 0x4c, 0x71, - 0x73, 0xcc, 0xea, 0xba, 0x9d, 0xbf, 0x2f, 0x83, 0x91, 0xad, 0x80, 0xfc, 0x65, 0x01, 0xef, 0xa7, - 0xbe, 0x08, 0x30, 0x64, 0x03, 0x16, 0xf1, 0x84, 0x0b, 0xa3, 0xc0, 0xa1, 0x71, 0x4c, 0x5d, 0x0b, - 0x03, 0x8a, 0xb6, 0x5e, 0x31, 0x17, 0x04, 0xe3, 0x38, 0xa3, 0xf7, 0x84, 0xf3, 0x2e, 0xf2, 0xd4, - 0x17, 0x50, 0x37, 0x75, 0xa8, 0x6b, 0x45, 0xc1, 0x9b, 0x58, 0x5a, 0x80, 0xb9, 0xc0, 0x53, 0xff, - 0x58, 0xd1, 0xcd, 0xe0, 0x4d, 0x4c, 0xde, 0x83, 0xb6, 0xc0, 0xb2, 0x84, 0x46, 0xb6, 0x8c, 0x3a, - 0x65, 0x04, 0xb6, 0x78, 0xea, 0x77, 0x73, 0xe2, 0xe5, 0xf2, 0x75, 0x65, 0xaa, 0x7c, 0xbd, 0x26, - 0xee, 0xf1, 0xdc, 0x49, 0xa3, 0x88, 0x72, 0xe7, 0x02, 0x43, 0x68, 0xc5, 0x2c, 0x92, 0xc8, 0x01, - 0x2c, 0x27, 0x6c, 0x20, 0xcc, 0x1b, 0x93, 0x6e, 0x11, 0xe8, 0x12, 0x3a, 0x4a, 0x94, 0xb7, 0x18, - 0x13, 0x0e, 0x20, 0x0e, 0x86, 0x1d, 0xc9, 0x7f, 0x7a, 0xc3, 0x24, 0x4a, 0xae, 0x40, 0x15, 0xe3, - 0x8e, 0x52, 0xa1, 0x23, 0x4e, 0xfd, 0x30, 0xc9, 0x6a, 0x63, 0x4d, 0xb3, 0x15, 0xa5, 0x3b, 0x63, - 0x22, 0x79, 0x36, 0xee, 0x14, 0xf3, 0xe6, 0x58, 0x2e, 0xa7, 0x2a, 0xef, 0x4f, 0x76, 0x2a, 0x72, - 0x67, 0xb5, 0xdc, 0x79, 0x97, 0x05, 0xda, 0x76, 0x13, 0x60, 0x97, 0x26, 0x36, 0xf3, 0xc4, 0x89, - 0xd2, 0x19, 0xc2, 0xb2, 0x92, 0xcb, 0xf7, 0x0a, 0xeb, 0x2d, 0x47, 0xb0, 0x44, 0x33, 0x82, 0xea, - 0x8e, 0xd1, 0x2c, 0xd2, 0xde, 0x9b, 0xb4, 0xf3, 0xcb, 0xbb, 0x6c, 0x12, 0x3a, 0x49, 0x61, 0x34, - 0xee, 0xfc, 0x09, 0xac, 0xaa, 0x8e, 0x4c, 0x3a, 0x64, 0x01, 0xef, 0xa5, 0xfe, 0xd1, 0xa0, 0xcb, - 0x55, 0x2d, 0xe2, 0x3e, 0x34, 0x98, 0xfa, 0x9f, 0x59, 0x57, 0xdd, 0x84, 0x8c, 0xd4, 0x75, 0xc5, - 0x65, 0x39, 0x42, 0x39, 0x8b, 0xa7, 0xbe, 0xb2, 0x82, 0x7a, 0x94, 0x69, 0xea, 0xfc, 0x33, 0x01, - 0x32, 0xbd, 0xe8, 0xe4, 0x09, 0x2c, 0xbb, 0xfe, 0x80, 0xa9, 0x9a, 0x3f, 0xa7, 0xae, 0x15, 0xda, - 0xce, 0xb9, 0xb2, 0xb8, 0xed, 0x92, 0xa1, 0x99, 0x44, 0xf2, 0xfb, 0x92, 0x7d, 0x2c, 0xb8, 0x45, - 0xa9, 0x73, 0x16, 0x86, 0xb9, 0x54, 0x69, 0x4a, 0x4a, 0xb2, 0xa5, 0xd4, 0x67, 0x60, 0x28, 0x29, - 0xd7, 0x4e, 0xec, 0xbc, 0x43, 0xb4, 0x5a, 0x69, 0x8c, 0x37, 0x25, 0x7f, 0xd7, 0x4e, 0x6c, 0xd5, - 0x1f, 0xda, 0xee, 0x65, 0x41, 0xd5, 0x27, 0x0a, 0x56, 0xa6, 0x04, 0x25, 0x17, 0x05, 0x3f, 0x87, - 0x5b, 0x49, 0x90, 0xd8, 0x9e, 0xa5, 0xc4, 0xa3, 0xd8, 0xf2, 0x02, 0xdb, 0x15, 0x17, 0xaa, 0x6a, - 0x3e, 0xd4, 0x25, 0x84, 0xec, 0x22, 0xc2, 0x8c, 0x0f, 0x02, 0xdb, 0xc5, 0x4b, 0xd5, 0xf2, 0xa4, - 0x24, 0x95, 0x62, 0x73, 0xd8, 0xdd, 0x62, 0x51, 0x84, 0xa2, 0xc0, 0xcf, 0xb2, 0xae, 0x64, 0xde, - 0x1f, 0x73, 0x3b, 0x8c, 0xcf, 0x82, 0x44, 0xc8, 0xcc, 0xa3, 0x8c, 0xd4, 0xb7, 0x2d, 0xb8, 0x7d, - 0xc5, 0x3c, 0xc4, 0x6b, 0xac, 0x17, 0x38, 0xb6, 0x67, 0xc9, 0x9d, 0x8a, 0xd1, 0x60, 0x2b, 0x66, - 0x13, 0x89, 0xd2, 0x0e, 0xd0, 0x77, 0x23, 0xea, 0x07, 0x09, 0xcd, 0x51, 0x75, 0xe9, 0xbb, 0x92, - 0x9a, 0xc1, 0xde, 0x87, 0x85, 0x34, 0xa6, 0x91, 0x1c, 0xeb, 0xe9, 0x45, 0x42, 0xe5, 0xb5, 0xb1, - 0x62, 0xb6, 0x04, 0x59, 0x8c, 0x13, 0x2b, 0xa8, 0xe4, 0x13, 0xb8, 0x29, 0x87, 0xea, 0x51, 0x3b, - 0xe2, 0x99, 0x80, 0x1f, 0xe3, 0xe5, 0xb1, 0x62, 0x12, 0x64, 0x1e, 0x48, 0x9e, 0x9a, 0xdd, 0x1f, - 0xc3, 0x1d, 0x97, 0xc5, 0xe2, 0x2c, 0x43, 0xac, 0x63, 0x3b, 0x67, 0xd4, 0x3a, 0x63, 0x89, 0xea, - 0xa6, 0x89, 0x82, 0xb7, 0x24, 0x44, 0x88, 0xec, 0x08, 0xc0, 0x53, 0x96, 0xc8, 0x0e, 0x7f, 0x05, - 0xef, 0x4c, 0x4b, 0xfb, 0x2c, 0x8e, 0x95, 0x78, 0x0b, 0xc5, 0x8d, 0x4b, 0xe2, 0x87, 0x2c, 0x8e, - 0xa5, 0xfc, 0xa7, 0x60, 0x5c, 0xde, 0x46, 0xe7, 0x8c, 0x3a, 0xe7, 0x62, 0xcc, 0xed, 0xc2, 0xe2, - 0x66, 0x7b, 0xb8, 0x23, 0x98, 0x87, 0xb1, 0xc8, 0xe8, 0xe2, 0xc4, 0xce, 0x76, 0x2f, 0x5b, 0xbb, - 0x05, 0x94, 0xd0, 0x91, 0x23, 0x3a, 0xcb, 0x96, 0x6f, 0x15, 0x6a, 0x31, 0x1d, 0xfa, 0x94, 0x27, - 0x31, 0x7e, 0x9d, 0xaa, 0x98, 0x79, 0x5b, 0x3a, 0x97, 0x9d, 0x15, 0x9b, 0x17, 0x33, 0xe7, 0xb2, - 0x65, 0xa5, 0x59, 0xb0, 0x5d, 0xea, 0x25, 0xb6, 0x34, 0x49, 0x22, 0xd9, 0x48, 0x41, 0x33, 0xbc, - 0x0f, 0x0d, 0xc9, 0x96, 0xd3, 0x5d, 0x42, 0xbe, 0x94, 0x90, 0x13, 0x7c, 0x1f, 0x16, 0xfc, 0xd7, - 0x8e, 0x63, 0x31, 0x1e, 0xa6, 0x89, 0x54, 0xb2, 0x2c, 0x77, 0x4e, 0x90, 0xbb, 0x82, 0x8a, 0x8a, - 0xd6, 0x41, 0x2f, 0xe0, 0xa4, 0xb6, 0x9b, 0x08, 0x6c, 0xe7, 0x40, 0xa9, 0x31, 0x43, 0x06, 0x69, - 0x92, 0xab, 0x5c, 0x19, 0x23, 0x8f, 0x90, 0x8c, 0x3a, 0xd7, 0xa0, 0xe9, 0xf9, 0xe8, 0x53, 0x12, - 0x75, 0x4b, 0x8e, 0xce, 0xf3, 0x85, 0x23, 0x21, 0xe2, 0x17, 0xb0, 0x5a, 0x34, 0x6d, 0xec, 0x5c, - 0x7d, 0x6b, 0xf0, 0x63, 0xfc, 0xe4, 0x54, 0x31, 0x6f, 0x8d, 0xad, 0xbb, 0x3b, 0xe6, 0x1f, 0x16, - 0x8c, 0x4d, 0x0a, 0x9f, 0xb2, 0xc4, 0xb7, 0x43, 0x21, 0x77, 0xbb, 0x60, 0x6c, 0x28, 0xb7, 0x8d, - 0xac, 0xc3, 0x98, 0x7c, 0x04, 0x4b, 0x3e, 0xe3, 0x96, 0xf4, 0x8b, 0x71, 0x47, 0xab, 0x72, 0xdf, - 0x7c, 0xc6, 0x0f, 0x04, 0xa7, 0x9f, 0xf5, 0x20, 0xe0, 0xf6, 0x68, 0x0a, 0x7e, 0x47, 0xc1, 0xed, - 0xd1, 0x24, 0xfc, 0x63, 0x58, 0x16, 0xda, 0x95, 0x43, 0x8d, 0xf1, 0xef, 0x48, 0xcf, 0xf6, 0x19, - 0x37, 0x91, 0x35, 0x21, 0x60, 0x8f, 0xa6, 0x05, 0xee, 0x2a, 0x01, 0x7b, 0x74, 0x49, 0xe0, 0x18, - 0x96, 0x94, 0xad, 0x59, 0xc1, 0xc0, 0xca, 0x42, 0xb4, 0x71, 0x0f, 0x4f, 0x86, 0xb5, 0x89, 0xa3, - 0x68, 0x46, 0xa4, 0x37, 0x17, 0x95, 0x70, 0x21, 0xf8, 0x8f, 0x03, 0x20, 0x6e, 0xea, 0x44, 0xe4, - 0xbc, 0x5f, 0x0c, 0x80, 0x87, 0xaf, 0x1d, 0x67, 0x76, 0xe4, 0x94, 0x82, 0xc5, 0xc8, 0xb9, 0x36, - 0x25, 0x58, 0x88, 0x9c, 0x5f, 0xc1, 0x5d, 0x25, 0xe8, 0xf9, 0xd9, 0x6d, 0x7b, 0xa2, 0xdb, 0x77, - 0x51, 0xfa, 0xb6, 0x04, 0x1d, 0xf8, 0xf2, 0x0e, 0x58, 0xec, 0x7a, 0xa6, 0x86, 0x62, 0xff, 0x9d, - 0x99, 0x1a, 0x0a, 0x63, 0xf8, 0x12, 0xee, 0x4a, 0xd3, 0x79, 0x8d, 0x5f, 0x20, 0x2c, 0xe6, 0x8e, - 0x64, 0xf8, 0xc6, 0x8a, 0x43, 0xfc, 0xd8, 0x70, 0x65, 0xdc, 0x40, 0x90, 0xfc, 0x4a, 0xd1, 0x75, - 0x47, 0x22, 0x80, 0xef, 0x47, 0x81, 0xdf, 0x7f, 0x4c, 0x76, 0xe0, 0xfe, 0x35, 0x0a, 0x5c, 0x16, - 0x9f, 0x1b, 0x14, 0x55, 0xac, 0xce, 0x56, 0xb1, 0xcb, 0xe2, 0x73, 0xb2, 0x07, 0x6b, 0xd7, 0x28, - 0xc1, 0x58, 0x66, 0x0c, 0x50, 0xcb, 0x9d, 0xd9, 0x5a, 0x30, 0x98, 0x5d, 0x3d, 0x99, 0xac, 0xc2, - 0x37, 0xbc, 0x6a, 0x32, 0xaa, 0xcc, 0x37, 0x6b, 0x32, 0xf2, 0xab, 0x44, 0xae, 0xe2, 0x6c, 0xd6, - 0x64, 0xe4, 0xf7, 0x09, 0xa5, 0xe4, 0x08, 0xde, 0xbb, 0x4a, 0xc9, 0x6b, 0x16, 0xb3, 0x44, 0xa4, - 0x9b, 0x81, 0x4b, 0x63, 0x83, 0xa1, 0xaa, 0xb5, 0x59, 0xaa, 0x5e, 0x48, 0x60, 0x4f, 0xe0, 0x48, - 0x1f, 0x3e, 0xb8, 0x4a, 0xa1, 0xcb, 0x62, 0xc7, 0x8e, 0xdc, 0x5c, 0xe5, 0x4b, 0x54, 0xd9, 0x99, - 0xa5, 0x72, 0x37, 0x83, 0x4a, 0xa5, 0xfb, 0xf0, 0xee, 0x94, 0x52, 0x0c, 0xbf, 0xaf, 0xa9, 0x93, - 0x4f, 0xf6, 0x7c, 0xd6, 0x9a, 0x8b, 0x78, 0xfe, 0x82, 0x3a, 0x6a, 0xb6, 0x07, 0xf0, 0x60, 0xb6, - 0x1e, 0xac, 0x4b, 0xc5, 0xb9, 0x2a, 0x0f, 0x55, 0xdd, 0x9b, 0x56, 0x75, 0x84, 0x38, 0xa9, 0xad, - 0xf3, 0xb7, 0x5a, 0x9e, 0x41, 0x15, 0xb2, 0x45, 0xf2, 0x00, 0xda, 0x3e, 0xe3, 0x27, 0xfd, 0x23, - 0x99, 0x78, 0xe6, 0xd9, 0x7a, 0x53, 0x52, 0x05, 0xb4, 0x17, 0x93, 0xc7, 0xb0, 0x12, 0xb2, 0x90, - 0x7a, 0x8c, 0x53, 0xeb, 0x55, 0x4a, 0x53, 0x9a, 0xa3, 0x65, 0xa6, 0xb6, 0x94, 0x71, 0x7f, 0x2d, - 0x98, 0x4a, 0xe8, 0x33, 0x30, 0x72, 0xa1, 0xd3, 0x88, 0xda, 0xe7, 0x34, 0xca, 0xc5, 0x54, 0xc2, - 0x94, 0xf1, 0xb7, 0x25, 0x5b, 0x0a, 0x76, 0xbe, 0x85, 0x4a, 0x3f, 0x88, 0x12, 0xf2, 0x3e, 0xcc, - 0x9f, 0xe2, 0xed, 0x29, 0x9e, 0x7d, 0x7d, 0x54, 0x4c, 0xf2, 0x00, 0x5a, 0x2c, 0xc6, 0x8f, 0x06, - 0xb6, 0x27, 0x04, 0xd5, 0x17, 0xdb, 0x49, 0xe2, 0x5b, 0xde, 0xff, 0xff, 0xbc, 0x04, 0xba, 0x7c, - 0xcf, 0xb1, 0x1f, 0xd9, 0x3e, 0xdd, 0x0e, 0x52, 0x2e, 0x2e, 0x78, 0x95, 0x42, 0x91, 0xf9, 0x66, - 0xf1, 0xd5, 0x07, 0x02, 0x0a, 0x45, 0x27, 0x04, 0x92, 0x0e, 0xd4, 0x53, 0x7e, 0x2a, 0x58, 0xd4, - 0x9d, 0xb8, 0x86, 0x8d, 0xc9, 0x64, 0x05, 0xe6, 0xe4, 0x97, 0x68, 0xb5, 0x18, 0xaa, 0x45, 0xd6, - 0xa1, 0xee, 0xd8, 0x9e, 0x23, 0xee, 0xea, 0xf1, 0x8c, 0x4b, 0xe1, 0x98, 0x49, 0xfe, 0x08, 0x1a, - 0x03, 0x31, 0x48, 0x0b, 0xbf, 0x55, 0xa9, 0x97, 0x48, 0x13, 0x75, 0x1b, 0x64, 0xe3, 0x67, 0x2d, - 0xf2, 0x73, 0x68, 0x39, 0x7e, 0x28, 0x53, 0xd0, 0x42, 0x0d, 0x4d, 0x3d, 0x1d, 0x42, 0xcc, 0x8e, - 0x1f, 0x8a, 0x14, 0x14, 0x8b, 0xbb, 0x0d, 0x67, 0xdc, 0xe8, 0xfc, 0xa5, 0x06, 0x8d, 0xc2, 0xa2, - 0x5c, 0xb7, 0x1e, 0x08, 0x98, 0x5a, 0x8f, 0x0f, 0xa1, 0x1a, 0x27, 0xb6, 0xda, 0x99, 0xfc, 0xbd, - 0xd2, 0xe5, 0x75, 0x36, 0x25, 0x88, 0xac, 0x43, 0x99, 0xf2, 0x6c, 0x9f, 0xae, 0xc2, 0x0a, 0x48, - 0xe7, 0x0f, 0x1a, 0xcc, 0x49, 0x0e, 0xf9, 0x00, 0xea, 0x83, 0x94, 0x3b, 0x16, 0x96, 0xcd, 0xa6, - 0x2b, 0x35, 0x35, 0xc1, 0xdc, 0xa5, 0xb1, 0x33, 0x75, 0x5b, 0x2f, 0xfd, 0xd0, 0x6d, 0xbd, 0x58, - 0xc6, 0x28, 0x5f, 0x57, 0xc6, 0xf8, 0x00, 0xaa, 0xb8, 0xe0, 0xea, 0x2d, 0xc6, 0xe2, 0xd4, 0xc8, - 0x4d, 0xc9, 0x1f, 0x9b, 0x62, 0xf5, 0x3a, 0x53, 0xfc, 0x12, 0x9a, 0x58, 0xe4, 0x61, 0x7c, 0x28, - 0xa6, 0x40, 0x3e, 0x86, 0xd6, 0x50, 0xb5, 0x65, 0xc5, 0x60, 0x7a, 0x96, 0xcd, 0x61, 0x41, 0xa0, - 0xf3, 0x14, 0x1a, 0x99, 0x82, 0x3e, 0x4d, 0xc8, 0x17, 0xd0, 0x9e, 0x90, 0xcf, 0xbc, 0x4a, 0x7d, - 0xfc, 0x28, 0xf6, 0x65, 0xb6, 0x8a, 0x8a, 0xe2, 0xce, 0x77, 0x1a, 0xcc, 0xc9, 0xc7, 0x3f, 0xe4, - 0xd3, 0xc2, 0x28, 0xf2, 0x67, 0x14, 0xf9, 0x64, 0x0b, 0xfd, 0x8d, 0x07, 0xd3, 0xa7, 0x49, 0xfc, - 0x96, 0xa5, 0x14, 0x03, 0xe6, 0x5f, 0xd3, 0x08, 0x1f, 0x91, 0x48, 0xaf, 0xc8, 0x9a, 0x9d, 0x8f, - 0xa0, 0x2e, 0xc6, 0x22, 0x1f, 0x50, 0xfc, 0x60, 0x65, 0xb0, 0xf3, 0x17, 0x1a, 0xcc, 0xab, 0xe7, - 0x4a, 0xe4, 0x21, 0x40, 0x18, 0x05, 0x2f, 0x27, 0x26, 0xbd, 0x30, 0x16, 0x91, 0x4f, 0x49, 0xea, - 0x02, 0x22, 0x2b, 0x85, 0x4f, 0x60, 0x65, 0x48, 0x39, 0x8d, 0x6c, 0x71, 0xa0, 0xa8, 0x14, 0x94, - 0xdb, 0xbe, 0x7a, 0x43, 0x51, 0x37, 0x97, 0x73, 0xae, 0x4c, 0x44, 0x7b, 0x82, 0xf7, 0x96, 0xf1, - 0xe5, 0x7d, 0x68, 0x4f, 0x3e, 0x8a, 0x22, 0xcb, 0x59, 0xb9, 0x46, 0x5e, 0x8a, 0x65, 0x63, 0xe3, - 0xcf, 0xca, 0xf2, 0x7d, 0x24, 0x56, 0xb0, 0x17, 0xa1, 0x25, 0x7e, 0xf3, 0xcf, 0xa1, 0xfa, 0x8d, - 0x8c, 0x94, 0xd7, 0xa7, 0x75, 0x2d, 0x23, 0xe5, 0x65, 0x5d, 0xbd, 0x44, 0x96, 0x60, 0x41, 0x90, - 0x0a, 0x05, 0x4d, 0xbd, 0x4c, 0x9a, 0x50, 0x43, 0x6d, 0x41, 0xd8, 0xd3, 0x2b, 0xa4, 0x05, 0x75, - 0xd1, 0xc2, 0x5a, 0x98, 0x5e, 0xcd, 0x95, 0x60, 0x36, 0xb8, 0x35, 0x1c, 0xea, 0x73, 0x19, 0xfe, - 0x59, 0xc0, 0xb8, 0x3e, 0x9f, 0xb5, 0x9e, 0x33, 0xcf, 0xd3, 0x6b, 0x64, 0x05, 0x88, 0x68, 0x4d, - 0xbe, 0x8e, 0xd2, 0xeb, 0xc4, 0x80, 0xe5, 0x22, 0x3d, 0x7b, 0xbf, 0xa2, 0x03, 0x21, 0xd0, 0x16, - 0x9c, 0x71, 0x99, 0x57, 0x6f, 0x90, 0x55, 0x58, 0x41, 0xda, 0xd4, 0x77, 0x5f, 0xbd, 0x99, 0xf5, - 0x27, 0x42, 0xb8, 0xde, 0x22, 0x6d, 0x00, 0xd1, 0x92, 0x3e, 0xa5, 0xb7, 0xb3, 0xb6, 0xdc, 0x69, - 0x7d, 0x81, 0x2c, 0x40, 0x63, 0xdc, 0xde, 0xd4, 0xf5, 0x6c, 0x80, 0x93, 0x6b, 0xae, 0x2f, 0x66, - 0x2b, 0x53, 0x78, 0x27, 0xa4, 0x2f, 0x93, 0x77, 0xc0, 0x50, 0xd2, 0x53, 0x15, 0x32, 0xfd, 0xe6, - 0xc6, 0xe7, 0xd0, 0x2c, 0xbe, 0x86, 0x11, 0x7d, 0x1d, 0xdb, 0x71, 0x7c, 0x72, 0x16, 0x05, 0xe9, - 0xf0, 0x4c, 0xbf, 0x21, 0x96, 0x32, 0xef, 0x47, 0xd7, 0x48, 0x0d, 0x2a, 0x4f, 0xed, 0xf8, 0x4c, - 0x2f, 0x6d, 0xfc, 0x02, 0x16, 0x2e, 0xbd, 0x82, 0x12, 0xcc, 0xde, 0x51, 0x6f, 0x4f, 0xbf, 0x21, - 0xfe, 0xed, 0x6f, 0xf5, 0x4f, 0x74, 0x8d, 0x2c, 0x83, 0xfe, 0xb4, 0xfb, 0xf5, 0x53, 0x6b, 0xe7, - 0xe8, 0xf0, 0xd8, 0xdc, 0xeb, 0xf7, 0xbb, 0x47, 0x3d, 0xbd, 0xb4, 0xf1, 0x10, 0x60, 0xfc, 0xa6, - 0x81, 0xd4, 0xa1, 0x8a, 0x17, 0x02, 0x29, 0x78, 0xc2, 0x9e, 0xbf, 0xd0, 0x35, 0xd2, 0x80, 0x79, - 0x75, 0xb4, 0xeb, 0xa5, 0x8d, 0xc7, 0xb0, 0xa0, 0xb2, 0x00, 0x31, 0xb7, 0xe7, 0x8c, 0x8b, 0xa3, - 0x86, 0x74, 0x7b, 0x2f, 0xb6, 0x0e, 0xba, 0xbb, 0x56, 0xb7, 0xb7, 0xbb, 0xf7, 0x5b, 0xeb, 0x79, - 0xb7, 0xb7, 0x2b, 0x35, 0x3c, 0xed, 0xf5, 0xbf, 0xd1, 0xb5, 0x8d, 0x53, 0x58, 0x9e, 0xf5, 0x50, - 0x86, 0xdc, 0x81, 0x5b, 0x99, 0xe4, 0x6e, 0xb7, 0x7f, 0xb2, 0xd5, 0xdb, 0xd9, 0xb3, 0x0e, 0xf7, - 0x4e, 0xcc, 0xee, 0x8e, 0x7e, 0x83, 0xcc, 0x41, 0xe9, 0xe0, 0x13, 0x5d, 0xc3, 0xdf, 0x4d, 0xbd, - 0x44, 0x00, 0xe6, 0x76, 0x8e, 0xfa, 0xdd, 0xde, 0x9e, 0x5e, 0x16, 0x76, 0xd4, 0xed, 0xf5, 0xf6, - 0x4c, 0xeb, 0xd8, 0x3c, 0xda, 0xfd, 0xcd, 0xce, 0x89, 0x5e, 0xd9, 0xf8, 0x64, 0xfc, 0xe4, 0x07, - 0xa7, 0xb2, 0x0c, 0x7a, 0x97, 0xbf, 0xb6, 0x3d, 0xe6, 0xe6, 0x34, 0xfd, 0x86, 0x98, 0xcb, 0x91, - 0x8c, 0xa7, 0xba, 0xb6, 0xf1, 0x8f, 0x1a, 0xd4, 0xb2, 0x8f, 0xb9, 0x63, 0x93, 0xe7, 0x34, 0x42, - 0x63, 0xbc, 0x41, 0x6e, 0xc2, 0x22, 0x1a, 0x2f, 0x1d, 0x24, 0x47, 0x69, 0xa2, 0xc8, 0x5a, 0xb6, - 0xe9, 0x26, 0x1b, 0x9e, 0x15, 0xe8, 0x25, 0xa2, 0x43, 0x53, 0x7a, 0x88, 0xfc, 0x24, 0xa7, 0x97, - 0xc5, 0x18, 0xd0, 0x41, 0x78, 0xc2, 0x72, 0x6a, 0x85, 0xdc, 0x86, 0x9b, 0x13, 0x6a, 0x73, 0x56, - 0x95, 0xdc, 0x85, 0xdb, 0x99, 0xc0, 0x34, 0x7b, 0x6e, 0x63, 0x0d, 0x9a, 0xc5, 0x8f, 0xc8, 0x59, - 0x8f, 0xc2, 0x0e, 0xe4, 0x90, 0x37, 0x7e, 0x0e, 0x8b, 0x53, 0x1f, 0xac, 0xc4, 0x0a, 0x76, 0x7b, - 0x72, 0xf2, 0x87, 0xdd, 0x9e, 0x75, 0xb8, 0xf5, 0x5b, 0x5d, 0x13, 0xb2, 0xdb, 0x07, 0x47, 0x47, - 0x87, 0xd6, 0x7e, 0xf7, 0xe0, 0x64, 0xcf, 0xd4, 0x4b, 0x1b, 0x1b, 0x97, 0x64, 0xd1, 0x92, 0x84, - 0x45, 0x1c, 0xed, 0x6c, 0x1d, 0xe8, 0x37, 0xc4, 0x06, 0x7c, 0x7d, 0x70, 0xb4, 0xbd, 0x75, 0xa0, - 0x6b, 0x1b, 0xdb, 0xb0, 0x38, 0x55, 0xa6, 0x17, 0x26, 0xbb, 0x1f, 0x44, 0x0e, 0x95, 0x24, 0x69, - 0x01, 0x5b, 0x69, 0x12, 0xe8, 0x9a, 0xf0, 0x4b, 0x64, 0x49, 0xcf, 0x67, 0x7c, 0xa8, 0x97, 0x36, - 0xbe, 0x84, 0x85, 0x4b, 0x59, 0x8e, 0xb0, 0xf1, 0xfd, 0xc0, 0xf3, 0x82, 0x37, 0x02, 0x81, 0x26, - 0x7f, 0x1c, 0x51, 0x87, 0xba, 0xa2, 0xa9, 0x09, 0x77, 0xdc, 0xc1, 0x42, 0xaa, 0xb8, 0x9c, 0xeb, - 0xa5, 0x8d, 0x23, 0xd0, 0x2f, 0x67, 0x16, 0x64, 0x1e, 0xca, 0x5d, 0x9e, 0xe8, 0x37, 0xc4, 0xc0, - 0xf7, 0xbd, 0xc0, 0x4e, 0xa4, 0x01, 0xef, 0x52, 0x87, 0xf9, 0xb6, 0xa7, 0x97, 0x84, 0xc7, 0xef, - 0xda, 0x09, 0x15, 0x79, 0xab, 0x8c, 0x56, 0xbb, 0xa9, 0xac, 0xef, 0xea, 0x15, 0x61, 0xdc, 0x97, - 0xf2, 0x0c, 0x31, 0x05, 0x71, 0xdf, 0x92, 0xd3, 0xc7, 0xde, 0x62, 0x5d, 0xc3, 0xa5, 0x10, 0xc7, - 0x4f, 0xac, 0x97, 0xb6, 0x7f, 0xfa, 0xfb, 0xef, 0xef, 0x69, 0xff, 0xfa, 0xfd, 0x3d, 0xed, 0x3f, - 0xbe, 0xbf, 0xa7, 0xfd, 0xd5, 0x7f, 0xde, 0xbb, 0x01, 0x37, 0x9d, 0xc0, 0x7f, 0x28, 0x8e, 0x26, - 0xc7, 0x0e, 0x1f, 0x26, 0xcc, 0x3d, 0xc5, 0x60, 0x7d, 0xac, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x54, 0xc0, 0x25, 0x07, 0xe3, 0x2e, 0x00, 0x00, + // 5110 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7a, 0xcb, 0x73, 0x23, 0xc9, + 0x71, 0x37, 0x01, 0x82, 0x24, 0x90, 0x00, 0xc1, 0x66, 0x91, 0xc3, 0xe9, 0xe1, 0xec, 0xcc, 0x70, + 0xa0, 0x7d, 0x50, 0xfc, 0xb4, 0x33, 0xbb, 0x9c, 0xd1, 0xae, 0x56, 0xfa, 0x56, 0x5a, 0x3e, 0x77, + 0xb0, 0x43, 0x82, 0x54, 0x83, 0x5a, 0xe9, 0xe0, 0x88, 0x8e, 0x66, 0x77, 0x01, 0xac, 0x65, 0xbf, + 0xb6, 0xbb, 0x31, 0x03, 0xea, 0xa4, 0xb3, 0x4f, 0x0e, 0x2b, 0x2c, 0xcb, 0x4f, 0xd9, 0xf2, 0x4b, + 0xb2, 0x64, 0x1d, 0xfc, 0x17, 0xf8, 0xa8, 0xa3, 0xaf, 0xd6, 0xc1, 0xe1, 0x58, 0x9f, 0x7c, 0xf4, + 0xcd, 0xe1, 0x93, 0xa3, 0xb2, 0xaa, 0xba, 0x0b, 0x0f, 0xce, 0xce, 0x86, 0x75, 0xf0, 0x09, 0xe8, + 0xcc, 0xfc, 0x65, 0xd6, 0x23, 0x33, 0xab, 0x2a, 0xab, 0xa0, 0x49, 0x87, 0xd4, 0x1d, 0x64, 0x51, + 0xf2, 0x20, 0x4e, 0xa2, 0x2c, 0x22, 0x95, 0x8c, 0xc5, 0xe7, 0xeb, 0x06, 0x1d, 0xc6, 0x09, 0x4d, + 0x53, 0x16, 0x85, 0x82, 0xbe, 0xde, 0x48, 0xdd, 0x0b, 0x1a, 0x38, 0xf2, 0x6b, 0xb5, 0x1f, 0xf5, + 0x23, 0xfc, 0xfb, 0x90, 0xff, 0x13, 0xd4, 0xd6, 0xcf, 0x6b, 0x50, 0x3d, 0x90, 0xea, 0xc8, 0xab, + 0x50, 0xce, 0x62, 0xb3, 0xb4, 0x51, 0xda, 0x6c, 0x6e, 0x37, 0x1f, 0x70, 0xad, 0x0f, 0x38, 0xef, + 0xec, 0x2a, 0xa6, 0xbb, 0x95, 0x5f, 0xff, 0xeb, 0xbd, 0x19, 0xab, 0x9c, 0xc5, 0x64, 0x0b, 0xaa, + 0xd9, 0xb9, 0x6f, 0xa7, 0xae, 0x13, 0x9a, 0xe5, 0x8d, 0xd2, 0x66, 0x7d, 0x7b, 0x49, 0xc8, 0x9e, + 0x39, 0xe7, 0x3e, 0xed, 0xba, 0x4e, 0x68, 0x2d, 0x64, 0xe7, 0x3e, 0xff, 0xc3, 0x65, 0x99, 0x37, + 0x14, 0xb2, 0xb3, 0xba, 0x6c, 0x3b, 0xf4, 0xe8, 0x50, 0xc8, 0x32, 0x0f, 0xff, 0x90, 0x37, 0xa1, + 0x96, 0x52, 0x9f, 0xba, 0x19, 0x8b, 0x42, 0xb3, 0xa2, 0x0b, 0x77, 0x15, 0xd9, 0x2a, 0x24, 0xc8, + 0x23, 0xa8, 0x3b, 0xfd, 0x7e, 0x42, 0xfb, 0x0e, 0x02, 0xe6, 0x10, 0xb0, 0x2c, 0x00, 0x3b, 0x05, + 0xc3, 0xd2, 0xa5, 0xc8, 0x5d, 0xa8, 0x64, 0x51, 0xdc, 0x31, 0xe7, 0x51, 0x1a, 0x64, 0xbb, 0xa3, + 0xb8, 0x63, 0x21, 0x9d, 0xdc, 0x87, 0x39, 0x9f, 0x05, 0x2c, 0x33, 0x17, 0x50, 0xa0, 0x2e, 0x04, + 0x8e, 0x38, 0xc9, 0x12, 0x1c, 0xb2, 0x07, 0xcb, 0x74, 0xe8, 0x5e, 0x38, 0x61, 0x9f, 0xda, 0x09, + 0x75, 0x29, 0x7b, 0x46, 0x13, 0xb3, 0x8a, 0xe2, 0x6b, 0x6a, 0xcc, 0x04, 0xdb, 0x92, 0x5c, 0xcb, + 0xa0, 0x63, 0x14, 0xde, 0x8e, 0x4f, 0x22, 0x16, 0x9a, 0x35, 0xbd, 0x1d, 0x1f, 0x45, 0x2c, 0xb4, + 0x90, 0x4e, 0xee, 0x41, 0x5d, 0x4d, 0xb2, 0xcd, 0x3c, 0x13, 0x36, 0x4a, 0x9b, 0x35, 0x0b, 0x14, + 0xa9, 0xed, 0x71, 0x05, 0x97, 0xcc, 0xf7, 0xcd, 0xba, 0xae, 0xe0, 0x29, 0xf3, 0x7d, 0x0b, 0xe9, + 0xe4, 0x7d, 0x58, 0xca, 0x5b, 0x99, 0xd2, 0xd0, 0xa3, 0x89, 0xd9, 0x40, 0xd1, 0xd5, 0xd1, 0x36, + 0x76, 0x91, 0x67, 0x35, 0xe9, 0xc8, 0x37, 0x79, 0x0b, 0xe0, 0x34, 0x89, 0x3e, 0x91, 0x93, 0xb1, + 0x88, 0x48, 0x43, 0x20, 0x0b, 0xba, 0xa5, 0xc9, 0x90, 0x8f, 0x60, 0x35, 0x76, 0x92, 0x8c, 0xf1, + 0x0f, 0x3b, 0xe3, 0x9e, 0x20, 0x66, 0xbd, 0x89, 0x58, 0x53, 0x62, 0x95, 0x44, 0xe1, 0x2a, 0x24, + 0x9e, 0xa0, 0xf1, 0xce, 0xa5, 0x51, 0x92, 0x99, 0x4b, 0x7a, 0xe7, 0xba, 0x51, 0x92, 0x59, 0x48, + 0x27, 0xaf, 0xc2, 0xfc, 0x73, 0x16, 0x7a, 0xd1, 0x73, 0xd3, 0x40, 0x89, 0x86, 0x90, 0xf8, 0x2e, + 0xd2, 0x2c, 0xc9, 0x23, 0x1d, 0xb8, 0xdf, 0x63, 0x21, 0xb5, 0xfb, 0x89, 0xc3, 0x42, 0xea, 0xd9, + 0xe9, 0xc5, 0xa0, 0xd7, 0xe3, 0xcd, 0xca, 0x12, 0xea, 0x04, 0xb6, 0x1b, 0x0d, 0xc2, 0xcc, 0x5c, + 0xde, 0x28, 0x6d, 0x56, 0xa4, 0x73, 0xdf, 0xe1, 0xe2, 0x1f, 0x0a, 0xe9, 0xae, 0x10, 0xee, 0xa2, + 0xec, 0x1e, 0x17, 0x25, 0x1f, 0xc1, 0xbd, 0xa9, 0xfa, 0xce, 0x9d, 0xcc, 0xbd, 0xb0, 0x53, 0xf6, + 0x7d, 0x6a, 0x12, 0x4d, 0xdb, 0xed, 0x49, 0x6d, 0xbb, 0x5c, 0xb2, 0xcb, 0xbe, 0x4f, 0x79, 0x0f, + 0xe8, 0x30, 0x76, 0x42, 0xcf, 0x5c, 0xd1, 0x7b, 0x70, 0x80, 0x34, 0x4b, 0xf2, 0xc8, 0x1b, 0xb0, + 0x20, 0xfe, 0x6d, 0x9b, 0xab, 0x28, 0xb6, 0xa8, 0x8b, 0x6d, 0x5b, 0x8a, 0xcb, 0x67, 0xfb, 0x3c, + 0x89, 0x1c, 0xcf, 0x75, 0xd2, 0xcc, 0xfe, 0x74, 0x40, 0x93, 0x2b, 0xf3, 0x86, 0x3e, 0xdb, 0xbb, + 0x8a, 0xf9, 0x6d, 0xce, 0xb3, 0x9a, 0xe7, 0x23, 0xdf, 0xe4, 0x31, 0x34, 0x18, 0x8f, 0x47, 0xdb, + 0x8f, 0xa2, 0xcb, 0x41, 0x6c, 0x9a, 0x7a, 0x2c, 0x61, 0xa4, 0x1e, 0x45, 0xd1, 0xe5, 0x77, 0x62, + 0xab, 0xce, 0xd4, 0xc7, 0x20, 0x26, 0x77, 0x00, 0x62, 0x27, 0xa1, 0x61, 0x66, 0x33, 0x6f, 0x68, + 0xde, 0xda, 0x28, 0x6d, 0x2e, 0x5a, 0x35, 0x41, 0x69, 0x7b, 0x43, 0x72, 0x0a, 0x6b, 0x74, 0x18, + 0xfb, 0x0e, 0x0b, 0xed, 0x5e, 0x94, 0xd8, 0x6e, 0x14, 0x86, 0xd2, 0x9d, 0xd6, 0x51, 0xfd, 0x7a, + 0xde, 0x17, 0x2e, 0x73, 0x18, 0x25, 0x7b, 0xb9, 0x84, 0xb5, 0x4a, 0xa7, 0x50, 0x5b, 0xbf, 0x9c, + 0x85, 0xe6, 0xa8, 0xdf, 0x92, 0x4d, 0x2d, 0x63, 0x91, 0x51, 0xcf, 0x9e, 0xc8, 0x5a, 0xcb, 0x34, + 0x74, 0x23, 0x8f, 0x7a, 0x76, 0xe6, 0xa4, 0x97, 0x76, 0x40, 0x33, 0xc7, 0x2c, 0x6f, 0xcc, 0x6e, + 0x36, 0xac, 0x25, 0xc9, 0x38, 0x73, 0xd2, 0xcb, 0x63, 0x9a, 0x39, 0xe4, 0x6d, 0x68, 0x16, 0xbe, + 0x7c, 0x49, 0xaf, 0x52, 0x73, 0x76, 0x63, 0xb6, 0xf0, 0xc4, 0x83, 0x61, 0x9c, 0x58, 0x8b, 0xb9, + 0xc4, 0x53, 0x7a, 0x95, 0x92, 0x57, 0x61, 0xce, 0xbd, 0x60, 0xbe, 0x27, 0x13, 0x97, 0x96, 0x3d, + 0x79, 0xc0, 0x5a, 0x82, 0x49, 0x5e, 0x83, 0xb9, 0xec, 0x2a, 0xa6, 0xa9, 0x39, 0x87, 0xfa, 0x64, + 0x7a, 0x3b, 0x64, 0xd4, 0xf7, 0x78, 0x73, 0x2d, 0xc1, 0x25, 0xef, 0xc2, 0x92, 0xe3, 0xfb, 0x76, + 0x8f, 0xd3, 0x6d, 0x01, 0x98, 0x9f, 0x0e, 0x58, 0x74, 0x7c, 0x3f, 0xff, 0x4a, 0xc9, 0xfb, 0x50, + 0x77, 0xa3, 0x40, 0x2d, 0x03, 0x98, 0xc4, 0x9a, 0xdb, 0x37, 0x04, 0x68, 0xaf, 0x60, 0x1c, 0x47, + 0x9e, 0x1a, 0x1a, 0x5d, 0x9e, 0x1c, 0xc1, 0xda, 0x20, 0x56, 0xe1, 0x91, 0x51, 0x6d, 0xa0, 0xaa, + 0x68, 0xfe, 0xa6, 0xec, 0x95, 0x18, 0xae, 0xdd, 0xab, 0x8c, 0xa6, 0x5d, 0x9f, 0xb9, 0xd4, 0x5a, + 0x51, 0xb0, 0xbd, 0x8c, 0xaa, 0x51, 0x6c, 0xfd, 0x6e, 0x09, 0xea, 0x9a, 0xf3, 0x90, 0xb7, 0x60, + 0x55, 0x78, 0xd9, 0x85, 0x13, 0x7a, 0x3e, 0xb5, 0xa3, 0x5e, 0x2f, 0xa5, 0x59, 0x6a, 0x96, 0x36, + 0x66, 0x37, 0x17, 0x2d, 0x82, 0xbc, 0x27, 0xc8, 0x3a, 0x11, 0x1c, 0xee, 0x61, 0x97, 0x94, 0xc6, + 0x76, 0x94, 0xf0, 0xfc, 0xc5, 0xd7, 0x9a, 0xaa, 0x55, 0xe3, 0x94, 0x13, 0x4e, 0xe0, 0x8b, 0x0b, + 0x0e, 0x6b, 0x42, 0x43, 0x39, 0x41, 0xe3, 0xc3, 0x9e, 0xf3, 0x5b, 0x5f, 0x83, 0xe5, 0x89, 0x66, + 0x93, 0x2f, 0xc1, 0xa2, 0xee, 0x13, 0xa2, 0x29, 0x0d, 0xab, 0xa1, 0xf9, 0x43, 0xda, 0xfa, 0x4d, + 0x09, 0x8c, 0xf1, 0x8c, 0x3e, 0xdd, 0x9b, 0x4a, 0xd3, 0xbd, 0xe9, 0x2d, 0xa8, 0xeb, 0x33, 0x59, + 0x9e, 0x3e, 0x93, 0xd0, 0x2b, 0xa6, 0xb1, 0x85, 0x5e, 0x3d, 0x7b, 0x9d, 0x57, 0xa3, 0x3f, 0xef, + 0xc3, 0xbd, 0x28, 0x61, 0x7d, 0x16, 0x3a, 0x3e, 0xce, 0x55, 0x9c, 0x78, 0x91, 0x3b, 0xa0, 0x89, + 0xd6, 0x9e, 0x0a, 0xb6, 0xe7, 0xb6, 0x12, 0xdb, 0xcb, 0xe8, 0xa9, 0x14, 0xca, 0xe7, 0xe8, 0x87, + 0xb3, 0xd0, 0xd8, 0xe9, 0x74, 0x30, 0x0d, 0xb4, 0xc3, 0x5e, 0x44, 0xde, 0x05, 0xc0, 0xfc, 0x81, + 0x8d, 0x1d, 0x0d, 0x2c, 0x25, 0xa7, 0x05, 0x56, 0xed, 0x53, 0x45, 0x20, 0x6d, 0x58, 0xf2, 0x58, + 0x9a, 0x39, 0xa1, 0x4b, 0xb9, 0xf5, 0x84, 0xb9, 0x38, 0x61, 0x4d, 0x15, 0xe7, 0x1f, 0x53, 0x37, + 0x8b, 0x92, 0x7d, 0x29, 0x72, 0x8c, 0x12, 0x52, 0x4b, 0xd3, 0x1b, 0xa1, 0x92, 0x5b, 0x30, 0x97, + 0x45, 0xb1, 0x7d, 0x89, 0x23, 0xb0, 0x28, 0x85, 0xf8, 0xfa, 0xfc, 0x94, 0xbc, 0xc6, 0x1d, 0xdc, + 0x1f, 0x04, 0xa1, 0x1d, 0x3a, 0x01, 0xc5, 0x60, 0xab, 0x49, 0x01, 0x10, 0x8c, 0x8e, 0x13, 0x50, + 0x72, 0x1f, 0x6a, 0x52, 0x8c, 0x79, 0xb8, 0x33, 0x98, 0x95, 0x42, 0x55, 0x41, 0xc6, 0x05, 0xb4, + 0x9e, 0xd0, 0x9e, 0xfd, 0x8c, 0xba, 0x76, 0xef, 0xd1, 0x36, 0x6e, 0x08, 0x1a, 0x56, 0x2d, 0xa1, + 0xbd, 0x8f, 0xa9, 0x7b, 0xf8, 0x68, 0x9b, 0xdc, 0x83, 0xaa, 0xf0, 0x56, 0xe6, 0xe1, 0xea, 0xae, + 0x34, 0x2c, 0x20, 0xb5, 0xcd, 0x93, 0x73, 0x23, 0x70, 0x86, 0xb6, 0x6a, 0x3b, 0xae, 0xd1, 0x25, + 0x15, 0x55, 0x81, 0x33, 0x54, 0x5d, 0x25, 0x5b, 0xd0, 0xbc, 0x08, 0xd3, 0xe7, 0x36, 0xed, 0xd9, + 0x29, 0x75, 0x12, 0xf7, 0x02, 0x93, 0xb9, 0xea, 0x57, 0x83, 0xf3, 0x0e, 0x7a, 0x5d, 0xe4, 0x7c, + 0x54, 0xa9, 0x2e, 0x18, 0xd5, 0xd6, 0x7f, 0x96, 0xa0, 0x71, 0x78, 0xd6, 0x7d, 0xa9, 0x59, 0x51, + 0x72, 0xd3, 0x67, 0x45, 0xef, 0x45, 0x79, 0x5a, 0x2f, 0xb6, 0x60, 0x41, 0x0c, 0x89, 0xca, 0x71, + 0x86, 0xca, 0x16, 0x38, 0x4e, 0x61, 0x2f, 0xb2, 0x94, 0x00, 0xb9, 0x0f, 0x0d, 0x6d, 0xf0, 0x53, + 0xf4, 0xaf, 0x9a, 0x55, 0x2f, 0xc6, 0x3d, 0x25, 0x5f, 0xca, 0x1b, 0x4a, 0x87, 0x19, 0x8e, 0x7c, + 0x6d, 0xb4, 0x51, 0x74, 0x98, 0x91, 0x15, 0x35, 0xbf, 0x80, 0x6b, 0x06, 0xce, 0x6c, 0xeb, 0x07, + 0x73, 0x50, 0x2b, 0x76, 0x00, 0xf7, 0xa0, 0x2a, 0xf6, 0x10, 0xcc, 0xc3, 0xee, 0xe6, 0xed, 0x46, + 0xea, 0x68, 0xbb, 0xcb, 0x9f, 0xd7, 0x6e, 0x13, 0x2a, 0x1e, 0x4d, 0x5d, 0x74, 0xa7, 0xaa, 0x72, + 0x27, 0x4e, 0x21, 0x5f, 0x01, 0x12, 0x27, 0x2c, 0x70, 0x92, 0x2b, 0x3b, 0xf7, 0x17, 0xd1, 0xaf, + 0x59, 0xcb, 0x90, 0x1c, 0xa9, 0xd1, 0x4b, 0xc9, 0x07, 0x60, 0x84, 0x74, 0x98, 0xd9, 0x09, 0x75, + 0x3c, 0x9b, 0x86, 0x7d, 0x16, 0x52, 0xec, 0x62, 0x53, 0x19, 0x3f, 0x40, 0x9a, 0x36, 0x13, 0x4d, + 0x2e, 0x6f, 0x51, 0xc7, 0x13, 0x1c, 0xf2, 0x15, 0x98, 0x4f, 0x78, 0x14, 0xab, 0x7c, 0x2e, 0xf3, + 0xd5, 0x53, 0x7a, 0x65, 0x71, 0xb2, 0x44, 0x49, 0x19, 0xf2, 0x1e, 0xdc, 0x52, 0xad, 0x8b, 0x13, + 0xda, 0x63, 0x43, 0xbd, 0x91, 0x0b, 0xd8, 0xc8, 0x35, 0x29, 0x70, 0x8a, 0xfc, 0xa2, 0xa9, 0xa3, + 0x99, 0xb3, 0x3a, 0x9e, 0x39, 0x37, 0xa0, 0xc1, 0x52, 0xbb, 0xc7, 0x77, 0x0b, 0xb8, 0x49, 0xab, + 0xa1, 0x00, 0xb0, 0xf4, 0xd0, 0x49, 0x33, 0x9c, 0x80, 0x63, 0xb8, 0x13, 0x0f, 0xd2, 0x0b, 0xea, + 0xd9, 0x5e, 0xf4, 0x3c, 0xb4, 0x7b, 0xcc, 0xcf, 0x28, 0x2e, 0xe2, 0x1e, 0xae, 0x79, 0xa9, 0x09, + 0x13, 0x2b, 0xe2, 0xba, 0x00, 0xec, 0x47, 0xcf, 0xc3, 0x43, 0x14, 0xdf, 0xcb, 0xa5, 0xc9, 0x1e, + 0xac, 0x24, 0x83, 0x30, 0x63, 0x01, 0x55, 0xaa, 0x7c, 0x96, 0x66, 0x66, 0x1d, 0x95, 0xac, 0x08, + 0x25, 0x96, 0x10, 0x10, 0x58, 0x6b, 0x39, 0xd1, 0x3f, 0x8f, 0x58, 0x9a, 0x91, 0x37, 0xc1, 0xe0, + 0x11, 0xf7, 0xdc, 0x61, 0x99, 0x8d, 0xaa, 0x82, 0x14, 0x37, 0xb5, 0x73, 0x72, 0xdc, 0x16, 0x03, + 0x67, 0xf8, 0x5d, 0x87, 0x65, 0x67, 0x2c, 0xa0, 0xc7, 0x29, 0x79, 0x08, 0x35, 0x27, 0x0c, 0xe5, + 0x76, 0x48, 0x6c, 0x61, 0xc7, 0x32, 0x19, 0xba, 0x49, 0xd5, 0x09, 0x43, 0xfc, 0x6a, 0xfd, 0xa4, + 0x02, 0x64, 0x72, 0x87, 0xfa, 0x7f, 0xd3, 0x17, 0x5f, 0xe8, 0x1b, 0x73, 0x2f, 0xf4, 0x8d, 0x2f, + 0x41, 0xb1, 0x77, 0x41, 0xf1, 0x79, 0x14, 0x6f, 0xe4, 0x44, 0x2e, 0x34, 0xee, 0x21, 0x0b, 0x5f, + 0xdc, 0x43, 0xaa, 0xbf, 0x0d, 0x0f, 0xa9, 0xfd, 0xaf, 0x3d, 0x04, 0x5e, 0xd2, 0x43, 0xea, 0x2f, + 0xe1, 0x21, 0xff, 0x3d, 0x07, 0x15, 0x7e, 0x4a, 0x23, 0x6f, 0x43, 0x8d, 0x9f, 0xd3, 0xf4, 0x7c, + 0xdc, 0x2c, 0x0e, 0x71, 0x5a, 0x06, 0xa8, 0x7e, 0x22, 0xbf, 0xc9, 0x37, 0xa1, 0x89, 0x10, 0x7e, + 0x88, 0x13, 0xb8, 0xb2, 0x9e, 0xc7, 0x39, 0x6e, 0xec, 0xb0, 0xdd, 0xf8, 0x44, 0xa3, 0x7d, 0x91, + 0xdd, 0x0e, 0x5f, 0xff, 0x58, 0x18, 0xd2, 0x04, 0x77, 0xe6, 0x15, 0x7d, 0xfd, 0x43, 0x32, 0xdf, + 0x9e, 0xbf, 0x05, 0x4d, 0x9f, 0xf6, 0x32, 0x1b, 0xdb, 0x84, 0x7b, 0xdc, 0xb9, 0x89, 0xf9, 0x6a, + 0x70, 0x09, 0xde, 0x30, 0xdc, 0xe2, 0x6e, 0xc3, 0x52, 0xc2, 0xfa, 0x17, 0x3a, 0x64, 0x7e, 0x72, + 0x5b, 0x8c, 0x22, 0x39, 0xe6, 0x2d, 0xa8, 0xc7, 0x49, 0x74, 0x4e, 0xe5, 0xde, 0x67, 0xe1, 0x9a, + 0xbd, 0x0f, 0xca, 0x88, 0xbd, 0xcf, 0x5b, 0x50, 0x3f, 0x1f, 0xb0, 0x7c, 0xb7, 0x54, 0xbd, 0x06, + 0x81, 0x32, 0x02, 0xf1, 0x08, 0x96, 0xb0, 0x27, 0x9a, 0xeb, 0xd5, 0x26, 0xda, 0x85, 0x9d, 0xd5, + 0xdc, 0xed, 0xab, 0x60, 0x88, 0xce, 0xbc, 0x30, 0xa5, 0x89, 0x0e, 0x8f, 0xc2, 0xa2, 0xec, 0x62, + 0xd4, 0xcf, 0xeb, 0x93, 0x30, 0x94, 0xd1, 0x60, 0x4f, 0xe0, 0xb6, 0x80, 0xd1, 0x4f, 0x35, 0xa4, + 0xdd, 0x4b, 0xa2, 0xc0, 0x66, 0xa1, 0xd9, 0x98, 0xd0, 0x70, 0x13, 0xc5, 0x0f, 0x3e, 0x2d, 0x74, + 0x1c, 0x26, 0x51, 0xd0, 0x0e, 0xc9, 0x63, 0xb8, 0xc9, 0x52, 0x3b, 0x1c, 0xf8, 0xbe, 0xed, 0x3c, + 0x77, 0x12, 0x7e, 0xb8, 0x0f, 0x18, 0xce, 0x08, 0xa6, 0xb8, 0xaa, 0xb5, 0xc2, 0xd2, 0xce, 0xc0, + 0xf7, 0x77, 0x38, 0xb3, 0x4b, 0x03, 0x86, 0xee, 0x7a, 0x4d, 0x70, 0x35, 0xbf, 0x48, 0x70, 0xb5, + 0xfe, 0xa3, 0x0c, 0x8b, 0x23, 0x42, 0x64, 0x15, 0xca, 0x32, 0x27, 0xaa, 0x00, 0x2b, 0x33, 0x8f, + 0x3c, 0x06, 0x23, 0x8d, 0x06, 0x89, 0x4b, 0x6d, 0x3a, 0x8c, 0xa5, 0xa5, 0xf2, 0xe4, 0x84, 0x08, + 0x19, 0xfe, 0x1f, 0x43, 0xf7, 0x31, 0x18, 0x99, 0x93, 0xf4, 0x69, 0xa6, 0xa1, 0x26, 0x4f, 0x5d, + 0x4d, 0x21, 0x93, 0xa3, 0xb6, 0x81, 0xe4, 0xb6, 0x8a, 0x72, 0x89, 0xbe, 0x2d, 0x34, 0x94, 0x9d, + 0xbc, 0x74, 0xb2, 0x0d, 0x24, 0xb7, 0x54, 0x60, 0xf4, 0xbd, 0x8a, 0xa1, 0xac, 0xe4, 0x98, 0x77, + 0x60, 0x21, 0xe9, 0x89, 0xa8, 0x9d, 0xc7, 0xa8, 0xbd, 0x39, 0x65, 0xd0, 0xb4, 0xd0, 0x9d, 0x4f, + 0x7a, 0x18, 0xb4, 0x02, 0x17, 0x44, 0x1e, 0x95, 0x87, 0xb1, 0x69, 0x38, 0xed, 0x38, 0x36, 0x9f, + 0xf4, 0xf8, 0x57, 0xeb, 0x5f, 0x4a, 0x50, 0xcb, 0x4b, 0x64, 0x9f, 0xbf, 0x02, 0xfd, 0x56, 0xb7, + 0x79, 0x6a, 0x89, 0xaa, 0x4c, 0x2c, 0x51, 0x6b, 0x30, 0x3f, 0x08, 0xd9, 0xa7, 0x03, 0xb1, 0xed, + 0xa9, 0x5a, 0xf2, 0xeb, 0x9a, 0xa5, 0x6b, 0x7e, 0xfa, 0xd2, 0xd5, 0xfa, 0x61, 0x09, 0x6a, 0x79, + 0x45, 0x8f, 0x6c, 0x01, 0x68, 0xb1, 0x54, 0x9a, 0x98, 0x71, 0x8d, 0x4b, 0x1e, 0x43, 0x33, 0x89, + 0x43, 0x3d, 0xf6, 0x84, 0x5f, 0xc9, 0xb2, 0x88, 0x15, 0x87, 0x32, 0x07, 0xc5, 0xa1, 0x16, 0x7c, + 0xf9, 0xd1, 0x7c, 0xf6, 0x05, 0x47, 0xf3, 0xd6, 0x0f, 0x4a, 0x7a, 0xc9, 0x8b, 0x6c, 0xc0, 0x1c, + 0xf7, 0xc3, 0x69, 0x2d, 0x12, 0x0c, 0xb2, 0x05, 0x35, 0xde, 0x18, 0x21, 0x35, 0xb5, 0x1d, 0xd5, + 0x44, 0xfc, 0x79, 0xd9, 0x26, 0xfc, 0x53, 0x19, 0xea, 0x5a, 0xe5, 0x92, 0xbc, 0x06, 0xd5, 0x7e, + 0x12, 0x0d, 0x62, 0xfb, 0xfc, 0x6a, 0x4a, 0x33, 0x16, 0x90, 0xb7, 0x7b, 0xc5, 0xc5, 0x9c, 0x7e, + 0xdf, 0xee, 0x0d, 0x42, 0x77, 0x4a, 0x9c, 0x2d, 0x38, 0xfd, 0xfe, 0xe1, 0x20, 0x74, 0xc9, 0x06, + 0x54, 0xc5, 0x19, 0x9d, 0x7a, 0x23, 0xbb, 0x8f, 0x9c, 0x4a, 0x1e, 0x42, 0x83, 0xf7, 0x28, 0xb7, + 0x59, 0x99, 0xd6, 0x29, 0x48, 0xe2, 0xf0, 0x43, 0x69, 0x59, 0x02, 0x72, 0xeb, 0x73, 0xd7, 0x01, + 0x76, 0x64, 0x1b, 0xf2, 0x71, 0x98, 0x7f, 0x51, 0x95, 0xe4, 0x3d, 0x68, 0xc4, 0x09, 0x45, 0xb5, + 0x93, 0x91, 0x73, 0xc6, 0x0e, 0x7d, 0x27, 0xbd, 0x38, 0x4d, 0xe8, 0x4e, 0xbf, 0xcf, 0x63, 0x85, + 0xaf, 0x1e, 0xea, 0x7f, 0xeb, 0xa7, 0x25, 0xa8, 0x9c, 0x45, 0x71, 0x87, 0xbc, 0x01, 0x55, 0xdc, + 0xfb, 0x16, 0x63, 0x27, 0x4b, 0x6c, 0xbb, 0x57, 0xed, 0x8c, 0x06, 0xd6, 0x02, 0x72, 0x77, 0xaf, + 0xc8, 0xba, 0xaa, 0xf8, 0x96, 0xb5, 0xda, 0x9d, 0x2c, 0xf5, 0xbe, 0xd4, 0xb4, 0xf1, 0x51, 0x28, + 0xf6, 0x53, 0xf9, 0xb0, 0x8d, 0x9a, 0xab, 0xe7, 0x12, 0xbb, 0x57, 0xad, 0x7f, 0x2c, 0xc1, 0x1c, + 0x96, 0x94, 0x0b, 0xe3, 0xa5, 0x17, 0x18, 0x2f, 0x7f, 0x11, 0xe3, 0xb3, 0x9f, 0x63, 0x9c, 0xbc, + 0x03, 0xcb, 0x59, 0x32, 0x08, 0x5d, 0x27, 0xa3, 0x7c, 0x0d, 0x47, 0xff, 0x95, 0x4d, 0x1e, 0x59, + 0xc2, 0x94, 0xd0, 0x53, 0x7a, 0xc5, 0x09, 0xad, 0x0f, 0xa0, 0xf2, 0x94, 0xf9, 0x3e, 0x79, 0x05, + 0xe6, 0xdd, 0x28, 0x0c, 0xdb, 0xfb, 0x23, 0x6d, 0x96, 0x34, 0xde, 0x21, 0xb1, 0x9b, 0x2a, 0x6b, + 0x1e, 0x26, 0x48, 0xad, 0x1d, 0x58, 0x9d, 0x56, 0xec, 0x23, 0x5f, 0x86, 0xc5, 0xa2, 0x38, 0xa8, + 0x52, 0x9c, 0x52, 0xdc, 0x28, 0x58, 0x6d, 0xaf, 0xf5, 0x8b, 0x59, 0x30, 0xd5, 0x08, 0x88, 0x5f, + 0x16, 0x85, 0xdd, 0x41, 0xc0, 0x13, 0x0c, 0xd9, 0x82, 0x65, 0x5c, 0xe1, 0xe2, 0x24, 0x72, 0x69, + 0x9a, 0x52, 0xcf, 0xc6, 0x84, 0x52, 0xda, 0xac, 0x58, 0x4b, 0x9c, 0x71, 0xaa, 0xe8, 0x1d, 0x1e, + 0xbc, 0xcb, 0xe1, 0x20, 0xe0, 0xa2, 0xde, 0xc0, 0xa5, 0x9e, 0x9d, 0x44, 0xcf, 0x53, 0xe1, 0x01, + 0xd6, 0x52, 0x38, 0x08, 0x4e, 0x25, 0xdd, 0x8a, 0x9e, 0xa7, 0xe4, 0x35, 0x68, 0x72, 0x59, 0x96, + 0xd1, 0xc4, 0x11, 0x59, 0x67, 0x16, 0x05, 0x17, 0xc3, 0x41, 0xd0, 0xce, 0x89, 0xe3, 0x25, 0xfb, + 0xca, 0x44, 0xc9, 0x7e, 0x03, 0xea, 0x6e, 0x14, 0xba, 0x83, 0x24, 0xa1, 0xa1, 0x7b, 0x85, 0x29, + 0xb4, 0x62, 0xe9, 0x24, 0x72, 0x04, 0xab, 0x19, 0xeb, 0x71, 0xf7, 0xc6, 0x4d, 0x37, 0x4f, 0x74, + 0x78, 0x8e, 0x9e, 0xd7, 0x6b, 0xe8, 0x32, 0x00, 0xf8, 0xc2, 0xb0, 0x27, 0xf8, 0x4f, 0x66, 0x2c, + 0x22, 0x71, 0x1a, 0x95, 0xb7, 0x3b, 0x19, 0x70, 0x1d, 0xe9, 0x20, 0x88, 0x33, 0x55, 0x0f, 0x6c, + 0x58, 0x8b, 0xc9, 0x60, 0xaf, 0x20, 0x92, 0x8f, 0x0a, 0xa3, 0xb8, 0x6f, 0x4e, 0xc5, 0x70, 0xca, + 0x2b, 0x8d, 0x51, 0xa3, 0x7c, 0xef, 0x2c, 0x87, 0x3b, 0x37, 0xa9, 0xd1, 0x76, 0x1b, 0x00, 0xfb, + 0x34, 0x73, 0x98, 0xcf, 0x57, 0x94, 0x56, 0x1f, 0x56, 0x25, 0x2e, 0x9f, 0x2b, 0xac, 0x66, 0x9c, + 0xc0, 0x0a, 0x55, 0x04, 0x69, 0x8e, 0x51, 0x95, 0x69, 0xef, 0x8e, 0xfa, 0xf9, 0xf8, 0x2c, 0x5b, + 0x84, 0x8e, 0x52, 0x18, 0x4d, 0x5b, 0xbf, 0x03, 0xeb, 0xd2, 0x90, 0x45, 0xfb, 0x2c, 0x0a, 0x3b, + 0x83, 0xe0, 0xa4, 0xd7, 0x0e, 0x65, 0xfd, 0xe5, 0x1e, 0xd4, 0x99, 0xfc, 0xaf, 0xbc, 0xab, 0x66, + 0x81, 0x22, 0xb5, 0x3d, 0x7e, 0x58, 0x4e, 0x10, 0x67, 0x87, 0x83, 0x40, 0x7a, 0x41, 0x2d, 0x51, + 0x9a, 0x5a, 0xff, 0x75, 0x07, 0xc8, 0xe4, 0xa0, 0x93, 0xc7, 0xb0, 0xea, 0x05, 0x3d, 0x26, 0xef, + 0x39, 0x42, 0xea, 0xd9, 0xb1, 0xe3, 0x5e, 0x4a, 0x8f, 0xdb, 0x2d, 0x9b, 0x25, 0x8b, 0x08, 0x7e, + 0x57, 0xb0, 0x4f, 0x39, 0x57, 0x47, 0x5d, 0xb2, 0x38, 0xce, 0x51, 0xe5, 0x09, 0x94, 0x60, 0x0b, + 0xd4, 0xbb, 0x60, 0x4a, 0x94, 0xe7, 0x64, 0x4e, 0x6e, 0x10, 0xbd, 0x56, 0x38, 0xe3, 0x0d, 0xc1, + 0xdf, 0x77, 0x32, 0x47, 0xda, 0x43, 0xdf, 0x1d, 0x07, 0x4a, 0x9b, 0x08, 0xac, 0x4c, 0x00, 0x05, + 0x17, 0x81, 0x5f, 0x83, 0x9b, 0x59, 0x94, 0x39, 0xbe, 0x2d, 0xe1, 0x49, 0x6a, 0xfb, 0x91, 0xe3, + 0xf1, 0x03, 0xd5, 0x5c, 0xde, 0xd4, 0x15, 0x14, 0xd9, 0x47, 0x09, 0x2b, 0x3d, 0x8a, 0x1c, 0x0f, + 0x0f, 0x55, 0xab, 0xa3, 0x48, 0x2a, 0x60, 0xf3, 0x68, 0x6e, 0x59, 0x87, 0x50, 0x04, 0x7c, 0x55, + 0x99, 0x12, 0xfb, 0xfe, 0x34, 0x74, 0xe2, 0xf4, 0x22, 0xca, 0x38, 0x66, 0x01, 0x31, 0x42, 0xdf, + 0x2e, 0xe7, 0x76, 0x25, 0xf3, 0x18, 0x8f, 0xb1, 0x7e, 0xe4, 0x3a, 0xbe, 0x2d, 0x66, 0x2a, 0x45, + 0x87, 0xad, 0x58, 0x0d, 0x24, 0x0a, 0x3f, 0xc0, 0xd8, 0x4d, 0x68, 0x10, 0x65, 0x34, 0x97, 0xaa, + 0x89, 0xd8, 0x15, 0x54, 0x25, 0xf6, 0x3a, 0x2c, 0x0d, 0x52, 0x9a, 0x88, 0xb6, 0x9e, 0x5f, 0x65, + 0x54, 0x1c, 0x1b, 0x2b, 0xd6, 0x22, 0x27, 0xf3, 0x76, 0x62, 0xd5, 0x98, 0xbc, 0x0d, 0x37, 0x44, + 0x53, 0x7d, 0xea, 0x24, 0xa1, 0x02, 0x04, 0x29, 0x1e, 0x1e, 0x2b, 0x16, 0x41, 0xe6, 0x91, 0xe0, + 0xc9, 0xde, 0xfd, 0x7f, 0xb8, 0xed, 0xb1, 0x94, 0xaf, 0x65, 0x28, 0xeb, 0x3a, 0xee, 0x05, 0xb5, + 0x2f, 0x58, 0x26, 0xcd, 0x34, 0x10, 0x78, 0x53, 0x88, 0x70, 0xc8, 0x1e, 0x17, 0x78, 0xc2, 0x32, + 0x61, 0xf0, 0x9b, 0xf0, 0xca, 0x24, 0x3a, 0x60, 0x69, 0x2a, 0xe1, 0x8b, 0x08, 0x37, 0xc7, 0xe0, + 0xc7, 0x2c, 0x4d, 0x05, 0xfe, 0x1d, 0x30, 0xc7, 0xa7, 0xd1, 0xbd, 0xa0, 0xee, 0x25, 0x6f, 0x73, + 0x53, 0x1b, 0x5c, 0x35, 0x87, 0x7b, 0x9c, 0x79, 0x9c, 0xf2, 0x1d, 0x5d, 0x9a, 0x39, 0x6a, 0xf6, + 0xd4, 0xd8, 0x2d, 0x21, 0xc2, 0x40, 0x0e, 0x37, 0xa6, 0x86, 0x6f, 0x1d, 0xaa, 0x29, 0xed, 0x07, + 0x34, 0xcc, 0x52, 0xbc, 0x91, 0xab, 0x58, 0xf9, 0xb7, 0x08, 0x2e, 0x47, 0x15, 0xd8, 0x97, 0x55, + 0x70, 0x39, 0xa2, 0xba, 0xce, 0xd9, 0x1e, 0xf5, 0x33, 0x47, 0xb8, 0x24, 0x11, 0x6c, 0xa4, 0xa0, + 0x1b, 0xde, 0x83, 0xba, 0x60, 0x8b, 0xee, 0xae, 0x20, 0x5f, 0x20, 0x44, 0x07, 0x5f, 0x87, 0xa5, + 0xe0, 0x99, 0xeb, 0xda, 0x2c, 0x8c, 0x07, 0x99, 0x50, 0xb2, 0x2a, 0x66, 0x8e, 0x93, 0xdb, 0x9c, + 0x8a, 0x8a, 0x36, 0xc1, 0xd0, 0xe4, 0x84, 0xb6, 0x1b, 0x28, 0xd8, 0xcc, 0x05, 0x85, 0x46, 0x25, + 0x19, 0x0d, 0xb2, 0x5c, 0xe5, 0x5a, 0x21, 0x79, 0x82, 0x64, 0xd4, 0xb9, 0x01, 0x0d, 0x3f, 0xc0, + 0x98, 0x12, 0x52, 0x37, 0x45, 0xeb, 0xfc, 0x80, 0x07, 0x12, 0x4a, 0x7c, 0x03, 0xd6, 0x75, 0xd7, + 0x46, 0xe3, 0xf2, 0x7e, 0x25, 0x48, 0xf1, 0x9a, 0xad, 0x62, 0xdd, 0x2c, 0xbc, 0xbb, 0x5d, 0xf0, + 0x8f, 0x35, 0x67, 0x13, 0xe0, 0x73, 0x96, 0x05, 0x4e, 0xcc, 0x71, 0xb7, 0x34, 0x67, 0x43, 0xdc, + 0x2e, 0xb2, 0x8e, 0x53, 0xf2, 0x26, 0xac, 0x04, 0x2c, 0xb4, 0x45, 0x5c, 0x14, 0x86, 0xd6, 0xc5, + 0xbc, 0x05, 0x2c, 0x3c, 0xe2, 0x9c, 0xae, 0xb2, 0xc0, 0xc5, 0x9d, 0xe1, 0x84, 0xf8, 0x6d, 0x29, + 0xee, 0x0c, 0x47, 0xc5, 0x1f, 0xc2, 0x2a, 0xd7, 0x2e, 0x03, 0xaa, 0x90, 0x7f, 0x45, 0x44, 0x76, + 0xc0, 0x42, 0x0b, 0x59, 0x23, 0x00, 0x67, 0x38, 0x09, 0xb8, 0x23, 0x01, 0xce, 0x70, 0x0c, 0x70, + 0x0a, 0x2b, 0xd2, 0xd7, 0xec, 0xa8, 0x67, 0xab, 0x14, 0x6d, 0xde, 0xc5, 0x95, 0x61, 0x63, 0x64, + 0x29, 0x9a, 0x92, 0xe9, 0xad, 0x65, 0x09, 0xd6, 0x92, 0x7f, 0x91, 0x00, 0x71, 0x52, 0x47, 0x32, + 0xe7, 0x3d, 0x3d, 0x01, 0x1e, 0x3f, 0x73, 0xdd, 0xe9, 0x99, 0x53, 0x00, 0xf5, 0xcc, 0xb9, 0x31, + 0x01, 0xd4, 0x32, 0xe7, 0x07, 0x70, 0x47, 0x02, 0xfd, 0x40, 0x9d, 0xb6, 0x47, 0xcc, 0xde, 0x47, + 0xf4, 0x2d, 0x21, 0x74, 0x14, 0x88, 0x33, 0xa0, 0x6e, 0x7a, 0xaa, 0x06, 0xdd, 0x7e, 0x6b, 0xaa, + 0x06, 0xad, 0x0d, 0xdf, 0x82, 0x3b, 0xc2, 0x75, 0x9e, 0xe1, 0xad, 0x8b, 0xcd, 0xbc, 0xa1, 0x48, + 0xdf, 0x58, 0x71, 0x48, 0x1f, 0x99, 0x9e, 0xc8, 0x1b, 0x28, 0x24, 0x6e, 0x66, 0xda, 0xde, 0x90, + 0x27, 0xf0, 0xc3, 0x24, 0x0a, 0xba, 0x8f, 0xc8, 0x1e, 0xdc, 0x7b, 0x81, 0x02, 0x8f, 0xa5, 0x97, + 0x26, 0x45, 0x15, 0xeb, 0xd3, 0x55, 0xec, 0xb3, 0xf4, 0x92, 0x1c, 0xc0, 0xc6, 0x0b, 0x94, 0x60, + 0x2e, 0x33, 0x7b, 0xa8, 0xe5, 0xf6, 0x74, 0x2d, 0x98, 0xcc, 0xae, 0xef, 0x8c, 0xaa, 0xf0, 0xf5, + 0xaf, 0xeb, 0x8c, 0x2c, 0xf3, 0x4d, 0xeb, 0x8c, 0xb8, 0x89, 0xc9, 0x55, 0x5c, 0x4c, 0xeb, 0x8c, + 0xb8, 0x93, 0x91, 0x4a, 0x4e, 0xe0, 0xb5, 0xeb, 0x94, 0x3c, 0x63, 0x29, 0xcb, 0xf8, 0x76, 0x33, + 0xf2, 0x68, 0x6a, 0x32, 0x54, 0xb5, 0x31, 0x4d, 0xd5, 0xc7, 0x42, 0xb0, 0xc3, 0xe5, 0x48, 0x17, + 0xde, 0xb8, 0x4e, 0xa1, 0xc7, 0x52, 0xd7, 0x49, 0xbc, 0x5c, 0xe5, 0x27, 0xa8, 0xb2, 0x35, 0x4d, + 0xe5, 0xbe, 0x12, 0x15, 0x4a, 0x0f, 0xe1, 0xfe, 0x84, 0x52, 0x4c, 0xbf, 0xcf, 0xa8, 0x9b, 0x77, + 0xf6, 0x72, 0xda, 0x98, 0xf3, 0x7c, 0xfe, 0x31, 0x75, 0x65, 0x6f, 0x8f, 0xe0, 0xd5, 0xe9, 0x7a, + 0xb0, 0x2e, 0x95, 0xe6, 0xaa, 0x7c, 0x54, 0x75, 0x77, 0x52, 0xd5, 0x09, 0xca, 0x49, 0x6d, 0xef, + 0xc3, 0xed, 0x5e, 0x96, 0xda, 0xa1, 0x2a, 0x78, 0x05, 0x34, 0x88, 0x92, 0x2b, 0x3b, 0x8c, 0xb0, + 0x3c, 0x61, 0xfe, 0xa8, 0x84, 0xf7, 0x40, 0x37, 0x7b, 0x59, 0xda, 0x11, 0x65, 0x2e, 0x21, 0xd0, + 0x11, 0x7c, 0x9e, 0x08, 0x35, 0x78, 0xc6, 0xc2, 0x2b, 0x5b, 0x00, 0xff, 0x50, 0x00, 0x97, 0x15, + 0xf0, 0x8c, 0x85, 0x57, 0x58, 0x35, 0xe1, 0x7b, 0x8a, 0x71, 0x88, 0xb2, 0xf6, 0x63, 0x01, 0x5a, + 0xd1, 0x41, 0xca, 0xd2, 0x43, 0x58, 0xd5, 0x60, 0x5e, 0xd0, 0x93, 0x86, 0xfe, 0x48, 0x60, 0x0c, + 0x85, 0xd9, 0x0f, 0x7a, 0xc2, 0xce, 0x23, 0x58, 0x1b, 0x03, 0x28, 0x33, 0x7f, 0x2c, 0x20, 0x44, + 0x83, 0x28, 0x2b, 0x7b, 0x70, 0x97, 0x83, 0x78, 0x28, 0x5f, 0x33, 0x22, 0x7f, 0x22, 0x8e, 0x2d, + 0xeb, 0xbd, 0x2c, 0xe5, 0xf1, 0x3c, 0x6d, 0x50, 0xde, 0x05, 0x73, 0x54, 0x89, 0x36, 0x2e, 0x7f, + 0x2a, 0xe0, 0xab, 0x1a, 0xbc, 0x18, 0x9a, 0x6f, 0xc0, 0xfa, 0x14, 0xa0, 0xb2, 0xfc, 0x67, 0x02, + 0xba, 0x36, 0x06, 0x55, 0x56, 0xe5, 0xb8, 0x16, 0xe0, 0x62, 0x8c, 0xfe, 0x5c, 0x20, 0x57, 0x34, + 0x64, 0x3e, 0x4c, 0xef, 0xc1, 0xad, 0x49, 0x98, 0x32, 0xf9, 0x13, 0x01, 0xbc, 0x31, 0x0a, 0x1c, + 0x9b, 0xfc, 0x22, 0xe8, 0xd1, 0x2d, 0x83, 0xd4, 0xfc, 0x0b, 0x01, 0xe3, 0x93, 0xaf, 0xc2, 0x9d, + 0xb3, 0xc4, 0x86, 0x72, 0x04, 0xa2, 0xa5, 0x9b, 0xbf, 0x2c, 0x26, 0x7f, 0x22, 0xcf, 0x7c, 0x00, + 0x77, 0xa6, 0xc0, 0x44, 0x3d, 0x8b, 0x27, 0x5a, 0xf3, 0xa7, 0x02, 0x6c, 0x8e, 0x81, 0x51, 0xe2, + 0x90, 0xf9, 0x94, 0xef, 0xf5, 0x26, 0x35, 0xa4, 0xf2, 0x31, 0xd4, 0x23, 0xf3, 0xaf, 0x04, 0x7e, + 0x6d, 0x14, 0xdf, 0x45, 0x7e, 0xf7, 0xd1, 0x74, 0xfb, 0x12, 0x8d, 0x19, 0xf7, 0xaf, 0xa7, 0xda, + 0x17, 0x78, 0x4c, 0xb8, 0x9b, 0x60, 0x28, 0x0d, 0x32, 0x93, 0x84, 0xe6, 0xdf, 0x08, 0xd0, 0xa2, + 0x00, 0x89, 0xa4, 0xd1, 0xd1, 0x87, 0x48, 0x65, 0x42, 0x35, 0xae, 0x7f, 0x5b, 0xcc, 0x63, 0x91, + 0x03, 0xe5, 0xc8, 0x4a, 0x77, 0xe7, 0x30, 0x2f, 0x50, 0x48, 0x5c, 0x92, 0xfe, 0x4e, 0xa0, 0x88, + 0x40, 0xed, 0x07, 0x02, 0x87, 0x8b, 0xd1, 0xfb, 0xf0, 0x8a, 0x06, 0x12, 0x76, 0x30, 0x97, 0x70, + 0x6a, 0x90, 0x9a, 0x3f, 0x2b, 0x5c, 0x0e, 0xa1, 0x68, 0x8c, 0xe7, 0x90, 0xc3, 0x2c, 0x15, 0xd9, + 0x7b, 0x3a, 0x5c, 0xa6, 0xa2, 0x20, 0x35, 0x7f, 0x2e, 0x34, 0xdc, 0x9a, 0xd0, 0x20, 0xb2, 0xd0, + 0x71, 0xaa, 0xa2, 0x85, 0x2b, 0x41, 0x77, 0xd7, 0x9b, 0xfe, 0xf7, 0x45, 0xb4, 0xb4, 0xbd, 0x21, + 0xf7, 0x76, 0xad, 0xf1, 0x3b, 0x22, 0x56, 0x73, 0xe0, 0x64, 0xf3, 0x7f, 0x21, 0xe0, 0x66, 0x01, + 0x1f, 0xeb, 0xc0, 0x87, 0x70, 0xff, 0x3a, 0x15, 0x45, 0x17, 0x7e, 0x29, 0xb4, 0xdc, 0x9e, 0xa2, + 0x25, 0xef, 0x84, 0x9c, 0xb4, 0xf3, 0x64, 0x90, 0x51, 0x5d, 0x4b, 0x90, 0x9a, 0xff, 0x50, 0x4c, + 0xda, 0x2e, 0x67, 0xe7, 0xe0, 0xe3, 0x54, 0x05, 0x9f, 0x0e, 0x93, 0xdd, 0x0f, 0x52, 0xf3, 0x57, + 0x45, 0xf0, 0x15, 0x40, 0xd1, 0xff, 0xe3, 0xb4, 0xf5, 0xb3, 0x52, 0x7e, 0xf4, 0xd5, 0x8e, 0xf9, + 0xe4, 0x55, 0x68, 0x06, 0x2c, 0x3c, 0xeb, 0x9e, 0x88, 0x8a, 0x41, 0x5e, 0x66, 0x69, 0x08, 0x2a, + 0x17, 0xed, 0xa0, 0xb3, 0xc4, 0x2c, 0xa6, 0x3e, 0x0b, 0xa9, 0xfd, 0xe9, 0x80, 0x0e, 0x68, 0x2e, + 0x2d, 0x8e, 0xd8, 0x2b, 0x8a, 0xfb, 0x6d, 0xce, 0x94, 0xa0, 0x77, 0xc1, 0xcc, 0x41, 0xe7, 0x09, + 0x75, 0x2e, 0x69, 0x92, 0xc3, 0xe4, 0x49, 0x57, 0xf1, 0x77, 0x05, 0x5b, 0x00, 0x5b, 0xdf, 0x87, + 0x4a, 0x37, 0x4a, 0x32, 0xf2, 0x3a, 0x2c, 0x9c, 0x63, 0xd9, 0x2b, 0x9d, 0x5e, 0xf7, 0x93, 0x4c, + 0xf2, 0x2a, 0x2c, 0xb2, 0x14, 0x6f, 0x7b, 0x1d, 0x9f, 0x03, 0xe5, 0xf3, 0xa2, 0x51, 0xe2, 0x4b, + 0x16, 0x6e, 0x7f, 0xbf, 0x0c, 0x86, 0x78, 0x7c, 0x78, 0x98, 0x38, 0x01, 0xdd, 0x8d, 0x06, 0xa1, + 0x47, 0x1e, 0x42, 0x45, 0xbb, 0x1d, 0xbc, 0xa1, 0x3f, 0x51, 0x44, 0x01, 0xed, 0xb6, 0x00, 0x05, + 0x49, 0x0b, 0x6a, 0x83, 0xf0, 0x9c, 0xb3, 0xa8, 0x37, 0x52, 0x3f, 0x2b, 0xc8, 0x64, 0x0d, 0xe6, + 0xc5, 0xb3, 0x29, 0x39, 0x18, 0xf2, 0x8b, 0x6c, 0x42, 0xcd, 0x75, 0x7c, 0xf7, 0x70, 0x10, 0xba, + 0xe9, 0x94, 0x6a, 0x5e, 0xc1, 0x24, 0xff, 0x0f, 0xea, 0x3d, 0xde, 0x48, 0x1b, 0x1f, 0x19, 0xc8, + 0x67, 0xb3, 0x23, 0x05, 0x77, 0x64, 0xe3, 0x7b, 0x04, 0xf2, 0x75, 0x58, 0x74, 0x83, 0x58, 0xd4, + 0x0e, 0xb4, 0xcb, 0x0f, 0xf9, 0xce, 0x15, 0x65, 0xf6, 0x82, 0x78, 0xdf, 0xc9, 0x1c, 0xbc, 0x95, + 0xab, 0xbb, 0xc5, 0x47, 0xeb, 0x47, 0x25, 0xa8, 0x6b, 0x83, 0xf2, 0xa2, 0xf1, 0x40, 0x81, 0x89, + 0xf1, 0xf8, 0x0a, 0xcc, 0xa5, 0x99, 0x23, 0x67, 0x26, 0x7f, 0x5c, 0x3b, 0x3e, 0xce, 0x96, 0x10, + 0x22, 0x9b, 0x30, 0x4b, 0x43, 0x35, 0x4f, 0xd7, 0xc9, 0x72, 0x91, 0xd6, 0x6f, 0x4a, 0x30, 0x2f, + 0x38, 0xe4, 0x0d, 0xa8, 0xf5, 0x06, 0xa1, 0x6b, 0xe3, 0x7d, 0xc7, 0x64, 0x89, 0xbd, 0xca, 0x99, + 0xfb, 0x34, 0x75, 0x27, 0xca, 0xac, 0xe5, 0xcf, 0x2b, 0xb3, 0xea, 0xf5, 0xe7, 0xd9, 0x17, 0xd5, + 0x9f, 0xdf, 0x80, 0x39, 0x1c, 0x70, 0xf9, 0x70, 0x70, 0x79, 0xa2, 0xe5, 0x96, 0xe0, 0x17, 0xae, + 0x38, 0xf7, 0x22, 0x57, 0xfc, 0x16, 0x34, 0xb0, 0x3a, 0xcf, 0xc2, 0x3e, 0xef, 0x02, 0x79, 0x08, + 0x8b, 0x7d, 0xf9, 0x2d, 0x4a, 0xbd, 0x93, 0xbd, 0x6c, 0xf4, 0x35, 0x40, 0xeb, 0x09, 0xd4, 0x95, + 0x82, 0x2e, 0xcd, 0xc8, 0x7b, 0xd0, 0x1c, 0xc1, 0xab, 0xa8, 0x92, 0xb7, 0xd6, 0xba, 0x2d, 0x6b, + 0x51, 0x57, 0x94, 0xb6, 0x7e, 0x50, 0x82, 0x79, 0xf1, 0x52, 0x95, 0xbc, 0xa3, 0xb5, 0x22, 0x7f, + 0xf3, 0x97, 0x77, 0x56, 0xb3, 0x57, 0x34, 0xa6, 0x4b, 0xb3, 0xf4, 0x25, 0x6b, 0xe0, 0x26, 0x2c, + 0x3c, 0xa3, 0x09, 0xbe, 0x78, 0x14, 0x51, 0xa1, 0x3e, 0x5b, 0x6f, 0x42, 0x8d, 0xb7, 0x45, 0xbc, + 0xf6, 0xfb, 0xdc, 0x2b, 0x9d, 0xd6, 0x1f, 0x94, 0x60, 0x41, 0xbe, 0xad, 0x25, 0x0f, 0x00, 0xe2, + 0x24, 0xfa, 0x64, 0xa4, 0xd3, 0x4b, 0x05, 0x44, 0xbc, 0x7b, 0xac, 0x71, 0x11, 0x71, 0xc5, 0xf3, + 0x18, 0xd6, 0xfa, 0x34, 0xa4, 0x89, 0xc3, 0x4f, 0x02, 0xb2, 0x76, 0x20, 0x9e, 0x49, 0x95, 0xf1, + 0x99, 0xd4, 0x6a, 0xce, 0x15, 0x15, 0x04, 0xf1, 0x5e, 0xea, 0xe5, 0xf2, 0xcb, 0xeb, 0xd0, 0x1c, + 0x7d, 0xc1, 0x4b, 0x56, 0x55, 0x9d, 0x5d, 0x54, 0x33, 0xc5, 0xc7, 0xd6, 0xef, 0xcd, 0x8a, 0xc7, + 0xfc, 0x78, 0xf5, 0xb8, 0x0c, 0x8b, 0xfc, 0x37, 0x7f, 0xc7, 0x62, 0xcc, 0x28, 0x52, 0x7e, 0xb1, + 0x68, 0x94, 0x14, 0x29, 0xbf, 0x8f, 0x33, 0xca, 0x64, 0x05, 0x96, 0x38, 0x49, 0xbb, 0x89, 0x32, + 0x66, 0x49, 0x03, 0xaa, 0xa8, 0x2d, 0x8a, 0x3b, 0x46, 0x85, 0x2c, 0x42, 0x8d, 0x7f, 0xe1, 0x25, + 0x86, 0x31, 0x97, 0x2b, 0xc1, 0x63, 0xfc, 0x4e, 0xbf, 0x6f, 0xcc, 0x2b, 0xf9, 0x8f, 0x22, 0x16, + 0x1a, 0x0b, 0xea, 0xeb, 0x29, 0xf3, 0x7d, 0xa3, 0x4a, 0xd6, 0x80, 0xf0, 0xaf, 0xd1, 0xa7, 0xbc, + 0x46, 0x8d, 0x98, 0xb0, 0xaa, 0xd3, 0xd5, 0x63, 0x4b, 0x03, 0x08, 0x81, 0x26, 0xe7, 0x14, 0xf7, + 0x73, 0x46, 0x9d, 0xac, 0xc3, 0x1a, 0xd2, 0x26, 0x1e, 0xec, 0x18, 0x0d, 0x65, 0x8f, 0xa7, 0x70, + 0x63, 0x91, 0x34, 0x01, 0xf8, 0x97, 0x88, 0x29, 0xa3, 0xa9, 0xbe, 0xc5, 0x4c, 0x1b, 0x4b, 0x64, + 0x09, 0xea, 0xc5, 0xf7, 0xb6, 0x61, 0xa8, 0x06, 0x8e, 0x8e, 0xb9, 0xb1, 0xac, 0x46, 0x46, 0x7b, + 0xd4, 0x6a, 0xac, 0x92, 0x57, 0xc0, 0x94, 0xe8, 0x89, 0xab, 0x0d, 0xe3, 0xc6, 0xd6, 0xd7, 0xa0, + 0xa1, 0x3f, 0xdd, 0xe4, 0xb6, 0x4e, 0x9d, 0x34, 0x3d, 0xbb, 0x48, 0xa2, 0x41, 0xff, 0xc2, 0x98, + 0xe1, 0x43, 0x99, 0xdb, 0x31, 0x4a, 0xa4, 0x0a, 0x95, 0x27, 0x4e, 0x7a, 0x61, 0x94, 0xb7, 0xbe, + 0x01, 0x4b, 0x63, 0x4f, 0x76, 0x39, 0xb3, 0x73, 0xd2, 0x39, 0x30, 0x66, 0xf8, 0xbf, 0xc3, 0x9d, + 0xee, 0x99, 0x51, 0x22, 0xab, 0x60, 0x3c, 0x69, 0x7f, 0xf8, 0xc4, 0xde, 0x3b, 0x39, 0x3e, 0xb5, + 0x0e, 0xba, 0xdd, 0xf6, 0x49, 0xc7, 0x28, 0x6f, 0x3d, 0x00, 0x28, 0x1e, 0xa3, 0x91, 0x1a, 0xcc, + 0x61, 0x25, 0x47, 0x00, 0xcf, 0xd8, 0xd3, 0x8f, 0x8d, 0x12, 0xa9, 0xc3, 0x82, 0x5c, 0xda, 0x8d, + 0xf2, 0xd6, 0x23, 0x58, 0x92, 0xc7, 0x37, 0xde, 0xb7, 0xa7, 0x2c, 0xe4, 0x4b, 0x0d, 0x69, 0x77, + 0x3e, 0xde, 0x39, 0x6a, 0xef, 0xdb, 0xed, 0xce, 0xfe, 0xc1, 0xf7, 0xec, 0xa7, 0xed, 0xce, 0xbe, + 0xd0, 0xf0, 0xa4, 0xd3, 0xfd, 0xae, 0x51, 0xda, 0x3a, 0x87, 0xd5, 0x69, 0xaf, 0x3a, 0xc9, 0x6d, + 0xb8, 0xa9, 0x90, 0xfb, 0xed, 0xee, 0xd9, 0x4e, 0x67, 0xef, 0xc0, 0x3e, 0x3e, 0x38, 0xb3, 0xda, + 0x7b, 0xc6, 0x0c, 0x99, 0x87, 0xf2, 0xd1, 0xdb, 0x46, 0x09, 0x7f, 0xb7, 0x8d, 0x32, 0x01, 0x98, + 0xdf, 0x3b, 0xe9, 0xb6, 0x3b, 0x07, 0xc6, 0x2c, 0xf7, 0xa3, 0x76, 0xa7, 0x73, 0x60, 0xd9, 0xa7, + 0xd6, 0xc9, 0xfe, 0x77, 0xf6, 0xce, 0x8c, 0xca, 0xd6, 0xdb, 0xc5, 0xfb, 0x54, 0xec, 0xca, 0x2a, + 0x18, 0xed, 0xf0, 0x99, 0xe3, 0x33, 0x2f, 0xa7, 0x19, 0x33, 0xbc, 0x2f, 0x27, 0x22, 0x9f, 0x1a, + 0xa5, 0xad, 0xef, 0x14, 0x8f, 0x27, 0x11, 0x72, 0x13, 0x56, 0xf4, 0x6f, 0x09, 0x37, 0x66, 0x78, + 0x0f, 0x75, 0x86, 0x28, 0xa3, 0x88, 0x21, 0xd5, 0xe9, 0x67, 0x51, 0xfc, 0xd4, 0x28, 0x6f, 0xfd, + 0xaa, 0x04, 0x55, 0xf5, 0xb8, 0xa7, 0x88, 0xa4, 0x90, 0x26, 0xe8, 0xe3, 0x33, 0xe4, 0x06, 0x2c, + 0x63, 0x4c, 0xd0, 0x5e, 0x76, 0x32, 0xc8, 0x24, 0xb9, 0xa4, 0x7c, 0xc9, 0x62, 0xfd, 0x0b, 0x8d, + 0x5e, 0x26, 0x06, 0x34, 0x44, 0xe0, 0x89, 0x27, 0x1a, 0xc6, 0x2c, 0x37, 0x8b, 0x71, 0x17, 0x66, + 0x2c, 0xa7, 0x56, 0xc8, 0x2d, 0xb8, 0x31, 0xa2, 0x36, 0x67, 0xcd, 0x91, 0x3b, 0x70, 0x4b, 0x01, + 0x26, 0xd9, 0xf3, 0x5b, 0x1b, 0xd0, 0xd0, 0x1f, 0x15, 0x29, 0x8b, 0xdc, 0xbd, 0x44, 0x93, 0xb7, + 0xbe, 0x0e, 0xcb, 0x13, 0x0f, 0x18, 0xf8, 0xc4, 0xb4, 0x3b, 0x62, 0x4c, 0x8f, 0xdb, 0x1d, 0xfb, + 0x78, 0xe7, 0x7b, 0x46, 0x89, 0x63, 0x77, 0x8f, 0x4e, 0x4e, 0x8e, 0xed, 0xc3, 0xf6, 0xd1, 0xd9, + 0x81, 0x65, 0x94, 0xb7, 0xb6, 0xc6, 0xb0, 0xe8, 0xa0, 0xdc, 0xd1, 0x4e, 0xf6, 0x76, 0x8e, 0x8c, + 0x19, 0x3e, 0xaf, 0x1f, 0x1e, 0x9d, 0xec, 0xee, 0x1c, 0x19, 0xa5, 0xad, 0x5d, 0x58, 0x9e, 0xb8, + 0xb6, 0xe5, 0x91, 0x70, 0x18, 0x25, 0x2e, 0x15, 0x24, 0xe1, 0x58, 0x3b, 0x83, 0x2c, 0x32, 0x4a, + 0x3c, 0xdc, 0x91, 0x25, 0x12, 0x0a, 0x0b, 0xfb, 0x46, 0x79, 0xeb, 0x5b, 0xb0, 0x34, 0xb6, 0x79, + 0xe2, 0xa1, 0x73, 0x18, 0xf9, 0x7e, 0xf4, 0x9c, 0x4b, 0x60, 0x24, 0x9d, 0x26, 0xd4, 0xa5, 0x1e, + 0xff, 0x2c, 0xf1, 0x28, 0xdf, 0xc3, 0x8b, 0xb5, 0xcc, 0x8a, 0x9e, 0x1b, 0xe5, 0xad, 0x13, 0x30, + 0xc6, 0x37, 0x2c, 0x64, 0x01, 0x66, 0xdb, 0x61, 0x66, 0xcc, 0xf0, 0x86, 0x1f, 0xfa, 0x91, 0x93, + 0x89, 0xb8, 0xd8, 0xa7, 0x2e, 0x0b, 0x1c, 0xdf, 0x28, 0xf3, 0x44, 0xb2, 0xef, 0x64, 0xf4, 0x8c, + 0x05, 0x54, 0x24, 0xc1, 0xfd, 0x81, 0xb8, 0xef, 0x33, 0x2a, 0x3c, 0x66, 0xc6, 0xb6, 0x2f, 0xbc, + 0x0b, 0xfc, 0xd4, 0x20, 0xba, 0x8f, 0xd6, 0x52, 0xa3, 0x84, 0x43, 0xc1, 0x57, 0xb5, 0xd4, 0x28, + 0xef, 0x7e, 0xf9, 0xd7, 0x9f, 0xdd, 0x2d, 0xfd, 0xf3, 0x67, 0x77, 0x4b, 0xff, 0xf6, 0xd9, 0xdd, + 0xd2, 0x8f, 0xff, 0xfd, 0xee, 0x0c, 0xdc, 0x70, 0xa3, 0xe0, 0x01, 0x5f, 0xf1, 0x5c, 0x27, 0x7e, + 0x90, 0x31, 0xef, 0x1c, 0xd7, 0x80, 0xd3, 0xd2, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0d, + 0xe0, 0xbb, 0xe7, 0x35, 0x00, 0x00, } diff --git a/go-tipb/expression.pb.go b/go-tipb/expression.pb.go index 4ab0a256..ec4ae9fb 100644 --- a/go-tipb/expression.pb.go +++ b/go-tipb/expression.pb.go @@ -626,6 +626,8 @@ const ( ScalarFuncSig_IfNullVectorFloat32 ScalarFuncSig = 5160 ScalarFuncSig_IfVectorFloat32 ScalarFuncSig = 5161 ScalarFuncSig_CaseWhenVectorFloat32 ScalarFuncSig = 5162 + // fts + ScalarFuncSig_FTSMatchWord ScalarFuncSig = 5201 // time ScalarFuncSig_DateFormatSig ScalarFuncSig = 6001 ScalarFuncSig_DateLiteral ScalarFuncSig = 6002 @@ -1262,6 +1264,7 @@ var ScalarFuncSig_name = map[int32]string{ 5160: "IfNullVectorFloat32", 5161: "IfVectorFloat32", 5162: "CaseWhenVectorFloat32", + 5201: "FTSMatchWord", 6001: "DateFormatSig", 6002: "DateLiteral", 6003: "DateDiff", @@ -1895,6 +1898,7 @@ var ScalarFuncSig_value = map[string]int32{ "IfNullVectorFloat32": 5160, "IfVectorFloat32": 5161, "CaseWhenVectorFloat32": 5162, + "FTSMatchWord": 5201, "DateFormatSig": 6001, "DateLiteral": 6002, "DateDiff": 6003, @@ -3575,370 +3579,371 @@ var ( func init() { proto.RegisterFile("expression.proto", fileDescriptorExpression) } var fileDescriptorExpression = []byte{ - // 5838 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x7b, 0x67, 0x78, 0x1b, 0xc7, - 0xb9, 0xae, 0xa1, 0x62, 0x49, 0xab, 0x36, 0x5e, 0x4b, 0x26, 0xac, 0x38, 0x22, 0x69, 0xe6, 0x5e, - 0x32, 0xce, 0xbd, 0x84, 0x4c, 0x3b, 0x60, 0x7e, 0x9c, 0x06, 0xb1, 0x19, 0x39, 0x24, 0x45, 0x11, - 0x20, 0x9d, 0xf3, 0xcb, 0xcf, 0x12, 0x18, 0x82, 0x1b, 0x03, 0xbb, 0xf0, 0xee, 0x40, 0x22, 0x73, - 0xca, 0xe3, 0xde, 0x7b, 0x5c, 0xe4, 0xae, 0xea, 0x9a, 0xde, 0xdd, 0x6b, 0x62, 0xc9, 0x25, 0x71, - 0xe2, 0xde, 0x6d, 0xd9, 0x8e, 0x7b, 0x62, 0xc7, 0xbd, 0xe6, 0x3c, 0xdf, 0x3b, 0x05, 0xbb, 0x20, - 0xf3, 0x8b, 0x3b, 0xef, 0xd7, 0xde, 0xf9, 0xe6, 0x9b, 0xd9, 0x99, 0x59, 0xd0, 0x62, 0x7c, 0xba, - 0x1a, 0xf0, 0x30, 0x74, 0x7d, 0xaf, 0xb3, 0x1a, 0xf8, 0xc2, 0xb7, 0x17, 0x08, 0xb7, 0x3a, 0xb1, - 0x66, 0x45, 0x85, 0x0b, 0xa7, 0xe8, 0x08, 0x47, 0xa2, 0x6b, 0x56, 0x95, 0xfc, 0x92, 0x8f, 0xc7, - 0x14, 0x3d, 0x49, 0xf4, 0xe0, 0xb7, 0x13, 0xd6, 0x92, 0x7e, 0x97, 0x97, 0x8b, 0xf9, 0x99, 0x2a, - 0xb7, 0x57, 0x59, 0xf3, 0x44, 0x35, 0x99, 0x68, 0x49, 0x74, 0x2c, 0x5c, 0xbf, 0x60, 0xf7, 0x73, - 0xcd, 0xfb, 0x8c, 0xce, 0x13, 0x55, 0x3b, 0x69, 0x2d, 0x98, 0x2c, 0x3b, 0xa5, 0xe4, 0xbc, 0x96, - 0x44, 0xc7, 0x72, 0x85, 0x03, 0x91, 0x12, 0xee, 0x25, 0xe7, 0x47, 0x2c, 0x80, 0xd8, 0x6b, 0xad, - 0x45, 0x45, 0x5e, 0x70, 0x2b, 0x4e, 0x39, 0xb9, 0x20, 0x22, 0xd4, 0x20, 0xc9, 0x0b, 0x7e, 0xb9, - 0xec, 0x08, 0x9e, 0x5c, 0x18, 0x95, 0x2b, 0x10, 0xf2, 0x29, 0x27, 0x08, 0xb9, 0x48, 0xee, 0xdb, - 0x92, 0xe8, 0x58, 0x62, 0xe4, 0x12, 0xb4, 0xd7, 0x58, 0x0b, 0x79, 0x99, 0x57, 0xc2, 0xe4, 0xa2, - 0x96, 0xf9, 0x46, 0x2a, 0x21, 0x92, 0x39, 0x41, 0xe0, 0xcc, 0x24, 0x17, 0xb7, 0x24, 0x3a, 0x16, - 0x6b, 0x19, 0xa0, 0x83, 0xdf, 0x99, 0x67, 0x2d, 0xe8, 0x9b, 0xae, 0x06, 0xf6, 0xd7, 0x4c, 0x57, - 0x57, 0x74, 0xad, 0xe8, 0xa4, 0x8c, 0x75, 0x12, 0x4e, 0x69, 0x88, 0x74, 0x9d, 0x59, 0xf3, 0x37, - 0x39, 0x65, 0xf4, 0x7c, 0xd9, 0x28, 0x3d, 0xda, 0xff, 0xd7, 0x5a, 0x5c, 0x98, 0x72, 0xcb, 0xc5, - 0x00, 0xdd, 0x9e, 0xdf, 0xb1, 0xb4, 0xcb, 0xaa, 0x5b, 0x8f, 0x1a, 0x99, 0xfd, 0x0d, 0x6b, 0x7e, - 0xe8, 0x96, 0xd0, 0xf9, 0x15, 0x5d, 0xfb, 0x4b, 0x95, 0x5c, 0xc1, 0x29, 0x3b, 0x41, 0x7f, 0xcd, - 0x2b, 0xe4, 0xdc, 0x92, 0x8a, 0x42, 0x5a, 0x76, 0xa7, 0x65, 0x4d, 0xd2, 0x20, 0x1c, 0x25, 0x66, - 0xaa, 0x32, 0x21, 0x4b, 0xbb, 0x56, 0x4a, 0x1b, 0x33, 0x38, 0xa3, 0x4b, 0x26, 0xcd, 0x38, 0xb5, - 0x58, 0xcb, 0x82, 0xaa, 0x77, 0x94, 0x13, 0x94, 0xc2, 0xa3, 0x28, 0xff, 0x94, 0xa2, 0xe5, 0xa3, - 0x56, 0x50, 0xf5, 0x32, 0x41, 0x29, 0x1c, 0xe4, 0x9e, 0xdd, 0x6e, 0x2d, 0x9b, 0x72, 0xc2, 0xa3, - 0x8a, 0x6e, 0x28, 0x5c, 0xaf, 0x20, 0x92, 0x8b, 0x22, 0xa9, 0x58, 0x3a, 0xe5, 0x84, 0xbd, 0x4a, - 0x60, 0xb7, 0x5b, 0x8b, 0xfd, 0xa0, 0xc8, 0x83, 0xa3, 0x26, 0x28, 0x5f, 0xd4, 0x9f, 0x65, 0x32, - 0xf0, 0xfa, 0x99, 0xac, 0xe0, 0x95, 0xd1, 0x45, 0x90, 0xae, 0x9f, 0xb1, 0xbb, 0xad, 0xa5, 0x4e, - 0xa9, 0x44, 0xe4, 0x87, 0xfc, 0x22, 0x4f, 0x2e, 0x41, 0xc7, 0x56, 0x4b, 0xdd, 0x8c, 0x14, 0x08, - 0xd7, 0xf7, 0x48, 0x38, 0x1a, 0xd5, 0x3c, 0xf8, 0x1b, 0xd6, 0xa2, 0xd1, 0xaa, 0x87, 0xa4, 0xb7, - 0x58, 0x0b, 0xa9, 0x5a, 0xc3, 0x64, 0x62, 0x56, 0xe6, 0xa4, 0xe0, 0xe0, 0xb2, 0xb5, 0xaf, 0x0c, - 0x6c, 0xaf, 0xb5, 0x16, 0x10, 0x84, 0x21, 0x8a, 0xab, 0x02, 0xa7, 0xda, 0x2b, 0xf2, 0xb0, 0x80, - 0xb1, 0xd1, 0x3d, 0x03, 0x62, 0x77, 0x58, 0x8b, 0x29, 0x3b, 0xb0, 0x9e, 0x0f, 0xeb, 0xe5, 0xd2, - 0x5a, 0xd1, 0x18, 0x5d, 0x14, 0xc8, 0x87, 0x43, 0x5e, 0x5e, 0x68, 0x2d, 0xd6, 0xa3, 0x6e, 0x2f, - 0xb6, 0x16, 0x0c, 0xd7, 0xca, 0x65, 0xb6, 0x8f, 0xbd, 0xc4, 0x5a, 0x98, 0xf5, 0x44, 0xfa, 0x70, - 0x96, 0xb0, 0x2d, 0x6b, 0xdf, 0x31, 0x17, 0xcf, 0xf3, 0xec, 0xa5, 0xd6, 0xa2, 0xfe, 0xb2, 0xef, - 0x88, 0xc3, 0xba, 0xd8, 0x7c, 0xd3, 0x48, 0x1f, 0xce, 0x16, 0x90, 0x56, 0x4e, 0x04, 0xae, 0x57, - 0x62, 0x0b, 0xc9, 0x78, 0xfd, 0x8c, 0xe0, 0x21, 0xdb, 0xd7, 0x5e, 0x66, 0x2d, 0x1e, 0x9a, 0x09, - 0x8f, 0x29, 0xaf, 0x77, 0x05, 0xe3, 0x36, 0xb3, 0x96, 0xa1, 0xd5, 0x2b, 0xa7, 0x00, 0x9b, 0xb4, - 0xf7, 0xb3, 0x96, 0x4b, 0xa4, 0x16, 0x38, 0x94, 0x3b, 0x56, 0xb2, 0x97, 0x5b, 0x4b, 0x00, 0xf5, - 0x79, 0xb5, 0x0a, 0x9b, 0x32, 0x1e, 0x8e, 0xe0, 0xd3, 0xcc, 0x35, 0xad, 0x1c, 0x17, 0xec, 0xbb, - 0x46, 0x35, 0xef, 0x56, 0x38, 0x3b, 0xda, 0x34, 0xbf, 0x1d, 0xfa, 0x1e, 0x2b, 0xdb, 0xab, 0xad, - 0xfd, 0xf2, 0x6e, 0xef, 0xfa, 0x71, 0x5e, 0x10, 0x7e, 0xa0, 0x69, 0xcf, 0xd8, 0x2b, 0xac, 0x25, - 0xe3, 0x4e, 0xb9, 0xc6, 0x07, 0xdd, 0x50, 0xb0, 0x8b, 0x13, 0xd4, 0xee, 0xf1, 0xcb, 0xb5, 0x8a, - 0x37, 0xca, 0x27, 0xd9, 0x1e, 0xea, 0xef, 0xc2, 0x1e, 0xbf, 0xe6, 0x09, 0x76, 0x63, 0x93, 0xbd, - 0xd8, 0x9a, 0x9f, 0xab, 0x55, 0xd8, 0x4d, 0x78, 0xca, 0x6c, 0x2a, 0xb1, 0x9b, 0xf1, 0x34, 0xe4, - 0x7a, 0xec, 0x16, 0xf9, 0xe4, 0x4c, 0xb3, 0x5b, 0x9b, 0xc8, 0xa6, 0xdf, 0x0d, 0x42, 0xc1, 0x6e, - 0x6b, 0xb2, 0x99, 0xb5, 0x74, 0x20, 0xf0, 0x6b, 0xd5, 0x1e, 0xdf, 0x2b, 0x38, 0x82, 0xdd, 0xde, - 0x64, 0xaf, 0xb4, 0xac, 0x4c, 0xa9, 0x74, 0xd4, 0x7a, 0x57, 0x64, 0xbc, 0x22, 0xbb, 0xa3, 0x89, - 0x42, 0x2a, 0x60, 0x43, 0xc0, 0xee, 0x8c, 0x2a, 0x7c, 0xc7, 0x0f, 0xd8, 0x5d, 0x32, 0xae, 0x28, - 0xb2, 0xbb, 0x9b, 0xec, 0xa5, 0x94, 0xd7, 0x62, 0x91, 0x6f, 0x62, 0xf7, 0xc0, 0x4e, 0x36, 0x46, - 0xfc, 0x2a, 0xfb, 0x2d, 0xec, 0x64, 0x3b, 0xe7, 0x54, 0xaa, 0xec, 0x77, 0xd0, 0x1e, 0x77, 0x02, - 0x92, 0xde, 0xdb, 0x64, 0x2f, 0xb3, 0x16, 0x8d, 0x3b, 0x01, 0x44, 0xbb, 0x9b, 0xec, 0xe5, 0xd6, - 0xe2, 0x71, 0x27, 0x70, 0x1d, 0xaf, 0xc0, 0xd9, 0x9e, 0x26, 0x7b, 0x3f, 0x6b, 0x19, 0xa5, 0x29, - 0x43, 0x4b, 0x42, 0xa6, 0x54, 0x62, 0xf7, 0x35, 0xd9, 0xb6, 0xb5, 0x9c, 0xa0, 0x0d, 0x13, 0xdf, - 0xe5, 0x05, 0x41, 0xd8, 0xfd, 0x4d, 0x76, 0xd2, 0xda, 0x3f, 0x53, 0xad, 0x06, 0xfe, 0x34, 0x52, - 0xa2, 0xa7, 0x0c, 0x7b, 0x00, 0x5c, 0x46, 0xfd, 0xcd, 0xc3, 0xb5, 0xca, 0x04, 0x0f, 0xd8, 0xb6, - 0x66, 0x7b, 0x89, 0xb5, 0x60, 0xd4, 0xf1, 0x8e, 0x66, 0xdb, 0x9b, 0x49, 0xd4, 0xcb, 0xbd, 0x90, - 0xa3, 0xbd, 0xa3, 0x99, 0x42, 0xf7, 0xd4, 0x2a, 0x9c, 0xac, 0xd9, 0xce, 0x66, 0x4a, 0xd0, 0x08, - 0x0f, 0x0a, 0xdc, 0x13, 0x50, 0xd8, 0xd5, 0x4c, 0xe9, 0x1b, 0x16, 0x6e, 0x99, 0xb3, 0xab, 0xe1, - 0x67, 0x90, 0x3b, 0x45, 0x76, 0x4d, 0x33, 0x65, 0x61, 0xd0, 0x29, 0xb1, 0x6b, 0x9b, 0xa9, 0xa3, - 0xc8, 0x2f, 0x06, 0x8e, 0x5d, 0x87, 0x10, 0x83, 0x8e, 0x6e, 0x5f, 0x8f, 0x10, 0xc3, 0x62, 0x4a, - 0x36, 0x6f, 0x80, 0x7e, 0x7d, 0xa5, 0x61, 0xe7, 0x0e, 0x1f, 0x72, 0xc1, 0x84, 0xb5, 0x3c, 0xb6, - 0xf6, 0xd8, 0x2b, 0xad, 0xa5, 0x63, 0x5e, 0x58, 0xe5, 0x05, 0x77, 0xd2, 0xe5, 0x45, 0xb6, 0x0f, - 0x15, 0x67, 0x8f, 0x13, 0x8a, 0xac, 0x27, 0x32, 0x61, 0xd6, 0x13, 0x2c, 0x41, 0xc5, 0x69, 0x90, - 0x51, 0xee, 0x94, 0xd9, 0x3c, 0x7b, 0x7f, 0x6b, 0xa5, 0x81, 0x54, 0xbd, 0xcf, 0xb7, 0x57, 0x59, - 0xcc, 0x80, 0xba, 0xb4, 0x17, 0xc4, 0xac, 0x51, 0xa0, 0x0b, 0xa9, 0x22, 0xeb, 0x8a, 0xba, 0xe2, - 0xf7, 0x8d, 0x69, 0xa2, 0x76, 0x17, 0x69, 0x88, 0xa2, 0x4a, 0x36, 0x96, 0x6d, 0x5b, 0x2b, 0xea, - 0x10, 0xe8, 0x2c, 0xd5, 0x91, 0x25, 0xa6, 0xf8, 0x2c, 0xd3, 0x61, 0x24, 0xaa, 0x09, 0x2d, 0x8f, - 0x3b, 0x00, 0xa3, 0x15, 0xf6, 0x01, 0x96, 0x1d, 0x51, 0xd5, 0x94, 0x56, 0xc6, 0x75, 0xc1, 0x89, - 0xe9, 0x60, 0xca, 0xa1, 0xa4, 0xb5, 0x4a, 0x07, 0x33, 0x28, 0x98, 0xad, 0xb6, 0x9b, 0xac, 0xfd, - 0x63, 0xb0, 0x22, 0x77, 0x80, 0x9d, 0xb4, 0x56, 0xc5, 0x04, 0x9a, 0x5f, 0xd3, 0x2c, 0x4f, 0xa0, - 0x98, 0xb4, 0x0f, 0xb4, 0x56, 0xc7, 0x0d, 0x34, 0xcb, 0x03, 0x67, 0x59, 0x80, 0xe8, 0x1a, 0x3d, - 0x48, 0x32, 0xa4, 0xe4, 0xb9, 0x56, 0xb3, 0xd7, 0x20, 0x68, 0x36, 0xeb, 0xfe, 0x6b, 0x54, 0xb1, - 0x6c, 0xd1, 0xf4, 0x35, 0xae, 0x49, 0xb6, 0x36, 0xba, 0x01, 0xc7, 0x83, 0x75, 0xa7, 0x8c, 0xba, - 0xa6, 0xd8, 0xd6, 0xa8, 0x0f, 0x86, 0x5f, 0xd3, 0xc3, 0x4b, 0xd6, 0x92, 0x5f, 0x87, 0xce, 0xb8, - 0x84, 0xc0, 0xee, 0xeb, 0xda, 0x58, 0x62, 0x8a, 0xdb, 0x21, 0xba, 0xd7, 0x12, 0xd5, 0xcc, 0xbe, - 0x11, 0x77, 0x00, 0x5e, 0xff, 0x4f, 0x77, 0x4f, 0xa9, 0x6a, 0x56, 0xff, 0x3f, 0xae, 0x0b, 0x4e, - 0x9d, 0x26, 0x99, 0x4a, 0x4b, 0xf2, 0xea, 0xd2, 0x2e, 0xea, 0x30, 0xb8, 0x1d, 0x66, 0xc6, 0xd1, - 0xe0, 0x8a, 0xdf, 0xe1, 0x66, 0xc0, 0x8c, 0x44, 0x73, 0xfc, 0xe6, 0x6c, 0x67, 0xe0, 0x99, 0xb6, - 0xd7, 0x58, 0x07, 0x34, 0x98, 0x68, 0xae, 0xdd, 0xb3, 0x6d, 0xc0, 0xf7, 0x5b, 0x3a, 0x87, 0x58, - 0xc5, 0xc0, 0xf5, 0x9f, 0x74, 0xb7, 0x24, 0x04, 0x9e, 0xff, 0xac, 0x73, 0x28, 0x31, 0xc5, 0xf1, - 0x5f, 0x74, 0x67, 0x25, 0xaa, 0xf9, 0xfd, 0x6b, 0xdc, 0x01, 0xb8, 0xfd, 0x9b, 0x8e, 0xaf, 0x54, - 0x35, 0xaf, 0x4c, 0x5c, 0x17, 0x9c, 0xd6, 0xd3, 0xd2, 0xd6, 0xe3, 0x3b, 0x65, 0x1e, 0x16, 0x38, - 0x31, 0x7a, 0xbd, 0x85, 0xd6, 0x59, 0x8d, 0x80, 0xd0, 0x1b, 0x2d, 0xf6, 0x2a, 0x6b, 0xa5, 0x86, - 0x74, 0xe4, 0x37, 0x5b, 0xec, 0xfd, 0xad, 0x15, 0x1a, 0x55, 0x2c, 0xdf, 0x8a, 0x59, 0x83, 0xcd, - 0xdb, 0x2d, 0xf6, 0x6a, 0x8b, 0x19, 0x6b, 0x4d, 0xe6, 0x2f, 0x31, 0x4d, 0x70, 0xf9, 0x6b, 0x0b, - 0xbd, 0x86, 0x07, 0xf3, 0x44, 0xa3, 0x48, 0x6f, 0xe7, 0xc1, 0x3c, 0xe2, 0x73, 0x7a, 0x4b, 0x0e, - 0xe6, 0xeb, 0x6f, 0xe0, 0x65, 0xd6, 0xe2, 0xc1, 0xbc, 0x8a, 0x58, 0x92, 0x8a, 0x08, 0x35, 0x65, - 0xaf, 0xb0, 0xac, 0xc1, 0xbc, 0x89, 0xe1, 0x4a, 0x19, 0x9c, 0x7f, 0x17, 0xbe, 0xfb, 0xc8, 0xb7, - 0x07, 0xb8, 0x0f, 0xbe, 0x7d, 0xf8, 0xee, 0xd3, 0xbe, 0xab, 0xf0, 0xdd, 0xa7, 0x7c, 0x1f, 0x23, - 0x15, 0xe1, 0x3b, 0x80, 0xef, 0x3e, 0xe3, 0x3b, 0x94, 0x32, 0xf8, 0x16, 0xe4, 0x7b, 0x00, 0xbc, - 0xa7, 0x09, 0x1e, 0x90, 0xbc, 0x67, 0xc8, 0xf7, 0x80, 0xe1, 0xfd, 0x3d, 0xf2, 0x3d, 0xa0, 0x79, - 0xff, 0xa7, 0x54, 0x84, 0xef, 0xff, 0x22, 0xdf, 0x03, 0x75, 0xde, 0xff, 0x2d, 0x65, 0xf0, 0xfd, - 0x3f, 0xf2, 0xe5, 0xcc, 0x1d, 0xc1, 0xb1, 0xdc, 0xb2, 0x8f, 0x90, 0x38, 0x8d, 0x20, 0xd0, 0xc7, - 0x18, 0x20, 0x0d, 0xe9, 0x78, 0x9f, 0x60, 0x80, 0x34, 0xaa, 0xc2, 0x7e, 0x1a, 0xb3, 0x46, 0xf4, - 0xcf, 0x5a, 0xe8, 0x55, 0x34, 0xc8, 0xe5, 0x72, 0xce, 0x3e, 0x6f, 0xc1, 0x9b, 0x8a, 0xab, 0xa5, - 0x94, 0x7d, 0x01, 0x0b, 0xb4, 0xb5, 0xe7, 0x2f, 0x5b, 0x88, 0x14, 0x20, 0xe5, 0xf6, 0xef, 0x75, - 0x23, 0xf8, 0x3c, 0xb6, 0x95, 0x34, 0xb2, 0x9e, 0xe0, 0xc1, 0x26, 0xa7, 0x4c, 0x6e, 0x8f, 0x6b, - 0x25, 0x37, 0x1a, 0x81, 0xe7, 0xe3, 0x5b, 0xe9, 0x2d, 0x3a, 0x80, 0x31, 0x39, 0x3e, 0x41, 0x1b, - 0x81, 0x01, 0x39, 0x28, 0x27, 0x60, 0x87, 0x33, 0x60, 0x46, 0xe5, 0xc4, 0x04, 0x31, 0x1c, 0xd0, - 0xc3, 0x72, 0x92, 0xd2, 0x45, 0xa4, 0x93, 0x13, 0xf4, 0xe6, 0x1c, 0xa8, 0x0f, 0xcc, 0x29, 0x4a, - 0x8a, 0xec, 0x9d, 0x8a, 0xbd, 0x51, 0xdf, 0x46, 0x0a, 0x71, 0x26, 0x04, 0x7d, 0x1b, 0x11, 0xe2, - 0x2c, 0x84, 0xe8, 0xdb, 0xa8, 0x43, 0x9c, 0x8d, 0x10, 0x7d, 0x1b, 0x55, 0x88, 0x73, 0x94, 0x2e, - 0x42, 0x9c, 0x8b, 0x10, 0x7d, 0x1b, 0x4d, 0x88, 0xf3, 0x94, 0x14, 0x21, 0xce, 0x47, 0x88, 0x61, - 0xf4, 0xe2, 0x22, 0x08, 0x86, 0x65, 0x2f, 0xe4, 0x3e, 0x6d, 0xd8, 0xf4, 0x62, 0x0b, 0x42, 0x0c, - 0xeb, 0x5e, 0x5c, 0xa2, 0x74, 0x11, 0xe2, 0x52, 0x84, 0x18, 0xae, 0xf7, 0xe2, 0x32, 0x25, 0x45, - 0x88, 0xcb, 0xa5, 0xa7, 0x5a, 0xb9, 0x2c, 0x7b, 0xb2, 0x55, 0x6a, 0xa3, 0x8d, 0x50, 0xdb, 0x12, - 0xb4, 0x13, 0x92, 0x80, 0x0e, 0xb7, 0x9d, 0x36, 0x03, 0xcb, 0x24, 0xa6, 0x42, 0xee, 0x88, 0xd8, - 0x21, 0xec, 0xce, 0x04, 0x95, 0x88, 0xb2, 0xd3, 0xa1, 0x77, 0x45, 0xb4, 0x10, 0xfe, 0x6a, 0x10, - 0x1f, 0x29, 0xd7, 0xe4, 0xfa, 0xb4, 0x3b, 0x81, 0xed, 0x50, 0xb9, 0x66, 0x16, 0xa1, 0x3d, 0x09, - 0xda, 0xb8, 0x11, 0x42, 0xec, 0xee, 0x07, 0xdb, 0x21, 0xd7, 0x53, 0xfa, 0x0f, 0x80, 0x08, 0xda, - 0xda, 0xe0, 0x41, 0x78, 0x04, 0x44, 0x16, 0x7f, 0x90, 0x1a, 0xb5, 0xb2, 0x70, 0xab, 0xe5, 0x19, - 0x18, 0x3d, 0x94, 0xa0, 0x92, 0xd6, 0x90, 0xb6, 0xfb, 0x23, 0x42, 0x6b, 0x94, 0x4c, 0xff, 0x04, - 0xb2, 0xbd, 0xee, 0x26, 0xb7, 0x28, 0x17, 0xab, 0x87, 0x91, 0x0a, 0x09, 0x68, 0xb3, 0x47, 0x12, - 0xaa, 0xf6, 0x24, 0x4c, 0x76, 0x8f, 0x26, 0x68, 0x55, 0x32, 0x90, 0xd6, 0x7c, 0x0c, 0x3d, 0x19, - 0xf2, 0x8b, 0xf0, 0xf5, 0x38, 0x9c, 0x0f, 0xf9, 0x45, 0x2d, 0x7e, 0x02, 0xa3, 0x32, 0xe4, 0x17, - 0xc9, 0xc5, 0x93, 0x09, 0xda, 0x6a, 0x46, 0xc8, 0x8c, 0x79, 0xa1, 0x5b, 0xf2, 0x78, 0x91, 0x3d, - 0x95, 0xb0, 0x0f, 0xb2, 0x9a, 0x54, 0x3e, 0x34, 0x6a, 0xa4, 0x4f, 0x27, 0xec, 0x35, 0xd6, 0xea, - 0x06, 0x69, 0x4e, 0xca, 0x9e, 0x89, 0xca, 0x72, 0x71, 0xbb, 0x67, 0x11, 0x2f, 0x26, 0x53, 0x56, - 0xcf, 0x25, 0xec, 0xaf, 0x58, 0x07, 0x48, 0x5a, 0xb3, 0xc2, 0x3d, 0x9f, 0xb0, 0x0f, 0xb4, 0x56, - 0xc5, 0x85, 0xca, 0xee, 0x85, 0x88, 0xa8, 0x21, 0xd8, 0x8b, 0x09, 0xbb, 0xc9, 0xb2, 0xa3, 0x22, - 0x65, 0xb3, 0x37, 0x61, 0x7f, 0xd5, 0x4a, 0xea, 0xa1, 0x9b, 0x15, 0xed, 0x25, 0x49, 0xa5, 0x41, - 0xac, 0x6c, 0x5f, 0x8e, 0x09, 0x1b, 0x22, 0xbe, 0x22, 0xc9, 0xc4, 0x84, 0xca, 0xee, 0xcf, 0x09, - 0xbb, 0xcd, 0x5a, 0xab, 0x45, 0xfd, 0x7e, 0x50, 0xa8, 0xdb, 0x19, 0xfb, 0x57, 0x13, 0x76, 0xab, - 0x75, 0xd0, 0xdc, 0x4a, 0xca, 0xcf, 0x6b, 0x73, 0xa8, 0x34, 0xb0, 0x78, 0x1d, 0x2a, 0xd1, 0x52, - 0x99, 0x15, 0xe8, 0x8d, 0x84, 0xdd, 0x6c, 0xad, 0x99, 0x4b, 0x45, 0x85, 0x79, 0x13, 0x29, 0x8a, - 0x2a, 0xc4, 0x7a, 0xf3, 0xd6, 0x2c, 0xfb, 0x06, 0x0e, 0x6f, 0xa3, 0xca, 0x32, 0x13, 0x98, 0x1b, - 0xbf, 0x64, 0x54, 0x91, 0x99, 0x89, 0x70, 0x8c, 0x5a, 0xbf, 0xd2, 0x2d, 0xd4, 0xe7, 0xaf, 0x19, - 0x8e, 0x61, 0x13, 0x66, 0x5e, 0xfd, 0x86, 0xe1, 0xa5, 0xca, 0x5d, 0x5a, 0x72, 0xf3, 0x7e, 0x2f, - 0x2f, 0xb0, 0x1b, 0xe3, 0x10, 0x39, 0xb9, 0xc9, 0x40, 0xbd, 0xbc, 0x20, 0xa1, 0x9b, 0xe3, 0x10, - 0x19, 0xde, 0xc2, 0x70, 0x08, 0xe2, 0xae, 0x5c, 0xac, 0x6f, 0x65, 0x34, 0xaf, 0xfa, 0xcb, 0xbe, - 0x1f, 0x18, 0xdf, 0xb7, 0x35, 0x60, 0xe4, 0xe9, 0xf6, 0x3a, 0x66, 0xbc, 0xdf, 0xd1, 0x80, 0x91, - 0xed, 0x9d, 0x8c, 0x56, 0x09, 0x60, 0xf0, 0x7f, 0x17, 0x93, 0xc7, 0xb3, 0x9a, 0x27, 0xe7, 0xde, - 0x1e, 0x84, 0x47, 0x9b, 0x5c, 0xdc, 0x57, 0x6f, 0x92, 0xf5, 0xfd, 0xcc, 0x3e, 0xc0, 0xda, 0x0f, - 0xcd, 0x23, 0x5d, 0x31, 0xd5, 0x1f, 0x38, 0x05, 0xb9, 0xd6, 0x30, 0x9a, 0xd6, 0x31, 0x9c, 0xac, - 0x1f, 0x9c, 0x0d, 0x93, 0x97, 0xdf, 0x23, 0x9b, 0x83, 0x7e, 0xe9, 0xd0, 0x4c, 0x50, 0x62, 0x0f, - 0x23, 0xc4, 0xa0, 0x5f, 0xea, 0xca, 0x04, 0xa5, 0x90, 0x3d, 0xc2, 0x70, 0xae, 0xf3, 0x4b, 0x5d, - 0xec, 0x51, 0x46, 0x4b, 0x3c, 0xe9, 0xad, 0x63, 0x8f, 0x31, 0x75, 0x6c, 0x2c, 0xb2, 0xc7, 0x19, - 0x55, 0x2c, 0x3d, 0x92, 0xd3, 0x1c, 0xe7, 0x45, 0x1c, 0xf8, 0x06, 0xb8, 0xc7, 0x9e, 0x60, 0x74, - 0x12, 0x1c, 0xf1, 0x37, 0xb3, 0x27, 0xa1, 0xdf, 0xe3, 0x7b, 0x9b, 0xd8, 0x53, 0x70, 0xd3, 0x33, - 0xda, 0x73, 0x58, 0x17, 0x7b, 0x1a, 0x30, 0x0d, 0x3c, 0x7b, 0x46, 0x3e, 0x1e, 0x13, 0x08, 0xf6, - 0x2c, 0x1e, 0x33, 0x05, 0x3f, 0x64, 0xcf, 0xc9, 0xc7, 0xd0, 0xf5, 0xd8, 0xf3, 0x20, 0x96, 0x11, - 0x8e, 0x07, 0x9e, 0x2f, 0x20, 0x53, 0xd4, 0x94, 0x44, 0x5f, 0x44, 0xac, 0x1e, 0x3f, 0x64, 0x7b, - 0xd5, 0x93, 0x60, 0x2f, 0xa1, 0x67, 0xbd, 0xbc, 0x14, 0x70, 0x1e, 0xb2, 0x97, 0x81, 0xf7, 0x4d, - 0x57, 0xd9, 0x2b, 0xcc, 0x5e, 0x64, 0xcd, 0x1b, 0xc9, 0xb2, 0x3f, 0x43, 0x61, 0xd4, 0x29, 0xba, - 0x8e, 0x17, 0xb2, 0x57, 0xa1, 0x90, 0x73, 0x3d, 0xf6, 0x1a, 0x9e, 0xf2, 0x8e, 0xc7, 0x5e, 0x67, - 0xb4, 0xd6, 0xe6, 0x83, 0x9a, 0x57, 0x70, 0x04, 0xd6, 0xcc, 0x37, 0x50, 0x24, 0x1a, 0x41, 0xbe, - 0xdf, 0xa4, 0x23, 0xd6, 0x4a, 0x0d, 0xe9, 0x32, 0x7c, 0x2b, 0xa6, 0x38, 0xe6, 0x7a, 0x82, 0xbd, - 0x8d, 0x52, 0x1d, 0xf4, 0x4b, 0x6e, 0xc1, 0x29, 0x67, 0xbc, 0x22, 0xbb, 0x22, 0x89, 0x1d, 0x83, - 0x04, 0x36, 0x04, 0xec, 0xca, 0x64, 0x44, 0xe1, 0x3b, 0x7e, 0xc0, 0xae, 0x4a, 0x52, 0xfc, 0x31, - 0xcf, 0x09, 0x66, 0x86, 0x7d, 0xec, 0x4c, 0xb6, 0x26, 0x29, 0x98, 0x46, 0x74, 0xb0, 0x6d, 0x49, - 0x0a, 0xa6, 0x51, 0xb0, 0xda, 0x1e, 0x83, 0xbe, 0x9d, 0xdb, 0x30, 0xcc, 0x76, 0x24, 0xa9, 0x04, - 0x01, 0x99, 0xd7, 0xce, 0xce, 0x24, 0xbd, 0xfd, 0xea, 0x18, 0x6c, 0x77, 0x25, 0xa9, 0xb2, 0xea, - 0xa0, 0x0e, 0x73, 0x35, 0x1c, 0xa8, 0x56, 0x36, 0xc4, 0x9d, 0xd3, 0x35, 0x70, 0xa0, 0x5f, 0x9c, - 0x0a, 0xbc, 0x16, 0x1d, 0x21, 0x5f, 0x0a, 0xb8, 0x0e, 0x6c, 0xe4, 0x2b, 0x58, 0x41, 0xd7, 0x43, - 0x87, 0x5e, 0xc1, 0x0a, 0xb8, 0x01, 0xd9, 0xc8, 0x7a, 0x42, 0xb5, 0x7f, 0x00, 0x05, 0x7a, 0xfb, - 0x2a, 0xe0, 0x87, 0x50, 0x90, 0xd7, 0x31, 0x39, 0xb7, 0xc4, 0x7e, 0x94, 0xa4, 0x9a, 0xc0, 0x6d, - 0x0c, 0x35, 0x7f, 0xac, 0xc5, 0xdf, 0xf1, 0xd1, 0xfe, 0x89, 0x6e, 0x0f, 0xf3, 0x12, 0xb5, 0x7f, - 0x5a, 0xf7, 0x9f, 0x0f, 0x6a, 0x9c, 0xfd, 0x2c, 0x42, 0x12, 0xc0, 0xcf, 0xe3, 0xdd, 0x03, 0xf6, - 0x0b, 0x28, 0xc1, 0xa8, 0xdf, 0x29, 0x87, 0x9c, 0xfd, 0x12, 0x43, 0x22, 0xad, 0x24, 0xf2, 0x2b, - 0x99, 0x01, 0x6d, 0x26, 0xc1, 0x5f, 0xcb, 0xa1, 0xe5, 0x93, 0x22, 0x37, 0xe5, 0x4e, 0x0a, 0x76, - 0xa3, 0x0c, 0xe6, 0x96, 0xa6, 0x14, 0x70, 0x13, 0x72, 0x6c, 0xd8, 0xd0, 0xec, 0x41, 0x27, 0x7f, - 0x97, 0xa4, 0x97, 0x4e, 0x9d, 0x95, 0x11, 0xdc, 0x9b, 0xa4, 0xd7, 0x62, 0x8c, 0x9d, 0x91, 0xed, - 0x86, 0x51, 0x9d, 0xa5, 0x11, 0xec, 0x49, 0xd2, 0xfb, 0x32, 0xc2, 0xd6, 0x48, 0xee, 0x4b, 0xd2, - 0x7b, 0x28, 0xce, 0xda, 0x08, 0xef, 0xd7, 0x99, 0x95, 0x37, 0x6a, 0xbf, 0x41, 0x0f, 0x07, 0xb8, - 0x18, 0x71, 0x02, 0xa7, 0xa2, 0x36, 0x52, 0x37, 0x27, 0xb1, 0xc7, 0xe4, 0x62, 0xdc, 0x09, 0xd8, - 0x2d, 0x68, 0x8c, 0xfa, 0x9b, 0x29, 0xd1, 0xb7, 0xa2, 0x91, 0x93, 0x92, 0xdb, 0x90, 0x54, 0xdc, - 0xf0, 0x98, 0x3a, 0xba, 0x1d, 0xfe, 0x14, 0xa6, 0xb7, 0x5c, 0x77, 0x24, 0xcd, 0x15, 0x1f, 0x2a, - 0xf3, 0x4e, 0x64, 0x4c, 0xb6, 0x51, 0xbe, 0x77, 0x45, 0x00, 0x94, 0xe9, 0xdd, 0x28, 0x2a, 0x09, - 0x28, 0x52, 0xf7, 0x44, 0x74, 0xb0, 0xbb, 0xfb, 0x6d, 0x92, 0xd6, 0x9b, 0xac, 0x47, 0x1e, 0xb7, - 0x35, 0x13, 0xaf, 0xac, 0x27, 0xe7, 0x47, 0xb3, 0xac, 0x06, 0xcd, 0x49, 0xde, 0x77, 0x65, 0x3d, - 0xe5, 0x68, 0xa7, 0xd2, 0x85, 0x93, 0x5d, 0xcd, 0xb2, 0x08, 0x0c, 0xd7, 0xab, 0x95, 0x14, 0x5b, - 0xc3, 0x6b, 0xa4, 0xa7, 0x49, 0xca, 0x1c, 0x85, 0x39, 0xa9, 0x05, 0xda, 0x68, 0x23, 0xd4, 0xc9, - 0x2d, 0x94, 0x02, 0x09, 0xe8, 0x70, 0xa7, 0xe0, 0x44, 0x21, 0x31, 0x15, 0xf2, 0xd4, 0x88, 0x1d, - 0xc2, 0x9e, 0x86, 0xc3, 0x8b, 0xb2, 0xd3, 0xa1, 0x4f, 0x6f, 0x41, 0x87, 0x26, 0x29, 0xd2, 0x19, - 0x2d, 0xa0, 0x31, 0x89, 0x28, 0x67, 0xb6, 0x48, 0x1a, 0x3a, 0xc2, 0x59, 0x38, 0xd2, 0x64, 0x27, - 0x95, 0xf7, 0xb3, 0x95, 0x2e, 0x3c, 0x9f, 0xa3, 0x42, 0x19, 0xaf, 0xe7, 0x46, 0x62, 0xa3, 0x53, - 0xe7, 0x29, 0x75, 0xb9, 0xbd, 0xc7, 0x59, 0xa7, 0xc7, 0x09, 0xf9, 0x91, 0x53, 0x1c, 0xa9, 0x7c, - 0x47, 0x9e, 0x5c, 0x15, 0x82, 0xf8, 0xef, 0xca, 0x13, 0xb2, 0x82, 0x34, 0x8b, 0xbf, 0xc9, 0x13, - 0xb2, 0x42, 0x15, 0x97, 0xf7, 0x62, 0xd6, 0x60, 0xf4, 0xbe, 0x3c, 0x21, 0x6b, 0x6b, 0xcd, 0xeb, - 0x83, 0x98, 0x26, 0xc8, 0x7c, 0x08, 0xaa, 0x19, 0x54, 0x53, 0x30, 0x53, 0x15, 0xec, 0xc2, 0x36, - 0x05, 0xf4, 0x79, 0x12, 0xb8, 0xa8, 0x0d, 0x6f, 0x6d, 0xbf, 0x82, 0xaf, 0x4b, 0xec, 0xe2, 0x36, - 0xdc, 0xf8, 0xf6, 0x7e, 0x93, 0x6d, 0x81, 0x60, 0xc4, 0x09, 0xc3, 0xcd, 0x7e, 0x50, 0x64, 0x97, - 0xb4, 0x61, 0x2a, 0x3b, 0x5e, 0xd1, 0xaf, 0xc8, 0x8b, 0xef, 0x4b, 0xdb, 0xf0, 0x1a, 0x3a, 0x22, - 0x73, 0x28, 0xbb, 0x4c, 0x3f, 0x76, 0xb1, 0xcb, 0x11, 0x60, 0xcc, 0x2b, 0x68, 0x8f, 0x57, 0xb4, - 0xd1, 0x74, 0xab, 0x03, 0xbc, 0x38, 0xc8, 0xbd, 0x92, 0x98, 0x62, 0x57, 0xb6, 0x11, 0xdd, 0x3a, - 0xb7, 0xec, 0x38, 0xbb, 0x4a, 0x43, 0x8a, 0x5d, 0x76, 0x9c, 0x6d, 0x6d, 0xc3, 0xd1, 0xc9, 0x2b, - 0xf8, 0x45, 0xce, 0xb6, 0xa1, 0xd1, 0xcb, 0xd1, 0xd8, 0x0e, 0xaa, 0xb9, 0xa1, 0xc3, 0xd8, 0x0e, - 0x50, 0xed, 0x75, 0x84, 0x33, 0xe1, 0x84, 0x9c, 0x5d, 0xd7, 0x86, 0x9d, 0x02, 0x76, 0x06, 0xfe, - 0xe6, 0x90, 0x5d, 0x0f, 0xea, 0x3d, 0xb5, 0x20, 0xe0, 0x9e, 0x18, 0x0b, 0x79, 0xc0, 0x6e, 0x00, - 0x5f, 0x3c, 0xfe, 0xa0, 0x4d, 0x5e, 0x2b, 0x78, 0x1e, 0xc7, 0x87, 0x8d, 0x6c, 0x2f, 0xfb, 0x21, - 0xa0, 0x41, 0x1c, 0x6f, 0x43, 0x1e, 0x88, 0x6c, 0x2f, 0xfb, 0x11, 0x3a, 0x11, 0x85, 0x68, 0xfa, - 0x67, 0x7b, 0xd9, 0x8f, 0xdb, 0x70, 0x05, 0xcd, 0x83, 0x90, 0x46, 0xe0, 0x27, 0x88, 0x24, 0x2f, - 0xe4, 0x25, 0xf2, 0xd3, 0x36, 0xb9, 0x0d, 0xd9, 0x2c, 0x17, 0x87, 0x9f, 0xb5, 0x51, 0x41, 0xe6, - 0xca, 0x9c, 0x57, 0xd9, 0xbd, 0x6d, 0x72, 0xbf, 0x50, 0x38, 0x9a, 0xed, 0x96, 0xc9, 0xe5, 0x65, - 0xee, 0x84, 0x1c, 0xc8, 0x9e, 0x36, 0x2a, 0x10, 0x7d, 0xe9, 0xe7, 0xcd, 0xc8, 0x5b, 0xdf, 0xfb, - 0xda, 0x68, 0xe0, 0xcd, 0x2d, 0x91, 0x86, 0xef, 0x6f, 0x53, 0x87, 0x67, 0x83, 0x3c, 0x80, 0x2e, - 0xd0, 0x4a, 0x60, 0xa0, 0x07, 0x01, 0xe1, 0xb2, 0x53, 0x43, 0xbf, 0x6f, 0xa3, 0x7a, 0x53, 0xd7, - 0x76, 0x1a, 0xfc, 0x03, 0xf4, 0x70, 0x6b, 0xa6, 0xa1, 0x87, 0xda, 0xe4, 0x74, 0xe7, 0x22, 0x23, - 0x7c, 0x8f, 0xfd, 0xd1, 0x34, 0x87, 0x85, 0xef, 0xb0, 0x3f, 0xb5, 0xc9, 0xc5, 0x81, 0x8b, 0x34, - 0xc4, 0x0f, 0xd7, 0xdb, 0x90, 0x3f, 0x82, 0x41, 0xcb, 0x86, 0xd9, 0x91, 0x4d, 0x87, 0xb3, 0x47, - 0xe1, 0x5d, 0x36, 0xa8, 0xe8, 0x1c, 0xc1, 0x1e, 0x8b, 0x40, 0x43, 0x4e, 0xb5, 0xca, 0x8b, 0xec, - 0xf1, 0xba, 0x49, 0x9a, 0x3d, 0x21, 0x07, 0x6b, 0x2c, 0xdb, 0xcb, 0x9e, 0x44, 0x71, 0x8d, 0xbb, - 0x82, 0x87, 0xe1, 0x11, 0x4e, 0x38, 0xc5, 0x9e, 0x52, 0x8a, 0x90, 0x3e, 0x8d, 0xc0, 0x94, 0xfd, - 0xdc, 0x94, 0x13, 0x14, 0xd9, 0x33, 0x6d, 0xe6, 0x3b, 0x85, 0xeb, 0xe1, 0xad, 0xf6, 0xac, 0x64, - 0x5e, 0x76, 0x8f, 0xe6, 0xd4, 0x7c, 0xb4, 0x15, 0xdb, 0x39, 0xd5, 0x7a, 0xac, 0x15, 0x1b, 0x4a, - 0x5e, 0xe2, 0xd3, 0x55, 0x6a, 0x3f, 0xde, 0x4a, 0x2b, 0x91, 0x6c, 0x8f, 0xe5, 0xfb, 0xbf, 0x45, - 0xd8, 0x13, 0x11, 0x4c, 0xdb, 0x3d, 0xd9, 0x8a, 0xad, 0xa5, 0xc1, 0xb4, 0xee, 0x53, 0xad, 0x94, - 0x5d, 0x89, 0x63, 0xa9, 0x24, 0xf0, 0xe9, 0x56, 0xf9, 0xc6, 0x32, 0xa0, 0xd6, 0x7e, 0xa6, 0x15, - 0x3b, 0x4e, 0x08, 0x46, 0x79, 0xb5, 0xec, 0x14, 0xe0, 0xfc, 0xd9, 0x56, 0x6c, 0x19, 0xa3, 0xb0, - 0xb6, 0x78, 0xae, 0x95, 0x4a, 0x44, 0xf1, 0xad, 0x4d, 0x84, 0x32, 0xc0, 0xf3, 0xad, 0xf2, 0x25, - 0x56, 0x47, 0xb5, 0xfe, 0x0b, 0xe0, 0x43, 0xcb, 0x42, 0xdf, 0xb4, 0x08, 0x9c, 0x02, 0x9d, 0x22, - 0xd8, 0x69, 0xed, 0x1a, 0x1c, 0xf3, 0x8e, 0xa9, 0xf9, 0x02, 0x41, 0x4f, 0x6f, 0xa7, 0xc4, 0x11, - 0x98, 0x9f, 0xa9, 0x02, 0x39, 0xa3, 0x5d, 0x6f, 0x2f, 0x72, 0x1c, 0x76, 0x67, 0xb6, 0xeb, 0x4f, - 0x29, 0x72, 0x42, 0x10, 0x76, 0x96, 0xf1, 0x15, 0xe9, 0xc0, 0xd9, 0x46, 0x71, 0x94, 0x57, 0xfc, - 0x4d, 0xc0, 0xce, 0x69, 0xd7, 0x9f, 0x66, 0x86, 0x78, 0x50, 0x02, 0x74, 0x6e, 0x7b, 0xfc, 0xd3, - 0x0c, 0x61, 0xe7, 0xb5, 0xc7, 0xbe, 0xe0, 0x10, 0x74, 0x7e, 0x3b, 0x65, 0x89, 0xa0, 0x71, 0xa7, - 0xec, 0x16, 0x41, 0xc8, 0x2d, 0xb1, 0xef, 0xb7, 0x53, 0x2a, 0xa8, 0xd5, 0xe3, 0x7b, 0xc2, 0x71, - 0xbd, 0x90, 0xd0, 0x0b, 0xda, 0x29, 0xd7, 0xf5, 0x2f, 0x40, 0xd5, 0x2a, 0x97, 0x7b, 0xa1, 0x0b, - 0xe3, 0x82, 0x7a, 0x0f, 0x2e, 0x6a, 0xa7, 0xa1, 0x34, 0xc4, 0x46, 0x1c, 0x51, 0x98, 0x22, 0xfc, - 0xe2, 0x76, 0x1a, 0x85, 0x3a, 0x1e, 0xf0, 0x90, 0x07, 0xb2, 0x2f, 0x5b, 0xda, 0x29, 0xdf, 0xd1, - 0xd0, 0x23, 0x8e, 0x80, 0xd1, 0x25, 0xa6, 0x4b, 0x23, 0x01, 0x17, 0x02, 0xfc, 0x2f, 0x35, 0x5d, - 0xda, 0xa8, 0x93, 0x7d, 0x99, 0x51, 0xcb, 0x71, 0x27, 0x90, 0xf1, 0x2e, 0x37, 0x04, 0x73, 0xc2, - 0x0f, 0x1c, 0x4a, 0xd1, 0xf7, 0xa0, 0x7c, 0x85, 0xb1, 0xef, 0xe5, 0x55, 0x19, 0xe6, 0x4a, 0x33, - 0x58, 0xff, 0xce, 0x67, 0xd0, 0xef, 0xab, 0x8c, 0x47, 0xb9, 0xd2, 0x12, 0xb6, 0xd5, 0x24, 0x8e, - 0xb4, 0x70, 0x0e, 0x20, 0x78, 0x9b, 0x09, 0x84, 0x7c, 0xca, 0xa5, 0x80, 0x04, 0xdb, 0xe3, 0x82, - 0x0d, 0x62, 0x8a, 0x07, 0xb0, 0xd8, 0xd1, 0x48, 0xad, 0x3f, 0xe0, 0xa0, 0xb6, 0xd3, 0x8c, 0xc1, - 0x10, 0xaf, 0x4c, 0xf0, 0x60, 0xc3, 0x24, 0xa1, 0xbb, 0x40, 0x78, 0x9c, 0x17, 0x32, 0x61, 0x9e, - 0x4f, 0x23, 0xc9, 0x1f, 0xa2, 0x4c, 0xc6, 0x79, 0xa1, 0x3f, 0xf0, 0x2b, 0x1a, 0xfc, 0x08, 0x05, - 0x36, 0xce, 0x0b, 0xbd, 0x6e, 0x05, 0x71, 0x3e, 0x06, 0xe1, 0x71, 0x5e, 0x18, 0x3c, 0xb4, 0xd7, - 0x0d, 0x85, 0xe3, 0xc9, 0x72, 0xfa, 0xc4, 0xc0, 0x5d, 0x51, 0xf8, 0xd3, 0x76, 0x3a, 0x22, 0x8f, - 0xf3, 0xc2, 0x30, 0x2f, 0x39, 0xc2, 0xdd, 0xc4, 0xb3, 0x9e, 0xc7, 0x83, 0x91, 0xc0, 0x2f, 0xd6, - 0x64, 0x2d, 0x7d, 0x86, 0x11, 0x1c, 0xe7, 0x85, 0x1e, 0x3f, 0x74, 0x3d, 0x1e, 0xb5, 0xfd, 0x5c, - 0x53, 0x1c, 0xec, 0x1a, 0xf6, 0x83, 0x0a, 0x41, 0x5f, 0xb4, 0xdb, 0x6b, 0xad, 0x03, 0xa3, 0xdf, - 0x34, 0xe2, 0x1f, 0x58, 0x6f, 0xe9, 0xa0, 0xfd, 0x20, 0xc9, 0x63, 0xb8, 0xbc, 0xa2, 0xbf, 0xb5, - 0xc3, 0x3e, 0xc8, 0x6a, 0x9a, 0x43, 0x88, 0x37, 0xff, 0x6d, 0x1d, 0xda, 0x75, 0x83, 0x54, 0xbd, - 0xee, 0x6f, 0xef, 0xa0, 0x9e, 0xcc, 0x21, 0xd7, 0x9b, 0x84, 0x3b, 0xfe, 0x91, 0x7b, 0x6c, 0x0d, - 0xee, 0xec, 0xb0, 0x5b, 0xac, 0xaf, 0xcc, 0x65, 0xae, 0x77, 0x09, 0x77, 0xfd, 0x23, 0x7b, 0x6c, - 0x18, 0xee, 0xee, 0xb0, 0xff, 0x8f, 0xd5, 0x32, 0x87, 0x34, 0x9e, 0x80, 0x7b, 0x3a, 0x68, 0xa2, - 0x8c, 0x94, 0x6b, 0x0d, 0xf8, 0x85, 0x1d, 0xb8, 0x05, 0xa2, 0x73, 0x50, 0x5c, 0x70, 0x51, 0x07, - 0x6d, 0xc8, 0xf5, 0xdd, 0x57, 0x5c, 0x76, 0x31, 0x64, 0xf1, 0x78, 0xfa, 0xd5, 0xb3, 0x05, 0x32, - 0x7d, 0xeb, 0x1f, 0xb7, 0xbb, 0xa4, 0x83, 0x2a, 0x6e, 0x30, 0x1f, 0x47, 0x2f, 0x95, 0x68, 0x5f, - 0x1c, 0xbd, 0x0c, 0xe8, 0x40, 0x83, 0xee, 0xe5, 0xf0, 0xae, 0x2f, 0xb7, 0xe3, 0xb2, 0x2b, 0xd0, - 0x15, 0xdc, 0x50, 0xc7, 0x05, 0x57, 0x4a, 0x57, 0x0d, 0x01, 0xae, 0x02, 0xda, 0xb7, 0x31, 0x8e, - 0x6e, 0x05, 0x3a, 0xdc, 0xa0, 0xbb, 0xad, 0x83, 0xd6, 0x0c, 0x79, 0x61, 0x1a, 0x97, 0x6c, 0x87, - 0x24, 0x86, 0xa9, 0xf3, 0xdc, 0x8e, 0xb9, 0x24, 0x38, 0x75, 0xed, 0xec, 0x50, 0xa5, 0x1d, 0x95, - 0xc8, 0x83, 0xd5, 0x2e, 0x54, 0xc3, 0x1c, 0x46, 0xe6, 0xf0, 0x72, 0x75, 0x87, 0xdd, 0x6a, 0x1d, - 0x34, 0x97, 0xb1, 0x51, 0xb9, 0x06, 0x91, 0xe5, 0x76, 0x37, 0xce, 0xf6, 0x5a, 0xf4, 0x2e, 0x3b, - 0x19, 0x47, 0xaf, 0x93, 0x43, 0xa6, 0xb6, 0xa1, 0x71, 0xd9, 0xf5, 0x1d, 0x38, 0x35, 0x3a, 0x82, - 0xf7, 0xfb, 0x41, 0xc5, 0xc1, 0xd4, 0x7c, 0xb7, 0x93, 0x16, 0x30, 0xc2, 0x06, 0x5d, 0xc1, 0x03, - 0xda, 0x07, 0x77, 0xaa, 0xfd, 0x1c, 0xef, 0x75, 0x27, 0x27, 0xd9, 0x7b, 0x9d, 0xfa, 0x62, 0x9a, - 0x4a, 0x1c, 0xd0, 0xfb, 0x9d, 0x34, 0x38, 0xd4, 0x94, 0xd3, 0xc6, 0x08, 0x3e, 0xe8, 0xc4, 0x49, - 0x4d, 0x15, 0x7b, 0x83, 0xf0, 0xc3, 0x4e, 0xfb, 0xab, 0x56, 0x52, 0x0b, 0xf5, 0x5f, 0x23, 0xfe, - 0x08, 0x4e, 0xeb, 0x36, 0x46, 0xf0, 0x31, 0x9c, 0x4a, 0xc1, 0x2c, 0xab, 0x4f, 0x3a, 0x29, 0xfd, - 0x6a, 0xe5, 0x8c, 0xc7, 0xfb, 0xb4, 0x93, 0x16, 0x2b, 0xed, 0xca, 0xc0, 0x9f, 0x75, 0xd2, 0x86, - 0x86, 0xba, 0xc7, 0x3e, 0xc7, 0xe3, 0x11, 0x7e, 0x2d, 0x60, 0x5f, 0x74, 0xe2, 0xaa, 0xd8, 0xf5, - 0x6a, 0x82, 0xb3, 0x2f, 0x3b, 0xe5, 0xa9, 0xb0, 0xe0, 0x7b, 0x45, 0xf6, 0x77, 0x24, 0x68, 0xc8, - 0x2d, 0x04, 0xbe, 0x42, 0x8e, 0x4d, 0xd1, 0x36, 0x72, 0xc8, 0xf7, 0xc4, 0x14, 0x3b, 0x2e, 0x85, - 0xdb, 0x73, 0x7a, 0x1e, 0x76, 0x2a, 0x9c, 0x1d, 0x9f, 0xc2, 0x6d, 0xbc, 0xbf, 0x99, 0x06, 0x30, - 0x13, 0x94, 0xd8, 0x09, 0x29, 0xdc, 0xf5, 0x4b, 0xc0, 0xaf, 0x09, 0xc2, 0x4e, 0x4c, 0xe1, 0xba, - 0xc7, 0x99, 0x81, 0xc9, 0x49, 0x30, 0xe9, 0x75, 0x66, 0x36, 0x4c, 0x4a, 0x9f, 0x27, 0xc3, 0x27, - 0x80, 0x23, 0x39, 0x3f, 0x9a, 0x9d, 0x52, 0x6f, 0xff, 0x07, 0x77, 0x02, 0x76, 0x6a, 0x8a, 0x46, - 0x84, 0x44, 0xe4, 0x73, 0x88, 0x76, 0xe3, 0xa7, 0xa5, 0xa8, 0x16, 0x34, 0xe4, 0xd7, 0x04, 0xd0, - 0xd3, 0x11, 0x87, 0xd0, 0x5e, 0x67, 0x86, 0x9d, 0x81, 0x38, 0xd4, 0x52, 0x7e, 0xce, 0x4c, 0x51, - 0xf7, 0xf1, 0x78, 0x56, 0x8a, 0x72, 0x45, 0x8f, 0x31, 0xb7, 0x67, 0xa7, 0xa8, 0xf8, 0xa2, 0xb0, - 0x76, 0x7d, 0x0e, 0x38, 0x0d, 0x70, 0x21, 0x2b, 0x89, 0x9d, 0x9b, 0xc2, 0x66, 0x76, 0x26, 0xa4, - 0xc4, 0xe2, 0xd2, 0x2e, 0xac, 0xb2, 0xf3, 0x52, 0xb4, 0x4e, 0x45, 0x40, 0xbf, 0x26, 0x08, 0x3f, - 0x3f, 0x15, 0x39, 0x12, 0x60, 0x24, 0xbe, 0x0f, 0xfe, 0x0a, 0xa1, 0xa1, 0x5a, 0x47, 0x79, 0xba, - 0xa0, 0x11, 0xc5, 0x85, 0xda, 0x85, 0xa0, 0x8d, 0xf5, 0xf6, 0xa2, 0x94, 0xdc, 0xf1, 0x57, 0x4c, - 0xf1, 0x5e, 0x8c, 0x2e, 0x8f, 0xe5, 0x7b, 0xe0, 0x76, 0x0b, 0xf8, 0x8f, 0xe5, 0x7b, 0x48, 0x25, - 0x14, 0x4e, 0xa5, 0xaa, 0x87, 0xe5, 0x92, 0x14, 0x15, 0x55, 0xa3, 0x44, 0x8d, 0xcf, 0xa5, 0x10, - 0x66, 0x8a, 0x45, 0x72, 0x22, 0xb0, 0x17, 0x2f, 0xd6, 0x3f, 0xf5, 0xa4, 0xa8, 0xe2, 0xe2, 0x42, - 0xf5, 0xf6, 0xb8, 0x1c, 0xe1, 0x32, 0xc5, 0x22, 0x8a, 0xcd, 0x11, 0x28, 0x3a, 0xcc, 0xe2, 0x2b, - 0xb4, 0x91, 0xde, 0xee, 0xd7, 0xfd, 0x5d, 0x99, 0xa2, 0xba, 0x8f, 0x8a, 0x94, 0xb7, 0xab, 0x90, - 0x3d, 0xe5, 0x4d, 0x62, 0xf0, 0xb5, 0xd5, 0xb0, 0x33, 0x27, 0x91, 0xba, 0xb7, 0x6d, 0x86, 0x5d, - 0x5d, 0xa8, 0xfc, 0x6d, 0x8f, 0xb1, 0x53, 0x62, 0xb9, 0xba, 0x69, 0x0a, 0xc4, 0x39, 0xea, 0x6d, - 0x27, 0xca, 0xa2, 0x2e, 0x50, 0x9e, 0x76, 0x81, 0x41, 0xae, 0x36, 0x31, 0x57, 0x7e, 0xae, 0x06, - 0x83, 0xb8, 0x50, 0xd9, 0x5d, 0x03, 0x06, 0xb9, 0xda, 0xc4, 0xac, 0xfc, 0x5c, 0xab, 0x8d, 0x66, - 0xe7, 0xe7, 0x3a, 0x90, 0x8b, 0x8a, 0x94, 0xb7, 0xeb, 0x65, 0x75, 0x49, 0x6f, 0x91, 0xfc, 0xdc, - 0x60, 0xd8, 0xcd, 0x91, 0x9f, 0x1f, 0x18, 0x76, 0xb3, 0xf2, 0xf3, 0xc3, 0x18, 0xbb, 0x68, 0x7e, - 0x7e, 0xa4, 0x29, 0x34, 0xe6, 0xe7, 0xc7, 0xc8, 0x4f, 0x5d, 0xa0, 0x3c, 0xfd, 0x04, 0x41, 0xc6, - 0x3c, 0x77, 0xda, 0x54, 0x97, 0x2a, 0x62, 0xf6, 0x53, 0x58, 0xc4, 0x44, 0xb4, 0x6b, 0xf9, 0xd9, - 0x6c, 0xb8, 0x97, 0x17, 0xd8, 0xcf, 0x53, 0xf2, 0xb7, 0x63, 0xde, 0x26, 0x1e, 0x88, 0xfc, 0xf7, - 0xd8, 0x2f, 0x52, 0xf8, 0x10, 0xe7, 0x1c, 0x8d, 0xec, 0xb1, 0x5f, 0x9a, 0x26, 0x66, 0xc3, 0xaf, - 0xa0, 0x3d, 0xc2, 0x03, 0xd7, 0x2f, 0x66, 0x8a, 0x45, 0xf6, 0x6b, 0x4c, 0x78, 0xd9, 0xc6, 0xd2, - 0xf7, 0x1b, 0x4c, 0x8e, 0x8d, 0x35, 0x27, 0x10, 0x3c, 0x60, 0x37, 0x42, 0x3d, 0xc7, 0x0b, 0x79, - 0x1f, 0xe6, 0x37, 0xa5, 0xe4, 0x01, 0xae, 0xc2, 0xf3, 0xb4, 0xd2, 0xb1, 0x9b, 0x53, 0xfa, 0x28, - 0x0a, 0x3e, 0xe4, 0xf1, 0x96, 0x14, 0x2d, 0x8c, 0x79, 0xbf, 0xd7, 0x99, 0x09, 0xd9, 0xad, 0x52, - 0x5f, 0xad, 0x8a, 0x21, 0xbb, 0x0d, 0x4b, 0x80, 0x9a, 0x52, 0x7a, 0x9e, 0xdd, 0x8e, 0x41, 0x8a, - 0x80, 0x6a, 0x8a, 0xdd, 0x81, 0x65, 0xd1, 0x38, 0xc7, 0xc4, 0xbe, 0x13, 0x0e, 0x0c, 0x26, 0xaf, - 0xcb, 0xef, 0x4a, 0xe9, 0x55, 0x1c, 0xa0, 0x9e, 0xe7, 0x77, 0xa3, 0x2b, 0x83, 0x4e, 0x28, 0x68, - 0x69, 0xbb, 0x07, 0xde, 0x72, 0x22, 0x20, 0x6a, 0x42, 0x26, 0xe7, 0xb7, 0xb2, 0x3c, 0xa2, 0x18, - 0x55, 0x23, 0xfb, 0x5d, 0x03, 0xae, 0xc7, 0xf2, 0x5e, 0x04, 0xa2, 0x5d, 0xb1, 0x1e, 0x06, 0x90, - 0xda, 0x3d, 0x0b, 0x26, 0x5e, 0x6c, 0x0f, 0x96, 0x26, 0x75, 0x94, 0x33, 0xbe, 0xef, 0x8b, 0xa1, - 0xda, 0xf3, 0xfd, 0x7a, 0xe2, 0x91, 0x5e, 0xf4, 0x55, 0xc5, 0x1e, 0x88, 0xce, 0x2f, 0x75, 0xe5, - 0xec, 0x09, 0xf6, 0x60, 0x74, 0x89, 0x51, 0x2f, 0x3e, 0xb5, 0xff, 0xfc, 0x7d, 0xd4, 0x22, 0xeb, - 0xe9, 0x0f, 0xfa, 0x7f, 0x40, 0x02, 0xea, 0x30, 0x79, 0x79, 0x28, 0x45, 0x3b, 0x01, 0x85, 0x69, - 0x8a, 0x4a, 0xff, 0x8f, 0xd1, 0x19, 0xaf, 0x65, 0xf8, 0x40, 0xab, 0x27, 0xc1, 0x2c, 0xae, 0x0f, - 0x47, 0x6b, 0xbd, 0xce, 0xf5, 0x91, 0xe8, 0x74, 0x8f, 0x73, 0x7d, 0x34, 0x6a, 0x51, 0xe7, 0xfa, - 0x98, 0x1c, 0x2c, 0x03, 0x93, 0x97, 0xc7, 0xc1, 0x55, 0x61, 0x0d, 0x5c, 0x9f, 0x88, 0xce, 0xbe, - 0x28, 0xd7, 0x27, 0x51, 0xfe, 0x34, 0x34, 0xa8, 0xc7, 0xa7, 0x52, 0xfa, 0x96, 0x5e, 0xbd, 0x93, - 0x9e, 0x8e, 0xd7, 0x18, 0xa6, 0xc0, 0x33, 0x7a, 0xd1, 0xa8, 0xd3, 0xc5, 0xc1, 0xe0, 0x59, 0xf9, - 0xfe, 0x32, 0xa4, 0x00, 0x3e, 0x17, 0x55, 0xce, 0x7a, 0xe6, 0x1b, 0xc6, 0xf3, 0xd1, 0x24, 0x69, - 0x46, 0xb0, 0x78, 0x21, 0xba, 0x32, 0x6a, 0x89, 0x36, 0x7b, 0x31, 0xd6, 0xc9, 0xd8, 0x26, 0x89, - 0xed, 0x8d, 0x75, 0x52, 0x7f, 0xa2, 0xf0, 0x04, 0x7b, 0x29, 0x16, 0x4b, 0x09, 0x10, 0xeb, 0xe5, - 0x58, 0x2c, 0xbd, 0xad, 0x52, 0xb1, 0x5e, 0xd1, 0x2f, 0x8f, 0x86, 0x7e, 0xfe, 0x19, 0xfd, 0xac, - 0x17, 0x0a, 0xc0, 0x57, 0xa3, 0xca, 0x91, 0x7e, 0xbe, 0x16, 0x2d, 0xdc, 0x58, 0x3f, 0x5f, 0x8f, - 0xbe, 0x21, 0x1b, 0xfb, 0xf9, 0x46, 0xac, 0xf0, 0xe2, 0xfd, 0x7c, 0x33, 0x56, 0x78, 0x91, 0x7e, - 0xbe, 0x15, 0x8b, 0x15, 0xed, 0xe7, 0xdb, 0xb1, 0x58, 0x0d, 0xfd, 0xfc, 0x4b, 0x8a, 0x0e, 0x74, - 0x0d, 0xf3, 0x90, 0x4a, 0x42, 0xc5, 0xfb, 0x6b, 0xb4, 0x6b, 0xe4, 0x4e, 0xe1, 0xef, 0x44, 0xf3, - 0x80, 0x8f, 0x0e, 0x9e, 0x60, 0xef, 0x62, 0xfa, 0x46, 0x40, 0xc4, 0xff, 0x5b, 0x94, 0x32, 0x21, - 0x3a, 0xf6, 0x7b, 0xd1, 0x69, 0xaa, 0x40, 0xe5, 0xfe, 0xfd, 0x68, 0x58, 0xfd, 0xe5, 0xc2, 0x13, - 0xec, 0x83, 0x58, 0xf7, 0x25, 0x8e, 0x20, 0x1f, 0xc6, 0x72, 0x26, 0x05, 0x3a, 0xce, 0x47, 0xd1, - 0x32, 0x8c, 0xf4, 0xe1, 0xe3, 0x68, 0xcd, 0xea, 0x3e, 0x7c, 0x82, 0x3e, 0x44, 0x40, 0xb8, 0xff, - 0x34, 0x5a, 0x5e, 0xd1, 0x3e, 0x7c, 0x16, 0x9d, 0xbe, 0xf1, 0x3e, 0x7c, 0x1e, 0x0d, 0x1b, 0xe9, - 0xc3, 0x17, 0xb1, 0x52, 0x8d, 0xf4, 0xe1, 0xcb, 0x58, 0x7d, 0xc7, 0xfb, 0xf0, 0xf7, 0x94, 0x7d, - 0xb0, 0xf5, 0xd5, 0x39, 0x6b, 0xc2, 0xac, 0x9e, 0xc7, 0xae, 0xa3, 0xc3, 0xf7, 0xec, 0xda, 0x30, - 0x0a, 0xc7, 0xad, 0xa3, 0x03, 0xd5, 0x1c, 0x35, 0x62, 0x34, 0x8e, 0x5f, 0x67, 0xb7, 0x59, 0x6b, - 0xe7, 0xae, 0x15, 0xa3, 0x74, 0xc2, 0x3a, 0xe2, 0x32, 0xe7, 0x3c, 0x34, 0x3a, 0x27, 0x82, 0xcb, - 0xec, 0xf9, 0x68, 0x14, 0x4e, 0x02, 0x97, 0x39, 0xe6, 0xa5, 0xd1, 0x38, 0x19, 0x5c, 0xe6, 0x9e, - 0x9f, 0x46, 0xe9, 0x94, 0x75, 0xea, 0xcb, 0x9f, 0xba, 0x96, 0x7f, 0x32, 0x6d, 0x2f, 0xb6, 0xe6, - 0xaf, 0x77, 0x3d, 0xf6, 0x54, 0x9a, 0x4e, 0x19, 0x99, 0x5c, 0x4f, 0x36, 0xcb, 0x9e, 0x4e, 0xe3, - 0xab, 0xf4, 0x94, 0x13, 0xb0, 0x67, 0xd2, 0xf8, 0x4a, 0x31, 0xe5, 0x04, 0xd2, 0x62, 0x2c, 0xdf, - 0xff, 0x2d, 0xf6, 0x6c, 0x9a, 0xde, 0xcb, 0xea, 0xe7, 0xe0, 0xcf, 0xa5, 0xe5, 0x37, 0x05, 0x6a, - 0x1c, 0x99, 0x63, 0xcf, 0xa7, 0xe9, 0x4d, 0xa9, 0xf6, 0x10, 0xec, 0x05, 0xf8, 0xef, 0x2b, 0x0b, - 0xf6, 0x62, 0x9a, 0x56, 0xc7, 0xbe, 0xe9, 0xaa, 0x1f, 0x88, 0x1c, 0x17, 0x87, 0xd1, 0x5b, 0x6d, - 0x6f, 0x1c, 0x3b, 0x9c, 0xb0, 0x97, 0xe2, 0xd8, 0x37, 0x09, 0x7b, 0x19, 0x21, 0xf0, 0x5f, 0x13, - 0x54, 0x11, 0xaf, 0xa4, 0x71, 0xe5, 0x4f, 0x4d, 0xb9, 0xc8, 0xa4, 0x69, 0x5b, 0x8e, 0xb6, 0xaa, - 0xa5, 0x57, 0x95, 0x86, 0x57, 0xcc, 0x7a, 0x39, 0x2e, 0xd8, 0x6b, 0x20, 0xac, 0xd6, 0xe9, 0xd7, - 0xd3, 0x78, 0xc5, 0xa2, 0x41, 0x5b, 0x84, 0x41, 0xbf, 0xe0, 0x94, 0x39, 0x7b, 0x23, 0x8d, 0x1f, - 0x65, 0x07, 0x7e, 0x65, 0xbd, 0x13, 0xf2, 0xf4, 0xe1, 0xec, 0x4d, 0x38, 0x39, 0x82, 0x4f, 0x67, - 0x3d, 0xec, 0x21, 0xde, 0xd2, 0xed, 0x9c, 0x08, 0xa8, 0xfd, 0x76, 0x5a, 0x7e, 0xfb, 0x0a, 0x79, - 0x20, 0x90, 0x96, 0xbf, 0xa4, 0xe5, 0xb7, 0x2f, 0x02, 0xd8, 0x5f, 0xd3, 0xf2, 0x62, 0x5c, 0xdd, - 0xc9, 0xb2, 0x77, 0xd2, 0xf2, 0x73, 0x5b, 0x28, 0x02, 0xf6, 0x2e, 0x9e, 0x07, 0xf3, 0x81, 0x5b, - 0x61, 0x7f, 0x4b, 0xcb, 0xdf, 0xd7, 0x4d, 0x4a, 0x1f, 0xef, 0xa5, 0xe5, 0xef, 0xc5, 0x27, 0x05, - 0x7b, 0x1f, 0xee, 0xd4, 0x40, 0x7d, 0x90, 0xc6, 0x45, 0x87, 0x5f, 0x70, 0x04, 0x76, 0x04, 0x21, - 0xb4, 0x3f, 0x8c, 0xa0, 0x87, 0x19, 0xf4, 0x23, 0xe4, 0x23, 0xa2, 0xcb, 0x3e, 0x8e, 0x20, 0xd0, - 0x63, 0x9f, 0x48, 0x0a, 0xfe, 0x66, 0x1e, 0xb0, 0x4f, 0x25, 0x85, 0xaa, 0x53, 0x84, 0xf9, 0x67, - 0x92, 0x42, 0xd5, 0x29, 0xb2, 0xcf, 0x31, 0x98, 0xb4, 0xe3, 0xa3, 0x2c, 0x7e, 0x01, 0x42, 0x1b, - 0x0a, 0x78, 0x85, 0x7e, 0x89, 0xfe, 0x6d, 0x28, 0x98, 0xdf, 0xf8, 0x61, 0xa4, 0x37, 0x04, 0x45, - 0x76, 0x6c, 0x37, 0xb9, 0xc6, 0x95, 0x27, 0x3b, 0x0e, 0xcf, 0xa3, 0xe8, 0xe9, 0xf1, 0xdd, 0xf8, - 0x12, 0xca, 0xab, 0xdc, 0x11, 0xec, 0x84, 0x6e, 0xfc, 0xc2, 0x40, 0x5e, 0x1d, 0xb3, 0x13, 0xbb, - 0xe5, 0x27, 0x91, 0x4d, 0x3c, 0x08, 0x71, 0xe5, 0xcd, 0x4e, 0x52, 0x72, 0x20, 0xec, 0xe4, 0x6e, - 0xdc, 0xd6, 0xbb, 0xa5, 0x29, 0x99, 0xa5, 0x53, 0xa4, 0x5b, 0x6a, 0xb3, 0x53, 0xbb, 0xf1, 0xd1, - 0x45, 0xb3, 0x3f, 0xad, 0x1b, 0xbf, 0xc0, 0x20, 0xf6, 0xa7, 0x43, 0x2b, 0x57, 0xa5, 0x08, 0x67, - 0x74, 0xcb, 0x7f, 0x3c, 0x08, 0x0a, 0x95, 0x2a, 0x3b, 0xb3, 0x5b, 0x2d, 0x29, 0x21, 0xb8, 0xd7, - 0xf3, 0x79, 0x56, 0x5c, 0x50, 0x4f, 0xe9, 0xd9, 0xdd, 0x6a, 0xed, 0x8b, 0x58, 0xb0, 0x73, 0xe2, - 0xa0, 0x4c, 0xec, 0xb9, 0x71, 0x30, 0xeb, 0x15, 0xf9, 0x34, 0x3b, 0x0f, 0x1c, 0xf3, 0xbe, 0xaa, - 0xac, 0xf3, 0x65, 0x33, 0x70, 0x2b, 0xd8, 0xf3, 0x7d, 0x1f, 0xbd, 0xa3, 0xa6, 0xf4, 0x7b, 0x81, - 0x69, 0x4b, 0x97, 0x17, 0xa2, 0x1f, 0x63, 0xde, 0x11, 0x7c, 0x9a, 0x5d, 0x04, 0xd9, 0x58, 0xb5, - 0xca, 0x65, 0x59, 0x5d, 0x2c, 0x65, 0xd4, 0x66, 0x5b, 0xba, 0xa9, 0x20, 0xeb, 0x73, 0x95, 0x5d, - 0xd2, 0x2d, 0x7f, 0x45, 0xb1, 0x59, 0x29, 0x5f, 0xda, 0x4d, 0x95, 0x6f, 0x7e, 0x09, 0x6a, 0x8e, - 0x98, 0xdd, 0xf6, 0x41, 0x56, 0x93, 0x86, 0x7b, 0x2a, 0xd5, 0xd8, 0x6f, 0xc1, 0x2f, 0xef, 0xa6, - 0x09, 0x29, 0x7f, 0xe1, 0xa9, 0x2d, 0xae, 0xe8, 0xa6, 0x65, 0x1c, 0x58, 0xa3, 0xfa, 0x95, 0xba, - 0xab, 0xae, 0xe7, 0x04, 0x33, 0xec, 0xaa, 0x6e, 0x33, 0xab, 0x24, 0xb0, 0xf5, 0x1f, 0x05, 0xc3, - 0x2e, 0x7a, 0xdb, 0x9c, 0x8e, 0x21, 0xda, 0xde, 0x1d, 0xfd, 0x6d, 0x2a, 0xa0, 0x1d, 0xdd, 0xe6, - 0x77, 0xa5, 0x68, 0xef, 0xec, 0x3e, 0x84, 0x5b, 0x2b, 0x1b, 0xfe, 0x71, 0x09, 0xff, 0x06, 0xe1, - 0x57, 0xaa, 0x65, 0x2e, 0x38, 0xee, 0x12, 0xf6, 0xb1, 0x97, 0x63, 0x6d, 0x70, 0xca, 0x68, 0x26, - 0x48, 0x61, 0xc4, 0x09, 0x84, 0xeb, 0x94, 0x0f, 0x05, 0x32, 0x2f, 0x82, 0x74, 0x01, 0x99, 0x4f, - 0x26, 0xbd, 0xbc, 0x58, 0xab, 0xa2, 0xb9, 0x60, 0xfd, 0xd7, 0x77, 0xef, 0x5d, 0x9b, 0x78, 0x68, - 0xef, 0xda, 0xc4, 0x0b, 0x7b, 0xd7, 0x26, 0xb6, 0xbc, 0xb4, 0x76, 0x1f, 0x6b, 0x75, 0xc1, 0xaf, - 0x74, 0x56, 0x5d, 0xaf, 0x54, 0x70, 0xaa, 0x9d, 0xc2, 0x2d, 0x4e, 0xe0, 0xdf, 0x93, 0x46, 0x12, - 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x89, 0x80, 0x6a, 0xe9, 0xcc, 0x37, 0x00, 0x00, + // 5853 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x7b, 0x67, 0x78, 0x24, 0xc5, + 0xb9, 0x2e, 0xb3, 0x81, 0xdd, 0xed, 0x4d, 0x45, 0xb3, 0x8b, 0x86, 0x35, 0x5e, 0x49, 0xc8, 0xf7, + 0x4a, 0xc6, 0xf7, 0x6a, 0x16, 0x81, 0x47, 0xfe, 0x71, 0xd2, 0xac, 0x12, 0xe3, 0x23, 0x69, 0xb5, + 0x9a, 0x91, 0xf0, 0xf9, 0xc5, 0xd3, 0x9a, 0x29, 0x8d, 0xda, 0xcc, 0x74, 0x0f, 0xdd, 0x35, 0xbb, + 0x92, 0x4f, 0x78, 0xc8, 0x39, 0xdb, 0xc0, 0x92, 0x37, 0x12, 0x9d, 0x33, 0x39, 0xda, 0xec, 0x12, + 0x6c, 0x30, 0x39, 0xc3, 0x02, 0x26, 0xdb, 0x60, 0x72, 0xf4, 0x79, 0xbe, 0xb7, 0xc2, 0x74, 0x8f, + 0xe4, 0x5f, 0xea, 0x7a, 0xbf, 0xf4, 0xd6, 0x57, 0x5f, 0x55, 0x57, 0x55, 0x8f, 0x2c, 0xc6, 0xa7, + 0xab, 0x01, 0x0f, 0x43, 0xd7, 0xf7, 0x3a, 0xab, 0x81, 0x2f, 0x7c, 0x7b, 0x81, 0x70, 0xab, 0x13, + 0x6b, 0x56, 0x54, 0xb8, 0x70, 0x8a, 0x8e, 0x70, 0x24, 0xba, 0x66, 0x55, 0xc9, 0x2f, 0xf9, 0x78, + 0x4c, 0xd1, 0x93, 0x44, 0x0f, 0x7e, 0x3b, 0x61, 0x2d, 0xe9, 0x77, 0x79, 0xb9, 0x98, 0x9f, 0xa9, + 0x72, 0x7b, 0x95, 0x35, 0x4f, 0x54, 0x93, 0x89, 0x96, 0x44, 0xc7, 0xc2, 0xf5, 0x0b, 0x76, 0x3f, + 0xd7, 0xbc, 0xcf, 0xe8, 0x3c, 0x51, 0xb5, 0x93, 0xd6, 0x82, 0xc9, 0xb2, 0x53, 0x4a, 0xce, 0x6b, + 0x49, 0x74, 0x2c, 0x57, 0x38, 0x10, 0x29, 0xe1, 0x5e, 0x72, 0x7e, 0xc4, 0x02, 0x88, 0xbd, 0xd6, + 0x5a, 0x54, 0xe4, 0x05, 0xb7, 0xe2, 0x94, 0x93, 0x0b, 0x22, 0x42, 0x0d, 0x92, 0xbc, 0xe0, 0x97, + 0xcb, 0x8e, 0xe0, 0xc9, 0x85, 0x51, 0xb9, 0x02, 0x21, 0x9f, 0x72, 0x82, 0x90, 0x8b, 0xe4, 0xbe, + 0x2d, 0x89, 0x8e, 0x25, 0x46, 0x2e, 0x41, 0x7b, 0x8d, 0xb5, 0x90, 0x97, 0x79, 0x25, 0x4c, 0x2e, + 0x6a, 0x99, 0x6f, 0xa4, 0x12, 0x22, 0x99, 0x13, 0x04, 0xce, 0x4c, 0x72, 0x71, 0x4b, 0xa2, 0x63, + 0xb1, 0x96, 0x01, 0x3a, 0xf8, 0x9d, 0x79, 0xd6, 0x82, 0xbe, 0xe9, 0x6a, 0x60, 0x7f, 0xcd, 0x74, + 0x75, 0x45, 0xd7, 0x8a, 0x4e, 0xca, 0x58, 0x27, 0xe1, 0x94, 0x86, 0x48, 0xd7, 0x99, 0x35, 0x7f, + 0x93, 0x53, 0x46, 0xcf, 0x97, 0x8d, 0xd2, 0xa3, 0xfd, 0x7f, 0xad, 0xc5, 0x85, 0x29, 0xb7, 0x5c, + 0x0c, 0xd0, 0xed, 0xf9, 0x1d, 0x4b, 0xbb, 0xac, 0xba, 0xf5, 0xa8, 0x91, 0xd9, 0xdf, 0xb0, 0xe6, + 0x87, 0x6e, 0x09, 0x9d, 0x5f, 0xd1, 0xb5, 0xbf, 0x54, 0xc9, 0x15, 0x9c, 0xb2, 0x13, 0xf4, 0xd7, + 0xbc, 0x42, 0xce, 0x2d, 0xa9, 0x28, 0xa4, 0x65, 0x77, 0x5a, 0xd6, 0x24, 0x0d, 0xc2, 0x51, 0x62, + 0xa6, 0x2a, 0x13, 0xb2, 0xb4, 0x6b, 0xa5, 0xb4, 0x31, 0x83, 0x33, 0xba, 0x64, 0xd2, 0x8c, 0x53, + 0x8b, 0xb5, 0x2c, 0xa8, 0x7a, 0x47, 0x39, 0x41, 0x29, 0x3c, 0x8a, 0xf2, 0x4f, 0x29, 0x5a, 0x3e, + 0x6a, 0x05, 0x55, 0x2f, 0x13, 0x94, 0xc2, 0x41, 0xee, 0xd9, 0xed, 0xd6, 0xb2, 0x29, 0x27, 0x3c, + 0xaa, 0xe8, 0x86, 0xc2, 0xf5, 0x0a, 0x22, 0xb9, 0x28, 0x92, 0x8a, 0xa5, 0x53, 0x4e, 0xd8, 0xab, + 0x04, 0x76, 0xbb, 0xb5, 0xd8, 0x0f, 0x8a, 0x3c, 0x38, 0x6a, 0x82, 0xf2, 0x45, 0xfd, 0x59, 0x26, + 0x03, 0xaf, 0x9f, 0xc9, 0x0a, 0x5e, 0x19, 0x5d, 0x04, 0xe9, 0xfa, 0x19, 0xbb, 0xdb, 0x5a, 0xea, + 0x94, 0x4a, 0x44, 0x7e, 0xc8, 0x2f, 0xf2, 0xe4, 0x12, 0x74, 0x6c, 0xb5, 0xd4, 0xcd, 0x48, 0x81, + 0x70, 0x7d, 0x8f, 0x84, 0xa3, 0x51, 0xcd, 0x83, 0xbf, 0x61, 0x2d, 0x1a, 0xad, 0x7a, 0x48, 0x7a, + 0x8b, 0xb5, 0x90, 0xaa, 0x35, 0x4c, 0x26, 0x66, 0x65, 0x4e, 0x0a, 0x0e, 0x2e, 0x5b, 0xfb, 0xca, + 0xc0, 0xf6, 0x5a, 0x6b, 0x01, 0x41, 0x18, 0xa2, 0xb8, 0x2a, 0x70, 0xaa, 0xbd, 0x22, 0x0f, 0x0b, + 0x18, 0x1b, 0xdd, 0x33, 0x20, 0x76, 0x87, 0xb5, 0x98, 0xb2, 0x03, 0xeb, 0xf9, 0xb0, 0x5e, 0x2e, + 0xad, 0x15, 0x8d, 0xd1, 0x45, 0x81, 0x7c, 0x38, 0xe4, 0xe5, 0x85, 0xd6, 0x62, 0x3d, 0xea, 0xf6, + 0x62, 0x6b, 0xc1, 0x70, 0xad, 0x5c, 0x66, 0xfb, 0xd8, 0x4b, 0xac, 0x85, 0x59, 0x4f, 0xa4, 0x0f, + 0x67, 0x09, 0xdb, 0xb2, 0xf6, 0x1d, 0x73, 0xf1, 0x3c, 0xcf, 0x5e, 0x6a, 0x2d, 0xea, 0x2f, 0xfb, + 0x8e, 0x38, 0xac, 0x8b, 0xcd, 0x37, 0x8d, 0xf4, 0xe1, 0x6c, 0x01, 0x69, 0xe5, 0x44, 0xe0, 0x7a, + 0x25, 0xb6, 0x90, 0x8c, 0xd7, 0xcf, 0x08, 0x1e, 0xb2, 0x7d, 0xed, 0x65, 0xd6, 0xe2, 0xa1, 0x99, + 0xf0, 0x98, 0xf2, 0x7a, 0x57, 0x30, 0x6e, 0x33, 0x6b, 0x19, 0x5a, 0xbd, 0x72, 0x0a, 0xb0, 0x49, + 0x7b, 0x3f, 0x6b, 0xb9, 0x44, 0x6a, 0x81, 0x43, 0xb9, 0x63, 0x25, 0x7b, 0xb9, 0xb5, 0x04, 0x50, + 0x9f, 0x57, 0xab, 0xb0, 0x29, 0xe3, 0xe1, 0x08, 0x3e, 0xcd, 0x5c, 0xd3, 0xca, 0x71, 0xc1, 0xbe, + 0x6b, 0x54, 0xf3, 0x6e, 0x85, 0xb3, 0xa3, 0x4d, 0xf3, 0xdb, 0xa1, 0xef, 0xb1, 0xb2, 0xbd, 0xda, + 0xda, 0x2f, 0xef, 0xf6, 0xae, 0x1f, 0xe7, 0x05, 0xe1, 0x07, 0x9a, 0xf6, 0x8c, 0xbd, 0xc2, 0x5a, + 0x32, 0xee, 0x94, 0x6b, 0x7c, 0xd0, 0x0d, 0x05, 0xbb, 0x28, 0x41, 0xed, 0x1e, 0xbf, 0x5c, 0xab, + 0x78, 0xa3, 0x7c, 0x92, 0xed, 0xa1, 0xfe, 0x2e, 0xec, 0xf1, 0x6b, 0x9e, 0x60, 0x37, 0x34, 0xd9, + 0x8b, 0xad, 0xf9, 0xb9, 0x5a, 0x85, 0xdd, 0x88, 0xa7, 0xcc, 0xa6, 0x12, 0xbb, 0x09, 0x4f, 0x43, + 0xae, 0xc7, 0x6e, 0x96, 0x4f, 0xce, 0x34, 0xbb, 0xa5, 0x89, 0x6c, 0xfa, 0xdd, 0x20, 0x14, 0xec, + 0xd6, 0x26, 0x9b, 0x59, 0x4b, 0x07, 0x02, 0xbf, 0x56, 0xed, 0xf1, 0xbd, 0x82, 0x23, 0xd8, 0x6d, + 0x4d, 0xf6, 0x4a, 0xcb, 0xca, 0x94, 0x4a, 0x47, 0xad, 0x77, 0x45, 0xc6, 0x2b, 0xb2, 0xdb, 0x9b, + 0x28, 0xa4, 0x02, 0x36, 0x04, 0xec, 0x8e, 0xa8, 0xc2, 0x77, 0xfc, 0x80, 0xdd, 0x29, 0xe3, 0x8a, + 0x22, 0xbb, 0xab, 0xc9, 0x5e, 0x4a, 0x79, 0x2d, 0x16, 0xf9, 0x26, 0x76, 0x37, 0xec, 0x64, 0x63, + 0xc4, 0xaf, 0xb2, 0xdf, 0xc1, 0x4e, 0xb6, 0x73, 0x4e, 0xa5, 0xca, 0x7e, 0x0f, 0xed, 0x71, 0x27, + 0x20, 0xe9, 0x3d, 0x4d, 0xf6, 0x32, 0x6b, 0xd1, 0xb8, 0x13, 0x40, 0xb4, 0xbb, 0xc9, 0x5e, 0x6e, + 0x2d, 0x1e, 0x77, 0x02, 0xd7, 0xf1, 0x0a, 0x9c, 0xed, 0x69, 0xb2, 0xf7, 0xb3, 0x96, 0x51, 0x9a, + 0x32, 0xb4, 0x24, 0x64, 0x4a, 0x25, 0x76, 0x6f, 0x93, 0x6d, 0x5b, 0xcb, 0x09, 0xda, 0x30, 0xf1, + 0x5d, 0x5e, 0x10, 0x84, 0xdd, 0xd7, 0x64, 0x27, 0xad, 0xfd, 0x33, 0xd5, 0x6a, 0xe0, 0x4f, 0x23, + 0x25, 0x7a, 0xca, 0xb0, 0xfb, 0xc1, 0x65, 0xd4, 0xdf, 0x3c, 0x5c, 0xab, 0x4c, 0xf0, 0x80, 0x6d, + 0x6b, 0xb6, 0x97, 0x58, 0x0b, 0x46, 0x1d, 0xef, 0x68, 0xb6, 0xbd, 0x99, 0x44, 0xbd, 0xdc, 0x0b, + 0x39, 0xda, 0x3b, 0x9a, 0x29, 0x74, 0x4f, 0xad, 0xc2, 0xc9, 0x9a, 0xed, 0x6c, 0xa6, 0x04, 0x8d, + 0xf0, 0xa0, 0xc0, 0x3d, 0x01, 0x85, 0x5d, 0xcd, 0x94, 0xbe, 0x61, 0xe1, 0x96, 0x39, 0xbb, 0x0a, + 0x7e, 0x06, 0xb9, 0x53, 0x64, 0x57, 0x37, 0x53, 0x16, 0x06, 0x9d, 0x12, 0xbb, 0xa6, 0x99, 0x3a, + 0x8a, 0xfc, 0x62, 0xe0, 0xd8, 0xb5, 0x08, 0x31, 0xe8, 0xe8, 0xf6, 0x75, 0x08, 0x31, 0x2c, 0xa6, + 0x64, 0xf3, 0x7a, 0xe8, 0xd7, 0x57, 0x1a, 0x76, 0xee, 0xf0, 0x21, 0x57, 0x4f, 0x58, 0xcb, 0x63, + 0x6b, 0x8f, 0xbd, 0xd2, 0x5a, 0x3a, 0xe6, 0x85, 0x55, 0x5e, 0x70, 0x27, 0x5d, 0x5e, 0x64, 0xfb, + 0x50, 0x71, 0xf6, 0x38, 0xa1, 0xc8, 0x7a, 0x22, 0x13, 0x66, 0x3d, 0xc1, 0x12, 0x54, 0x9c, 0x06, + 0x19, 0xe5, 0x4e, 0x99, 0xcd, 0xb3, 0xf7, 0xb7, 0x56, 0x1a, 0x48, 0xd5, 0xfb, 0x7c, 0x7b, 0x95, + 0xc5, 0x0c, 0xa8, 0x4b, 0x7b, 0x41, 0xcc, 0x1a, 0x05, 0xba, 0x90, 0x2a, 0xb2, 0xae, 0xa8, 0x2b, + 0x7e, 0xdf, 0x98, 0x26, 0x6a, 0x77, 0x91, 0x86, 0x28, 0xaa, 0x64, 0x63, 0xd9, 0xb6, 0xb5, 0xa2, + 0x0e, 0x81, 0xce, 0x52, 0x1d, 0x59, 0x62, 0x8a, 0xcf, 0x32, 0x1d, 0x46, 0xa2, 0x9a, 0xd0, 0xf2, + 0xb8, 0x03, 0x30, 0x5a, 0x61, 0x1f, 0x60, 0xd9, 0x11, 0x55, 0x4d, 0x69, 0x65, 0x5c, 0x17, 0x9c, + 0x98, 0x0e, 0xa6, 0x1c, 0x4a, 0x5a, 0xab, 0x74, 0x30, 0x83, 0x82, 0xd9, 0x6a, 0xbb, 0xc9, 0xda, + 0x3f, 0x06, 0x2b, 0x72, 0x07, 0xd8, 0x49, 0x6b, 0x55, 0x4c, 0xa0, 0xf9, 0x35, 0xcd, 0xf2, 0x04, + 0x8a, 0x49, 0xfb, 0x40, 0x6b, 0x75, 0xdc, 0x40, 0xb3, 0x3c, 0x70, 0x96, 0x05, 0x88, 0xae, 0xd1, + 0x83, 0x24, 0x43, 0x4a, 0x9e, 0x6b, 0x35, 0x7b, 0x0d, 0x82, 0x66, 0xb3, 0xee, 0xbf, 0x46, 0x15, + 0xcb, 0x16, 0x4d, 0x5f, 0xe3, 0x9a, 0x64, 0x6b, 0xa3, 0x1b, 0x70, 0x3c, 0x58, 0x77, 0xca, 0xa8, + 0x6b, 0x8a, 0x6d, 0x8d, 0xfa, 0x60, 0xf8, 0x35, 0x3d, 0xbc, 0x64, 0x2d, 0xf9, 0x75, 0xe8, 0x8c, + 0x4b, 0x08, 0xec, 0xbe, 0xae, 0x8d, 0x25, 0xa6, 0xb8, 0x1d, 0xa2, 0x7b, 0x2d, 0x51, 0xcd, 0xec, + 0x1b, 0x71, 0x07, 0xe0, 0xf5, 0xff, 0x74, 0xf7, 0x94, 0xaa, 0x66, 0xf5, 0xff, 0xe3, 0xba, 0xe0, + 0xd4, 0x69, 0x92, 0xa9, 0xb4, 0x24, 0xaf, 0x2e, 0xed, 0xa2, 0x0e, 0x83, 0xdb, 0x61, 0x66, 0x1c, + 0x0d, 0xae, 0xf8, 0x1d, 0x6e, 0x06, 0xcc, 0x48, 0x34, 0xc7, 0x6f, 0xce, 0x76, 0x06, 0x9e, 0x69, + 0x7b, 0x8d, 0x75, 0x40, 0x83, 0x89, 0xe6, 0xda, 0x3d, 0xdb, 0x06, 0x7c, 0xbf, 0xa5, 0x73, 0x88, + 0x55, 0x0c, 0x5c, 0xff, 0x49, 0x77, 0x4b, 0x42, 0xe0, 0xf9, 0xcf, 0x3a, 0x87, 0x12, 0x53, 0x1c, + 0xff, 0x45, 0x77, 0x56, 0xa2, 0x9a, 0xdf, 0xbf, 0xc6, 0x1d, 0x80, 0xdb, 0xbf, 0xe9, 0xf8, 0x4a, + 0x55, 0xf3, 0xca, 0xc4, 0x75, 0xc1, 0x69, 0x3d, 0x2d, 0x6d, 0x3d, 0xbe, 0x53, 0xe6, 0x61, 0x81, + 0x13, 0xa3, 0xd7, 0x5b, 0x68, 0x9d, 0xd5, 0x08, 0x08, 0xbd, 0xd1, 0x62, 0xaf, 0xb2, 0x56, 0x6a, + 0x48, 0x47, 0x7e, 0xb3, 0xc5, 0xde, 0xdf, 0x5a, 0xa1, 0x51, 0xc5, 0xf2, 0xad, 0x98, 0x35, 0xd8, + 0xbc, 0xdd, 0x62, 0xaf, 0xb6, 0x98, 0xb1, 0xd6, 0x64, 0xfe, 0x12, 0xd3, 0x04, 0x97, 0xbf, 0xb6, + 0xd0, 0x6b, 0x78, 0x30, 0x4f, 0x34, 0x8a, 0xf4, 0x76, 0x1e, 0xcc, 0x23, 0x3e, 0xa7, 0xb7, 0xe4, + 0x60, 0xbe, 0xfe, 0x06, 0x5e, 0x66, 0x2d, 0x1e, 0xcc, 0xab, 0x88, 0x25, 0xa9, 0x88, 0x50, 0x53, + 0xf6, 0x0a, 0xcb, 0x1a, 0xcc, 0x9b, 0x18, 0xae, 0x94, 0xc1, 0xf9, 0x77, 0xe1, 0xbb, 0x8f, 0x7c, + 0x7b, 0x80, 0xfb, 0xe0, 0xdb, 0x87, 0xef, 0x3e, 0xed, 0xbb, 0x0a, 0xdf, 0x7d, 0xca, 0xf7, 0x31, + 0x52, 0x11, 0xbe, 0x03, 0xf8, 0xee, 0x33, 0xbe, 0x43, 0x29, 0x83, 0x6f, 0x41, 0xbe, 0x07, 0xc0, + 0x7b, 0x9a, 0xe0, 0x01, 0xc9, 0x7b, 0x86, 0x7c, 0x0f, 0x18, 0xde, 0xdf, 0x23, 0xdf, 0x03, 0x9a, + 0xf7, 0x7f, 0x4a, 0x45, 0xf8, 0xfe, 0x2f, 0xf2, 0x3d, 0x50, 0xe7, 0xfd, 0xdf, 0x52, 0x06, 0xdf, + 0xff, 0x23, 0x5f, 0xce, 0xdc, 0x11, 0x1c, 0xcb, 0x2d, 0xfb, 0x08, 0x89, 0xd3, 0x08, 0x02, 0x7d, + 0x8c, 0x01, 0xd2, 0x90, 0x8e, 0xf7, 0x09, 0x06, 0x48, 0xa3, 0x2a, 0xec, 0xa7, 0x31, 0x6b, 0x44, + 0xff, 0xac, 0x85, 0x5e, 0x45, 0x83, 0x5c, 0x2e, 0xe7, 0xec, 0xf3, 0x16, 0xbc, 0xa9, 0xb8, 0x5a, + 0x4a, 0xd9, 0x17, 0xb0, 0x40, 0x5b, 0x7b, 0xfe, 0xb2, 0x85, 0x48, 0x01, 0x52, 0x6e, 0xff, 0x5e, + 0x37, 0x82, 0xcf, 0x63, 0x5b, 0x49, 0x23, 0xeb, 0x09, 0x1e, 0x6c, 0x72, 0xca, 0xe4, 0xf6, 0xb8, + 0x56, 0x72, 0xa3, 0x11, 0x78, 0x3e, 0xbe, 0x95, 0xde, 0xa2, 0x03, 0x18, 0x93, 0xe3, 0x13, 0xb4, + 0x11, 0x18, 0x90, 0x83, 0x72, 0x02, 0x76, 0x38, 0x03, 0x66, 0x54, 0x4e, 0x4c, 0x10, 0xc3, 0x01, + 0x3d, 0x2c, 0x27, 0x29, 0x5d, 0x44, 0x3a, 0x39, 0x41, 0x6f, 0xce, 0x81, 0xfa, 0xc0, 0x9c, 0xa2, + 0xa4, 0xc8, 0xde, 0xa9, 0xd8, 0x1b, 0xf5, 0x6d, 0xa4, 0x10, 0x67, 0x42, 0xd0, 0xb7, 0x11, 0x21, + 0xce, 0x42, 0x88, 0xbe, 0x8d, 0x3a, 0xc4, 0xd9, 0x08, 0xd1, 0xb7, 0x51, 0x85, 0x38, 0x47, 0xe9, + 0x22, 0xc4, 0xb9, 0x08, 0xd1, 0xb7, 0xd1, 0x84, 0x38, 0x4f, 0x49, 0x11, 0xe2, 0x7c, 0x84, 0x18, + 0x46, 0x2f, 0x2e, 0x84, 0x60, 0x58, 0xf6, 0x42, 0xee, 0xd3, 0x86, 0x4d, 0x2f, 0xb6, 0x20, 0xc4, + 0xb0, 0xee, 0xc5, 0xc5, 0x4a, 0x17, 0x21, 0x2e, 0x41, 0x88, 0xe1, 0x7a, 0x2f, 0x2e, 0x55, 0x52, + 0x84, 0xb8, 0x4c, 0x7a, 0xaa, 0x95, 0xcb, 0xb2, 0x27, 0x5b, 0xa5, 0x36, 0xda, 0x08, 0xb5, 0x2d, + 0x41, 0x3b, 0x21, 0x09, 0xe8, 0x70, 0xdb, 0x69, 0x33, 0xb0, 0x4c, 0x62, 0x2a, 0xe4, 0x8e, 0x88, + 0x1d, 0xc2, 0xee, 0x4c, 0x50, 0x89, 0x28, 0x3b, 0x1d, 0x7a, 0x57, 0x44, 0x0b, 0xe1, 0xaf, 0x02, + 0xf1, 0x91, 0x72, 0x4d, 0xae, 0x4f, 0xbb, 0x13, 0xd8, 0x0e, 0x95, 0x6b, 0x66, 0x11, 0xda, 0x93, + 0xa0, 0x8d, 0x1b, 0x21, 0xc4, 0xee, 0x3e, 0xb0, 0x1d, 0x72, 0x3d, 0xa5, 0x7f, 0x3f, 0x88, 0xa0, + 0xad, 0x0d, 0x1e, 0x80, 0x47, 0x40, 0x64, 0xf1, 0x47, 0xa9, 0x51, 0x2b, 0x0b, 0xb7, 0x5a, 0x9e, + 0x81, 0xd1, 0x83, 0x09, 0x2a, 0x69, 0x0d, 0x69, 0xbb, 0x87, 0x10, 0x5a, 0xa3, 0x64, 0xfa, 0x27, + 0x90, 0xed, 0x75, 0x37, 0xb9, 0x45, 0xb9, 0x58, 0x3d, 0x8c, 0x54, 0x48, 0x40, 0x9b, 0x3d, 0x92, + 0x50, 0xb5, 0x27, 0x61, 0xb2, 0x7b, 0x34, 0x41, 0xab, 0x92, 0x81, 0xb4, 0xe6, 0x63, 0xe8, 0xc9, + 0x90, 0x5f, 0x84, 0xaf, 0xc7, 0xe1, 0x7c, 0xc8, 0x2f, 0x6a, 0xf1, 0x13, 0x18, 0x95, 0x21, 0xbf, + 0x48, 0x2e, 0x9e, 0x4c, 0xd0, 0x56, 0x33, 0x42, 0x66, 0xcc, 0x0b, 0xdd, 0x92, 0xc7, 0x8b, 0xec, + 0xa9, 0x84, 0x7d, 0x90, 0xd5, 0xa4, 0xf2, 0xa1, 0x51, 0x23, 0x7d, 0x3a, 0x61, 0xaf, 0xb1, 0x56, + 0x37, 0x48, 0x73, 0x52, 0xf6, 0x4c, 0x54, 0x96, 0x8b, 0xdb, 0x3d, 0x8b, 0x78, 0x31, 0x99, 0xb2, + 0x7a, 0x2e, 0x61, 0x7f, 0xc5, 0x3a, 0x40, 0xd2, 0x9a, 0x15, 0xee, 0xf9, 0x84, 0x7d, 0xa0, 0xb5, + 0x2a, 0x2e, 0x54, 0x76, 0x2f, 0x44, 0x44, 0x0d, 0xc1, 0x5e, 0x4c, 0xd8, 0x4d, 0x96, 0x1d, 0x15, + 0x29, 0x9b, 0xbd, 0x09, 0xfb, 0xab, 0x56, 0x52, 0x0f, 0xdd, 0xac, 0x68, 0x2f, 0x49, 0x2a, 0x0d, + 0x62, 0x65, 0xfb, 0x72, 0x4c, 0xd8, 0x10, 0xf1, 0x15, 0x49, 0x26, 0x26, 0x54, 0x76, 0x7f, 0x4e, + 0xd8, 0x6d, 0xd6, 0x5a, 0x2d, 0xea, 0xf7, 0x83, 0x42, 0xdd, 0xce, 0xd8, 0xbf, 0x9a, 0xb0, 0x5b, + 0xad, 0x83, 0xe6, 0x56, 0x52, 0x7e, 0x5e, 0x9b, 0x43, 0xa5, 0x81, 0xc5, 0xeb, 0x50, 0x89, 0x96, + 0xca, 0xac, 0x40, 0x6f, 0x24, 0xec, 0x66, 0x6b, 0xcd, 0x5c, 0x2a, 0x2a, 0xcc, 0x9b, 0x48, 0x51, + 0x54, 0x21, 0xd6, 0x9b, 0xb7, 0x66, 0xd9, 0x37, 0x70, 0x78, 0x1b, 0x55, 0x96, 0x99, 0xc0, 0xdc, + 0xf8, 0x15, 0xa3, 0x8a, 0xcc, 0x4c, 0x84, 0x63, 0xd4, 0xfa, 0xb5, 0x6e, 0xa1, 0x3e, 0x7f, 0xc3, + 0x70, 0x0c, 0x9b, 0x30, 0xf3, 0xea, 0xb7, 0x0c, 0x2f, 0x55, 0xee, 0xd2, 0x92, 0x9b, 0xf7, 0x7b, + 0x79, 0x81, 0xdd, 0x10, 0x87, 0xc8, 0xc9, 0x8d, 0x06, 0xea, 0xe5, 0x05, 0x09, 0xdd, 0x14, 0x87, + 0xc8, 0xf0, 0x66, 0x86, 0x43, 0x10, 0x77, 0xe5, 0x62, 0x7d, 0x0b, 0xa3, 0x79, 0xd5, 0x5f, 0xf6, + 0xfd, 0xc0, 0xf8, 0xbe, 0xb5, 0x01, 0x23, 0x4f, 0xb7, 0xd5, 0x31, 0xe3, 0xfd, 0xf6, 0x06, 0x8c, + 0x6c, 0xef, 0x60, 0xb4, 0x4a, 0x00, 0x83, 0xff, 0x3b, 0x99, 0x3c, 0x9e, 0xd5, 0x3c, 0x39, 0xf7, + 0xf6, 0x20, 0x3c, 0xda, 0xe4, 0xe2, 0xde, 0x7a, 0x93, 0xac, 0xef, 0x63, 0xf6, 0x01, 0xd6, 0x7e, + 0x68, 0x1e, 0xe9, 0x8a, 0xa9, 0xfe, 0xc0, 0x29, 0xc8, 0xb5, 0x86, 0xd1, 0xb4, 0x8e, 0xe1, 0x64, + 0xfd, 0xc0, 0x6c, 0x98, 0xbc, 0xfc, 0x01, 0xd9, 0x1c, 0xf4, 0x4b, 0x87, 0x66, 0x82, 0x12, 0x7b, + 0x18, 0x21, 0x06, 0xfd, 0x52, 0x57, 0x26, 0x28, 0x85, 0xec, 0x11, 0x86, 0x73, 0x9d, 0x5f, 0xea, + 0x62, 0x8f, 0x32, 0x5a, 0xe2, 0x49, 0x6f, 0x1d, 0x7b, 0x8c, 0xa9, 0x63, 0x63, 0x91, 0x3d, 0xce, + 0xa8, 0x62, 0xe9, 0x91, 0x9c, 0xe6, 0x38, 0x2f, 0xe2, 0xc0, 0x37, 0xc0, 0x3d, 0xf6, 0x04, 0xa3, + 0x93, 0xe0, 0x88, 0xbf, 0x99, 0x3d, 0x09, 0xfd, 0x1e, 0xdf, 0xdb, 0xc4, 0x9e, 0x82, 0x9b, 0x9e, + 0xd1, 0x9e, 0xc3, 0xba, 0xd8, 0xd3, 0x80, 0x69, 0xe0, 0xd9, 0x33, 0xf2, 0xf1, 0x98, 0x40, 0xb0, + 0x67, 0xf1, 0x98, 0x29, 0xf8, 0x21, 0x7b, 0x4e, 0x3e, 0x86, 0xae, 0xc7, 0x9e, 0x07, 0xb1, 0x8c, + 0x70, 0x3c, 0xf0, 0x7c, 0x01, 0x99, 0xa2, 0xa6, 0x24, 0xfa, 0x22, 0x62, 0xf5, 0xf8, 0x21, 0xdb, + 0xab, 0x9e, 0x04, 0x7b, 0x09, 0x3d, 0xeb, 0xe5, 0xa5, 0x80, 0xf3, 0x90, 0xbd, 0x0c, 0xbc, 0x6f, + 0xba, 0xca, 0x5e, 0x61, 0xf6, 0x22, 0x6b, 0xde, 0x48, 0x96, 0xfd, 0x19, 0x0a, 0xa3, 0x4e, 0xd1, + 0x75, 0xbc, 0x90, 0xbd, 0x0a, 0x85, 0x9c, 0xeb, 0xb1, 0xd7, 0xf0, 0x94, 0x77, 0x3c, 0xf6, 0x3a, + 0xa3, 0xb5, 0x36, 0x1f, 0xd4, 0xbc, 0x82, 0x23, 0xb0, 0x66, 0xbe, 0x81, 0x22, 0xd1, 0x08, 0xf2, + 0xfd, 0x26, 0x1d, 0xb1, 0x56, 0x6a, 0x48, 0x97, 0xe1, 0x5b, 0x31, 0xc5, 0x31, 0xd7, 0x13, 0xec, + 0x6d, 0x94, 0xea, 0xa0, 0x5f, 0x72, 0x0b, 0x4e, 0x39, 0xe3, 0x15, 0xd9, 0xe5, 0x49, 0xec, 0x18, + 0x24, 0xb0, 0x21, 0x60, 0x57, 0x24, 0x23, 0x0a, 0xdf, 0xf1, 0x03, 0x76, 0x65, 0x92, 0xe2, 0x8f, + 0x79, 0x4e, 0x30, 0x33, 0xec, 0x63, 0x67, 0xb2, 0x35, 0x49, 0xc1, 0x34, 0xa2, 0x83, 0x6d, 0x4b, + 0x52, 0x30, 0x8d, 0x82, 0xd5, 0xf6, 0x18, 0xf4, 0xed, 0xdc, 0x86, 0x61, 0xb6, 0x23, 0x49, 0x25, + 0x08, 0xc8, 0xbc, 0x76, 0x76, 0x26, 0xe9, 0xed, 0x57, 0xc7, 0x60, 0xbb, 0x2b, 0x49, 0x95, 0x55, + 0x07, 0x75, 0x98, 0xab, 0xe0, 0x40, 0xb5, 0xb2, 0x21, 0xee, 0x9c, 0xae, 0x86, 0x03, 0xfd, 0xe2, + 0x54, 0xe0, 0x35, 0xe8, 0x08, 0xf9, 0x52, 0xc0, 0xb5, 0x60, 0x23, 0x5f, 0xc1, 0x0a, 0xba, 0x0e, + 0x3a, 0xf4, 0x0a, 0x56, 0xc0, 0xf5, 0xc8, 0x46, 0xd6, 0x13, 0xaa, 0xfd, 0x43, 0x28, 0xd0, 0xdb, + 0x57, 0x01, 0x3f, 0x82, 0x82, 0xbc, 0x8e, 0xc9, 0xb9, 0x25, 0xf6, 0xe3, 0x24, 0xd5, 0x04, 0x6e, + 0x63, 0xa8, 0xf9, 0x13, 0x2d, 0xfe, 0x8e, 0x8f, 0xf6, 0x4f, 0x75, 0x7b, 0x98, 0x97, 0xa8, 0xfd, + 0xb3, 0xba, 0xff, 0x7c, 0x50, 0xe3, 0xec, 0xe7, 0x11, 0x92, 0x00, 0x7e, 0x11, 0xef, 0x1e, 0xb0, + 0x5f, 0x42, 0x09, 0x46, 0xfd, 0x4e, 0x39, 0xe4, 0xec, 0x57, 0x18, 0x12, 0x69, 0x25, 0x91, 0x5f, + 0xcb, 0x0c, 0x68, 0x33, 0x09, 0xfe, 0x46, 0x0e, 0x2d, 0x9f, 0x14, 0xb9, 0x29, 0x77, 0x52, 0xb0, + 0x1b, 0x64, 0x30, 0xb7, 0x34, 0xa5, 0x80, 0x1b, 0x91, 0x63, 0xc3, 0x86, 0x66, 0x0f, 0x3a, 0xf9, + 0xfb, 0x24, 0xbd, 0x74, 0xea, 0xac, 0x8c, 0xe0, 0x9e, 0x24, 0xbd, 0x16, 0x63, 0xec, 0x8c, 0x6c, + 0x37, 0x8c, 0xea, 0x2c, 0x8d, 0x60, 0x4f, 0x92, 0xde, 0x97, 0x11, 0xb6, 0x46, 0x72, 0x6f, 0x92, + 0xde, 0x43, 0x71, 0xd6, 0x46, 0x78, 0x9f, 0xce, 0xac, 0xbc, 0x51, 0xfb, 0x2d, 0x7a, 0x38, 0xc0, + 0xc5, 0x88, 0x13, 0x38, 0x15, 0xb5, 0x91, 0xba, 0x29, 0x89, 0x3d, 0x26, 0x17, 0xe3, 0x4e, 0xc0, + 0x6e, 0x46, 0x63, 0xd4, 0xdf, 0x4c, 0x89, 0xbe, 0x05, 0x8d, 0x9c, 0x94, 0xdc, 0x8a, 0xa4, 0xe2, + 0x86, 0xc7, 0xd4, 0xd1, 0x6d, 0xf0, 0xa7, 0x30, 0xbd, 0xe5, 0xba, 0x3d, 0x69, 0xae, 0xf8, 0x50, + 0x99, 0x77, 0x20, 0x63, 0xb2, 0x8d, 0xf2, 0xbd, 0x33, 0x02, 0xa0, 0x4c, 0xef, 0x42, 0x51, 0x49, + 0x40, 0x91, 0xba, 0x3b, 0xa2, 0x83, 0xdd, 0xdd, 0xef, 0x92, 0xb4, 0xde, 0x64, 0x3d, 0xf2, 0xb8, + 0xad, 0x99, 0x78, 0x65, 0x3d, 0x39, 0x3f, 0x9a, 0x65, 0x35, 0x68, 0x4e, 0xf2, 0xbe, 0x2b, 0xeb, + 0x29, 0x47, 0x3b, 0x95, 0x2e, 0x9c, 0xec, 0x6a, 0x96, 0x45, 0x60, 0xb8, 0x5e, 0xa5, 0xa4, 0xd8, + 0x1a, 0x5e, 0x2d, 0x3d, 0x4d, 0x52, 0xe6, 0x28, 0xcc, 0x49, 0x2d, 0xd0, 0x46, 0x1b, 0xa1, 0x4e, + 0x6e, 0xa1, 0x14, 0x48, 0x40, 0x87, 0x3b, 0x05, 0x27, 0x0a, 0x89, 0xa9, 0x90, 0xa7, 0x46, 0xec, + 0x10, 0xf6, 0x34, 0x1c, 0x5e, 0x94, 0x9d, 0x0e, 0x7d, 0x7a, 0x0b, 0x3a, 0x34, 0x49, 0x91, 0xce, + 0x68, 0x01, 0x8d, 0x49, 0x44, 0x39, 0xb3, 0x45, 0xd2, 0xd0, 0x11, 0xce, 0xc2, 0x91, 0x26, 0x3b, + 0xa9, 0xbc, 0x9f, 0xad, 0x74, 0xe1, 0xf9, 0x1c, 0x15, 0xca, 0x78, 0x3d, 0x37, 0x12, 0x1b, 0x9d, + 0x3a, 0x4f, 0xa9, 0xcb, 0xed, 0x3d, 0xce, 0x3a, 0x3d, 0x4e, 0xc8, 0x8f, 0x9c, 0xe2, 0x48, 0xe5, + 0x3b, 0xf2, 0xe4, 0xaa, 0x10, 0xc4, 0x7f, 0x57, 0x9e, 0x90, 0x15, 0xa4, 0x59, 0xfc, 0x4d, 0x9e, + 0x90, 0x15, 0xaa, 0xb8, 0xbc, 0x17, 0xb3, 0x06, 0xa3, 0xf7, 0xe5, 0x09, 0x59, 0x5b, 0x6b, 0x5e, + 0x1f, 0xc4, 0x34, 0x41, 0xe6, 0x43, 0x50, 0xcd, 0xa0, 0x9a, 0x82, 0x99, 0xaa, 0x60, 0x17, 0xb4, + 0x29, 0xa0, 0xcf, 0x93, 0xc0, 0x85, 0x6d, 0x78, 0x6b, 0xfb, 0x15, 0x7c, 0x5d, 0x62, 0x17, 0xb5, + 0xe1, 0xc6, 0xb7, 0xf7, 0x9b, 0x6c, 0x0b, 0x04, 0x23, 0x4e, 0x18, 0x6e, 0xf6, 0x83, 0x22, 0xbb, + 0xb8, 0x0d, 0x53, 0xd9, 0xf1, 0x8a, 0x7e, 0x45, 0x5e, 0x7c, 0x5f, 0xd2, 0x86, 0xd7, 0xd0, 0x11, + 0x99, 0x43, 0xd9, 0xa5, 0xfa, 0xb1, 0x8b, 0x5d, 0x86, 0x00, 0x63, 0x5e, 0x41, 0x7b, 0xbc, 0xbc, + 0x8d, 0xa6, 0x5b, 0x1d, 0xe0, 0xc5, 0x41, 0xee, 0x95, 0xc4, 0x14, 0xbb, 0xa2, 0x8d, 0xe8, 0xd6, + 0xb9, 0x65, 0xc7, 0xd9, 0x95, 0x1a, 0x52, 0xec, 0xb2, 0xe3, 0x6c, 0x6b, 0x1b, 0x8e, 0x4e, 0x5e, + 0xc1, 0x2f, 0x72, 0xb6, 0x0d, 0x8d, 0x5e, 0x8e, 0xc6, 0x76, 0x50, 0xcd, 0x0d, 0x1d, 0xc6, 0x76, + 0x80, 0x6a, 0xaf, 0x23, 0x9c, 0x09, 0x27, 0xe4, 0xec, 0xda, 0x36, 0xec, 0x14, 0xb0, 0x33, 0xf0, + 0x37, 0x87, 0xec, 0x3a, 0x50, 0xef, 0xa9, 0x05, 0x01, 0xf7, 0xc4, 0x58, 0xc8, 0x03, 0x76, 0x3d, + 0xf8, 0xe2, 0xf1, 0x87, 0x6d, 0xf2, 0x5a, 0xc1, 0xf3, 0x38, 0x3e, 0x6c, 0x64, 0x7b, 0xd9, 0x8f, + 0x00, 0x0d, 0xe2, 0x78, 0x1b, 0xf2, 0x40, 0x64, 0x7b, 0xd9, 0x8f, 0xd1, 0x89, 0x28, 0x44, 0xd3, + 0x3f, 0xdb, 0xcb, 0x7e, 0xd2, 0x86, 0x2b, 0x68, 0x1e, 0x84, 0x34, 0x02, 0x3f, 0x45, 0x24, 0x79, + 0x21, 0x2f, 0x91, 0x9f, 0xb5, 0xc9, 0x6d, 0xc8, 0x66, 0xb9, 0x38, 0xfc, 0xbc, 0x8d, 0x0a, 0x32, + 0x57, 0xe6, 0xbc, 0xca, 0xee, 0x69, 0x93, 0xfb, 0x85, 0xc2, 0xd1, 0x6c, 0xb7, 0x4c, 0x2e, 0x2f, + 0x73, 0x27, 0xe4, 0x40, 0xf6, 0xb4, 0x51, 0x81, 0xe8, 0x4b, 0x3f, 0x6f, 0x46, 0xde, 0xfa, 0xde, + 0xdb, 0x46, 0x03, 0x6f, 0x6e, 0x89, 0x34, 0x7c, 0x5f, 0x9b, 0x3a, 0x3c, 0x1b, 0xe4, 0x7e, 0x74, + 0x81, 0x56, 0x02, 0x03, 0x3d, 0x00, 0x08, 0x97, 0x9d, 0x1a, 0xfa, 0x43, 0x1b, 0xd5, 0x9b, 0xba, + 0xb6, 0xd3, 0xe0, 0x1f, 0xa1, 0x87, 0x5b, 0x33, 0x0d, 0x3d, 0xd8, 0x26, 0xa7, 0x3b, 0x17, 0x19, + 0xe1, 0x7b, 0xec, 0x21, 0xd3, 0x1c, 0x16, 0xbe, 0xc3, 0xfe, 0xd4, 0x26, 0x17, 0x07, 0x2e, 0xd2, + 0x10, 0x3f, 0x5c, 0x6f, 0x43, 0xfe, 0x08, 0x06, 0x2d, 0x1b, 0x66, 0x47, 0x36, 0x1d, 0xce, 0x1e, + 0x85, 0x77, 0xd9, 0xa0, 0xa2, 0x73, 0x04, 0x7b, 0x2c, 0x02, 0x0d, 0x39, 0xd5, 0x2a, 0x2f, 0xb2, + 0xc7, 0xeb, 0x26, 0x69, 0xf6, 0x84, 0x1c, 0xac, 0xb1, 0x6c, 0x2f, 0x7b, 0x12, 0xc5, 0x35, 0xee, + 0x0a, 0x1e, 0x86, 0x47, 0x38, 0xe1, 0x14, 0x7b, 0x4a, 0x29, 0x42, 0xfa, 0x34, 0x02, 0x53, 0xf6, + 0x73, 0x53, 0x4e, 0x50, 0x64, 0xcf, 0xb4, 0x99, 0xef, 0x14, 0xae, 0x87, 0xb7, 0xda, 0xb3, 0x92, + 0x79, 0xd9, 0x3d, 0x9a, 0x53, 0xf3, 0xd1, 0x56, 0x6c, 0xe7, 0x54, 0xeb, 0xb1, 0x56, 0x6c, 0x28, + 0x79, 0x89, 0x4f, 0x57, 0xa9, 0xfd, 0x78, 0x2b, 0xad, 0x44, 0xb2, 0x3d, 0x96, 0xef, 0xff, 0x16, + 0x61, 0x4f, 0x44, 0x30, 0x6d, 0xf7, 0x64, 0x2b, 0xb6, 0x96, 0x06, 0xd3, 0xba, 0x4f, 0xb5, 0x52, + 0x76, 0x25, 0x8e, 0xa5, 0x92, 0xc0, 0xa7, 0x5b, 0xe5, 0x1b, 0xcb, 0x80, 0x5a, 0xfb, 0x99, 0x56, + 0xec, 0x38, 0x21, 0x18, 0xe5, 0xd5, 0xb2, 0x53, 0x80, 0xf3, 0x67, 0x5b, 0xb1, 0x65, 0x8c, 0xc2, + 0xda, 0xe2, 0xb9, 0x56, 0x2a, 0x11, 0xc5, 0xb7, 0x36, 0x11, 0xca, 0x00, 0xcf, 0xb7, 0xca, 0x97, + 0x58, 0x1d, 0xd5, 0xfa, 0x2f, 0x80, 0x0f, 0x2d, 0x0b, 0x7d, 0xd3, 0x22, 0x70, 0x0a, 0x74, 0x8a, + 0x60, 0xa7, 0xb5, 0x6b, 0x70, 0xcc, 0x3b, 0xa6, 0xe6, 0x0b, 0x04, 0x3d, 0xbd, 0x9d, 0x12, 0x47, + 0x60, 0x7e, 0xa6, 0x0a, 0xe4, 0x8c, 0x76, 0xbd, 0xbd, 0xc8, 0x71, 0xd8, 0x9d, 0xd9, 0xae, 0x3f, + 0xa5, 0xc8, 0x09, 0x41, 0xd8, 0x59, 0xc6, 0x57, 0xa4, 0x03, 0x67, 0x1b, 0xc5, 0x51, 0x5e, 0xf1, + 0x37, 0x01, 0x3b, 0xa7, 0x5d, 0x7f, 0x9a, 0x19, 0xe2, 0x41, 0x09, 0xd0, 0xb9, 0xed, 0xf1, 0x4f, + 0x33, 0x84, 0x9d, 0xd7, 0x1e, 0xfb, 0x82, 0x43, 0xd0, 0xf9, 0xed, 0x94, 0x25, 0x82, 0xc6, 0x9d, + 0xb2, 0x5b, 0x04, 0x21, 0xb7, 0xc4, 0xbe, 0xdf, 0x4e, 0xa9, 0xa0, 0x56, 0x8f, 0xef, 0x09, 0xc7, + 0xf5, 0x42, 0x42, 0x7f, 0xd0, 0x4e, 0xb9, 0xae, 0x7f, 0x01, 0xaa, 0x56, 0xb9, 0xdc, 0x0b, 0x5d, + 0x10, 0x17, 0xd4, 0x7b, 0x70, 0x61, 0x3b, 0x0d, 0xa5, 0x21, 0x36, 0xe2, 0x88, 0xc2, 0x14, 0xe1, + 0x17, 0xb5, 0xd3, 0x28, 0xd4, 0xf1, 0x80, 0x87, 0x3c, 0x90, 0x7d, 0xd9, 0xd2, 0x4e, 0xf9, 0x8e, + 0x86, 0x1e, 0x71, 0x04, 0x8c, 0x2e, 0x36, 0x5d, 0x1a, 0x09, 0xb8, 0x10, 0xe0, 0x7f, 0x89, 0xe9, + 0xd2, 0x46, 0x9d, 0xec, 0x4b, 0x8d, 0x5a, 0x8e, 0x3b, 0x81, 0x8c, 0x77, 0x99, 0x21, 0x98, 0x13, + 0x7e, 0xe0, 0x50, 0x8a, 0xbe, 0x07, 0xe5, 0xcb, 0x8d, 0x7d, 0x2f, 0xaf, 0xca, 0x30, 0x57, 0x98, + 0xc1, 0xfa, 0x77, 0x3e, 0x83, 0x7e, 0x5f, 0x69, 0x3c, 0xca, 0x95, 0x96, 0xb0, 0xad, 0x26, 0x71, + 0xa4, 0x85, 0x73, 0x00, 0xc1, 0xdb, 0x4c, 0x20, 0xe4, 0x53, 0x2e, 0x05, 0x24, 0xd8, 0x1e, 0x17, + 0x6c, 0x10, 0x53, 0x3c, 0x80, 0xc5, 0x8e, 0x46, 0x6a, 0xfd, 0x01, 0x07, 0xb5, 0x9d, 0x66, 0x0c, + 0x86, 0x78, 0x65, 0x82, 0x07, 0x1b, 0x26, 0x09, 0xdd, 0x05, 0xc2, 0xe3, 0xbc, 0x90, 0x09, 0xf3, + 0x7c, 0x1a, 0x49, 0xfe, 0x10, 0x65, 0x32, 0xce, 0x0b, 0xfd, 0x81, 0x5f, 0xd1, 0xe0, 0x47, 0x28, + 0xb0, 0x71, 0x5e, 0xe8, 0x75, 0x2b, 0x88, 0xf3, 0x31, 0x08, 0x8f, 0xf3, 0xc2, 0xe0, 0xa1, 0xbd, + 0x6e, 0x28, 0x1c, 0x4f, 0x96, 0xd3, 0x27, 0x06, 0xee, 0x8a, 0xc2, 0x9f, 0xb6, 0xd3, 0x11, 0x79, + 0x9c, 0x17, 0x86, 0x79, 0xc9, 0x11, 0xee, 0x26, 0x9e, 0xf5, 0x3c, 0x1e, 0x8c, 0x04, 0x7e, 0xb1, + 0x26, 0x6b, 0xe9, 0x33, 0x8c, 0xe0, 0x38, 0x2f, 0xf4, 0xf8, 0xa1, 0xeb, 0xf1, 0xa8, 0xed, 0xe7, + 0x9a, 0xe2, 0x60, 0xd7, 0xb0, 0x1f, 0x54, 0x08, 0xfa, 0xa2, 0xdd, 0x5e, 0x6b, 0x1d, 0x18, 0xfd, + 0xa6, 0x11, 0xff, 0xc0, 0x7a, 0x73, 0x07, 0xed, 0x07, 0x49, 0x1e, 0xc3, 0xe5, 0x15, 0xfd, 0x2d, + 0x1d, 0xf6, 0x41, 0x56, 0xd3, 0x1c, 0x42, 0xbc, 0xf9, 0x6f, 0xed, 0xd0, 0xae, 0x1b, 0xa4, 0xea, + 0x75, 0x7f, 0x5b, 0x07, 0xf5, 0x64, 0x0e, 0xb9, 0xde, 0x24, 0xdc, 0xfe, 0x8f, 0xdc, 0x63, 0x6b, + 0x70, 0x47, 0x87, 0xdd, 0x62, 0x7d, 0x65, 0x2e, 0x73, 0xbd, 0x4b, 0xb8, 0xf3, 0x1f, 0xd9, 0x63, + 0xc3, 0x70, 0x57, 0x87, 0xfd, 0x7f, 0xac, 0x96, 0x39, 0xa4, 0xf1, 0x04, 0xdc, 0xdd, 0x41, 0x13, + 0x65, 0xa4, 0x5c, 0x6b, 0xc0, 0x2f, 0xe8, 0xc0, 0x2d, 0x10, 0x9d, 0x83, 0xe2, 0x82, 0x0b, 0x3b, + 0x68, 0x43, 0xae, 0xef, 0xbe, 0xe2, 0xb2, 0x8b, 0x20, 0x8b, 0xc7, 0xd3, 0xaf, 0x9e, 0x2d, 0x90, + 0xe9, 0x5b, 0xff, 0xb8, 0xdd, 0xc5, 0x1d, 0x54, 0x71, 0x83, 0xf9, 0x38, 0x7a, 0x89, 0x44, 0xfb, + 0xe2, 0xe8, 0xa5, 0x40, 0x07, 0x1a, 0x74, 0x2f, 0x83, 0x77, 0x7d, 0xb9, 0x1d, 0x97, 0x5d, 0x8e, + 0xae, 0xe0, 0x86, 0x3a, 0x2e, 0xb8, 0x42, 0xba, 0x6a, 0x08, 0x70, 0x25, 0xd0, 0xbe, 0x8d, 0x71, + 0x74, 0x2b, 0xd0, 0xe1, 0x06, 0xdd, 0x6d, 0x1d, 0xb4, 0x66, 0xc8, 0x0b, 0xd3, 0xb8, 0x64, 0x3b, + 0x24, 0x31, 0x4c, 0x9d, 0xe7, 0x76, 0xcc, 0x25, 0xc1, 0xa9, 0x6b, 0x67, 0x87, 0x2a, 0xed, 0xa8, + 0x44, 0x1e, 0xac, 0x76, 0xa1, 0x1a, 0xe6, 0x30, 0x32, 0x87, 0x97, 0xab, 0x3a, 0xec, 0x56, 0xeb, + 0xa0, 0xb9, 0x8c, 0x8d, 0xca, 0xd5, 0x88, 0x2c, 0xb7, 0xbb, 0x71, 0xb6, 0xd7, 0xa0, 0x77, 0xd9, + 0xc9, 0x38, 0x7a, 0xad, 0x1c, 0x32, 0xb5, 0x0d, 0x8d, 0xcb, 0xae, 0xeb, 0xa0, 0xb9, 0xd6, 0x9f, + 0xcf, 0x0d, 0xd1, 0xd2, 0x7a, 0x24, 0x6d, 0x2c, 0x1f, 0xea, 0xc0, 0x41, 0xd2, 0x11, 0xbc, 0xdf, + 0x0f, 0x2a, 0x0e, 0x66, 0xeb, 0xbb, 0x9d, 0xb4, 0xa6, 0x11, 0x36, 0xe8, 0x0a, 0x1e, 0xd0, 0xd6, + 0xb8, 0x53, 0x6d, 0xf1, 0x78, 0xaf, 0x3b, 0x39, 0xc9, 0xde, 0xeb, 0xd4, 0x77, 0xd5, 0x54, 0xf5, + 0x80, 0xde, 0xef, 0xa4, 0xf1, 0xa2, 0xa6, 0x9c, 0x49, 0x46, 0xf0, 0x41, 0x27, 0x0e, 0x6f, 0xaa, + 0xfe, 0x1b, 0x84, 0x1f, 0x76, 0xda, 0x5f, 0xb5, 0x92, 0x5a, 0xa8, 0xff, 0x1a, 0xf1, 0x47, 0x70, + 0x5a, 0xb7, 0x31, 0x82, 0x8f, 0xe1, 0x54, 0x0a, 0x66, 0x59, 0x7d, 0xd2, 0x49, 0x23, 0xa2, 0x16, + 0xd3, 0x78, 0xbc, 0x4f, 0x3b, 0x69, 0xfd, 0xd2, 0xae, 0x0c, 0xfc, 0x59, 0x27, 0xed, 0x71, 0xa8, + 0x7b, 0xec, 0x73, 0x3c, 0x1e, 0xe1, 0xd7, 0x02, 0xf6, 0x45, 0x27, 0x6e, 0x8f, 0x5d, 0xaf, 0x26, + 0x38, 0xfb, 0xb2, 0x53, 0x1e, 0x14, 0x0b, 0xbe, 0x57, 0x64, 0x7f, 0x47, 0x82, 0x86, 0xdc, 0x42, + 0xe0, 0x2b, 0xe4, 0xd8, 0x14, 0xed, 0x2c, 0x87, 0x7c, 0x4f, 0x4c, 0xb1, 0xe3, 0x52, 0xb8, 0x50, + 0xa7, 0xe7, 0x61, 0xa7, 0xc2, 0xd9, 0xf1, 0x29, 0x5c, 0xd0, 0xfb, 0x9b, 0x69, 0x4c, 0x33, 0x41, + 0x89, 0x9d, 0x90, 0xc2, 0xf5, 0xbf, 0x04, 0xfc, 0x9a, 0x20, 0xec, 0xc4, 0x14, 0x6e, 0x80, 0x9c, + 0x19, 0x98, 0x9c, 0x04, 0x93, 0x5e, 0x67, 0x66, 0xc3, 0xa4, 0xf4, 0x79, 0x32, 0x7c, 0x02, 0x38, + 0x92, 0xf3, 0xa3, 0xd9, 0x29, 0xf5, 0xf6, 0x7f, 0x70, 0x27, 0x60, 0xa7, 0xa6, 0x68, 0x44, 0x48, + 0x44, 0x3e, 0x87, 0x68, 0x83, 0x7e, 0x5a, 0x8a, 0xca, 0x43, 0x43, 0x7e, 0x4d, 0x00, 0x3d, 0x1d, + 0x71, 0x08, 0xed, 0x75, 0x66, 0xd8, 0x19, 0x88, 0x43, 0x2d, 0xe5, 0xe7, 0xcc, 0x14, 0x75, 0x1f, + 0x8f, 0x67, 0xa5, 0x28, 0x57, 0xf4, 0x18, 0x73, 0x7b, 0x76, 0x8a, 0xea, 0x31, 0x0a, 0x6b, 0xd7, + 0xe7, 0x80, 0xd3, 0x00, 0x17, 0xb2, 0x92, 0xd8, 0xb9, 0x29, 0xec, 0x6f, 0x67, 0x42, 0x4a, 0x2c, + 0xee, 0xf1, 0xc2, 0x2a, 0x3b, 0x2f, 0x45, 0x4b, 0x57, 0x04, 0xf4, 0x6b, 0x82, 0xf0, 0xf3, 0x53, + 0x91, 0x53, 0x02, 0x46, 0xe2, 0xfb, 0xe0, 0xaf, 0x10, 0x1a, 0xaa, 0x75, 0x94, 0xa7, 0x1f, 0x34, + 0xa2, 0xb8, 0x63, 0xbb, 0x00, 0xb4, 0xb1, 0x04, 0x5f, 0x98, 0x92, 0x87, 0x80, 0x8a, 0x29, 0xde, + 0x8b, 0xd0, 0xe5, 0xb1, 0x7c, 0x0f, 0xdc, 0x6e, 0x01, 0xff, 0xb1, 0x7c, 0x0f, 0xa9, 0x84, 0xc2, + 0xa9, 0x54, 0xf5, 0xb0, 0x5c, 0x9c, 0xa2, 0xa2, 0x6a, 0x94, 0xa8, 0xf1, 0xb9, 0x04, 0xc2, 0x4c, + 0xb1, 0x48, 0x4e, 0x04, 0xb6, 0xe7, 0xc5, 0xfa, 0xd7, 0x9f, 0x14, 0x55, 0x5c, 0x5c, 0xa8, 0x5e, + 0x28, 0x97, 0x21, 0x5c, 0xa6, 0x58, 0x44, 0xb1, 0x39, 0x02, 0x45, 0x87, 0x89, 0x7d, 0xb9, 0x36, + 0xd2, 0x27, 0x80, 0xba, 0xbf, 0x2b, 0x52, 0x54, 0xf7, 0x51, 0x91, 0xf2, 0x76, 0x25, 0xb2, 0xa7, + 0xbc, 0x49, 0x0c, 0xbe, 0xb6, 0x1a, 0x76, 0xe6, 0x70, 0x52, 0xf7, 0xb6, 0xcd, 0xb0, 0xab, 0x0b, + 0x95, 0xbf, 0xed, 0x31, 0x76, 0x4a, 0x2c, 0x17, 0x3c, 0x4d, 0x81, 0x38, 0x47, 0xbd, 0xed, 0x44, + 0x59, 0xd4, 0x05, 0xca, 0xd3, 0x2e, 0x30, 0xc8, 0xd5, 0x26, 0xe6, 0xca, 0xcf, 0x55, 0x60, 0x10, + 0x17, 0x2a, 0xbb, 0xab, 0xc1, 0x20, 0x57, 0x9b, 0x98, 0x95, 0x9f, 0x6b, 0xb4, 0xd1, 0xec, 0xfc, + 0x5c, 0x0b, 0x72, 0x51, 0x91, 0xf2, 0x76, 0x9d, 0xac, 0x2e, 0xe9, 0x2d, 0x92, 0x9f, 0xeb, 0x0d, + 0xbb, 0x39, 0xf2, 0xf3, 0x43, 0xc3, 0x6e, 0x56, 0x7e, 0x7e, 0x14, 0x63, 0x17, 0xcd, 0xcf, 0x8f, + 0x35, 0x85, 0xc6, 0xfc, 0xfc, 0x04, 0xf9, 0xa9, 0x0b, 0x94, 0xa7, 0x9f, 0x22, 0xc8, 0x98, 0xe7, + 0x4e, 0x9b, 0xea, 0x52, 0x45, 0xcc, 0x7e, 0x06, 0x8b, 0x98, 0x88, 0x36, 0x32, 0x3f, 0x9f, 0x0d, + 0xf7, 0xf2, 0x02, 0xfb, 0x45, 0x4a, 0xfe, 0x9c, 0xcc, 0xdb, 0xc4, 0x03, 0x91, 0xff, 0x1e, 0xfb, + 0x65, 0x0a, 0xdf, 0xe6, 0x9c, 0xa3, 0x91, 0x3d, 0xf6, 0x2b, 0xd3, 0xc4, 0x6c, 0xf8, 0x35, 0xb4, + 0x47, 0x78, 0xe0, 0xfa, 0xc5, 0x4c, 0xb1, 0xc8, 0x7e, 0x83, 0x09, 0x2f, 0xdb, 0x58, 0xfa, 0x7e, + 0x8b, 0xc9, 0xb1, 0xb1, 0xe6, 0x04, 0x82, 0x07, 0xec, 0x06, 0xa8, 0xe7, 0x78, 0x21, 0xef, 0xc3, + 0xfc, 0xc6, 0x94, 0x3c, 0xd3, 0x55, 0x78, 0x9e, 0x56, 0x3a, 0x76, 0x53, 0x4a, 0x9f, 0x4e, 0xc1, + 0x87, 0x3c, 0xde, 0x9c, 0xa2, 0x85, 0x31, 0xef, 0xf7, 0x3a, 0x33, 0x21, 0xbb, 0x45, 0xea, 0xab, + 0x55, 0x31, 0x64, 0xb7, 0x62, 0x09, 0x50, 0x53, 0x4a, 0xcf, 0xb3, 0xdb, 0x30, 0x48, 0x11, 0x50, + 0x4d, 0xb1, 0xdb, 0xb1, 0x2c, 0x1a, 0xe7, 0x98, 0xd8, 0x77, 0xc0, 0x81, 0xc1, 0xe4, 0x0d, 0xfa, + 0x9d, 0x29, 0xbd, 0x8a, 0x03, 0xd4, 0xf3, 0xfc, 0x2e, 0x74, 0x65, 0xd0, 0x09, 0x05, 0x2d, 0x6d, + 0x77, 0xc3, 0x5b, 0x4e, 0x04, 0x44, 0x4d, 0xc8, 0xe4, 0xfc, 0x4e, 0x96, 0x47, 0x14, 0xa3, 0x6a, + 0x64, 0xbf, 0x6f, 0xc0, 0xf5, 0x58, 0xde, 0x83, 0x40, 0xb4, 0x51, 0xd6, 0xc3, 0x00, 0x52, 0xbb, + 0x67, 0xc1, 0xc4, 0x8b, 0xed, 0xc1, 0xd2, 0xa4, 0x4e, 0x77, 0xc6, 0xf7, 0xbd, 0x31, 0x54, 0x7b, + 0xbe, 0x4f, 0x4f, 0x3c, 0xd2, 0x8b, 0xbe, 0xaa, 0xd8, 0xfd, 0xd1, 0xf9, 0xa5, 0x6e, 0xa1, 0x3d, + 0xc1, 0x1e, 0x88, 0x2e, 0x31, 0xea, 0xc5, 0xa7, 0xb6, 0xa4, 0x7f, 0x88, 0x5a, 0x64, 0x3d, 0xfd, + 0x8d, 0xff, 0x8f, 0x48, 0x40, 0x1d, 0x26, 0x2f, 0x0f, 0xa6, 0x68, 0x73, 0xa0, 0x30, 0x4d, 0x51, + 0xe9, 0x3f, 0x14, 0x9d, 0xf1, 0x5a, 0x86, 0x6f, 0xb6, 0x7a, 0x12, 0xcc, 0xe2, 0xfa, 0x70, 0xb4, + 0xd6, 0xeb, 0x5c, 0x1f, 0x89, 0x4e, 0xf7, 0x38, 0xd7, 0x47, 0xa3, 0x16, 0x75, 0xae, 0x8f, 0xc9, + 0xc1, 0x32, 0x30, 0x79, 0x79, 0x1c, 0x5c, 0x15, 0xd6, 0xc0, 0xf5, 0x89, 0xe8, 0xec, 0x8b, 0x72, + 0x7d, 0x12, 0xe5, 0x4f, 0x43, 0x83, 0x7a, 0x7c, 0x2a, 0xa5, 0x2f, 0xee, 0xd5, 0x3b, 0xe9, 0xe9, + 0x78, 0x8d, 0x61, 0x0a, 0x3c, 0xa3, 0x17, 0x8d, 0x3a, 0x5d, 0x9c, 0x15, 0x9e, 0x95, 0xef, 0x2f, + 0x43, 0x0a, 0xe0, 0x73, 0x51, 0xe5, 0xac, 0x67, 0x3e, 0x6b, 0x3c, 0x1f, 0x4d, 0x92, 0x66, 0x04, + 0x8b, 0x17, 0xa2, 0x2b, 0xa3, 0x96, 0x68, 0xb3, 0x17, 0x63, 0x9d, 0x8c, 0x6d, 0x92, 0xd8, 0xde, + 0x58, 0x27, 0xf5, 0x57, 0x0b, 0x4f, 0xb0, 0x97, 0x62, 0xb1, 0x94, 0x00, 0xb1, 0x5e, 0x8e, 0xc5, + 0xd2, 0xdb, 0x2a, 0x15, 0xeb, 0x15, 0xfd, 0xf2, 0x68, 0xe8, 0xe7, 0x9f, 0xd1, 0xcf, 0x7a, 0xa1, + 0x00, 0x7c, 0x35, 0xaa, 0x1c, 0xe9, 0xe7, 0x6b, 0xd1, 0xc2, 0x8d, 0xf5, 0xf3, 0xf5, 0xe8, 0x1b, + 0xb2, 0xb1, 0x9f, 0x6f, 0xc4, 0x0a, 0x2f, 0xde, 0xcf, 0x37, 0x63, 0x85, 0x17, 0xe9, 0xe7, 0x5b, + 0xb1, 0x58, 0xd1, 0x7e, 0xbe, 0x1d, 0x8b, 0xd5, 0xd0, 0xcf, 0xbf, 0xa4, 0xe8, 0x8c, 0xd7, 0x30, + 0x0f, 0xa9, 0x24, 0x54, 0xbc, 0xbf, 0x46, 0xbb, 0x46, 0xee, 0x14, 0xfe, 0x4e, 0x34, 0x0f, 0xf8, + 0x0e, 0xe1, 0x09, 0xf6, 0x2e, 0xa6, 0x6f, 0x04, 0x44, 0xfc, 0xbf, 0x45, 0x29, 0x13, 0xa2, 0x63, + 0xbf, 0x17, 0x9d, 0xa6, 0x0a, 0x54, 0xee, 0xdf, 0x8f, 0x86, 0xd5, 0x1f, 0x33, 0x3c, 0xc1, 0x3e, + 0x88, 0x75, 0x5f, 0xe2, 0x08, 0xf2, 0x61, 0x2c, 0x67, 0x52, 0xa0, 0xe3, 0x7c, 0x14, 0x2d, 0xc3, + 0x48, 0x1f, 0x3e, 0x8e, 0xd6, 0xac, 0xee, 0xc3, 0x27, 0xe8, 0x43, 0x04, 0x84, 0xfb, 0x4f, 0xa3, + 0xe5, 0x15, 0xed, 0xc3, 0x67, 0xd1, 0xe9, 0x1b, 0xef, 0xc3, 0xe7, 0xd1, 0xb0, 0x91, 0x3e, 0x7c, + 0x11, 0x2b, 0xd5, 0x48, 0x1f, 0xbe, 0x8c, 0xd5, 0x77, 0xbc, 0x0f, 0x7f, 0x4f, 0xd9, 0x07, 0x5b, + 0x5f, 0x9d, 0xb3, 0x26, 0xcc, 0xea, 0x79, 0xec, 0x3a, 0x3a, 0x8f, 0xcf, 0xae, 0x0d, 0xa3, 0x70, + 0xdc, 0x3a, 0x3a, 0x63, 0xcd, 0x51, 0x23, 0x46, 0xe3, 0xf8, 0x75, 0x76, 0x9b, 0xb5, 0x76, 0xee, + 0x5a, 0x31, 0x4a, 0x27, 0xac, 0x23, 0x2e, 0x73, 0xce, 0x43, 0xa3, 0x73, 0x22, 0xb8, 0xcc, 0x9e, + 0x8f, 0x46, 0xe1, 0x24, 0x70, 0x99, 0x63, 0x5e, 0x1a, 0x8d, 0x93, 0xc1, 0x65, 0xee, 0xf9, 0x69, + 0x94, 0x4e, 0x59, 0xa7, 0x3e, 0x06, 0xaa, 0x9b, 0xfa, 0x27, 0xd3, 0xf6, 0x62, 0x6b, 0xfe, 0x7a, + 0xd7, 0x63, 0x4f, 0xa5, 0xe9, 0x94, 0x91, 0xc9, 0xf5, 0x64, 0xb3, 0xec, 0xe9, 0x34, 0x3e, 0x54, + 0x4f, 0x39, 0x01, 0x7b, 0x26, 0x8d, 0x0f, 0x17, 0x53, 0x4e, 0x20, 0x2d, 0xc6, 0xf2, 0xfd, 0xdf, + 0x62, 0xcf, 0xa6, 0xe9, 0xbd, 0xac, 0x7e, 0x21, 0xfe, 0x5c, 0x5a, 0x7e, 0x66, 0xa0, 0xc6, 0x91, + 0x39, 0xf6, 0x7c, 0x9a, 0xde, 0x94, 0x6a, 0x0f, 0xc1, 0x5e, 0x80, 0xff, 0xbe, 0xb2, 0x60, 0x2f, + 0xa6, 0x69, 0x75, 0xec, 0x9b, 0xae, 0xfa, 0x81, 0xc8, 0x71, 0x71, 0x18, 0xbd, 0xd5, 0xf6, 0xc6, + 0xb1, 0xc3, 0x09, 0x7b, 0x29, 0x8e, 0x7d, 0x93, 0xb0, 0x97, 0x11, 0x02, 0xff, 0x48, 0x41, 0x15, + 0xf1, 0x4a, 0x1a, 0x5f, 0x01, 0xa8, 0x29, 0x17, 0x99, 0x34, 0x6d, 0xcb, 0xd1, 0x56, 0xb5, 0xf4, + 0xaa, 0xd2, 0xf0, 0x8a, 0x59, 0x2f, 0xc7, 0x05, 0x7b, 0x0d, 0x84, 0xd5, 0x3a, 0xfd, 0x7a, 0x1a, + 0xaf, 0x58, 0x34, 0x68, 0x8b, 0x30, 0xe8, 0x17, 0x9c, 0x32, 0x67, 0x6f, 0xa4, 0xf1, 0x3b, 0xed, + 0xc0, 0xaf, 0xac, 0x77, 0x42, 0x9e, 0x3e, 0x9c, 0xbd, 0x09, 0x27, 0x47, 0xf0, 0xe9, 0xac, 0x87, + 0x3d, 0xc4, 0x5b, 0xba, 0x9d, 0x13, 0x01, 0xb5, 0xdf, 0x4e, 0xcb, 0xcf, 0x61, 0x21, 0x0f, 0x04, + 0xd2, 0xf2, 0x97, 0xb4, 0xfc, 0x1c, 0x46, 0x00, 0xfb, 0x6b, 0x5a, 0xde, 0x95, 0xab, 0x6b, 0x5a, + 0xf6, 0x4e, 0x5a, 0x7e, 0x81, 0x0b, 0x45, 0xc0, 0xde, 0xc5, 0xf3, 0x60, 0x3e, 0x70, 0x2b, 0xec, + 0x6f, 0x69, 0xf9, 0x93, 0xbb, 0x49, 0xe9, 0xe3, 0xbd, 0xb4, 0xfc, 0x09, 0xf9, 0xa4, 0x60, 0xef, + 0xc3, 0x9d, 0x1a, 0xa8, 0x0f, 0xd2, 0xb8, 0xfb, 0xf0, 0x0b, 0x8e, 0xc0, 0x8e, 0x20, 0x84, 0xf6, + 0x87, 0x11, 0xf4, 0x30, 0x83, 0x7e, 0x84, 0x7c, 0x44, 0x74, 0xd9, 0xc7, 0x11, 0x04, 0x7a, 0xec, + 0x13, 0x49, 0xc1, 0xdf, 0xcc, 0x03, 0xf6, 0xa9, 0xa4, 0x50, 0x75, 0x8a, 0x30, 0xff, 0x4c, 0x52, + 0xa8, 0x3a, 0x45, 0xf6, 0x39, 0x06, 0x93, 0x76, 0x7c, 0x94, 0xc5, 0x2f, 0x40, 0x68, 0x43, 0x01, + 0xaf, 0xd0, 0x2f, 0xd1, 0xbf, 0x0d, 0x05, 0xf3, 0xb3, 0x3f, 0x8c, 0xf4, 0x86, 0xa0, 0xc8, 0x8e, + 0xed, 0x26, 0xd7, 0xb8, 0x05, 0x65, 0xc7, 0xe1, 0x79, 0x14, 0x3d, 0x3d, 0xbe, 0x1b, 0x1f, 0x47, + 0x79, 0x95, 0x3b, 0x82, 0x9d, 0xd0, 0x8d, 0x1f, 0x1d, 0xc8, 0xdb, 0x64, 0x76, 0x62, 0xb7, 0xfc, + 0x4a, 0xb2, 0x89, 0x07, 0x21, 0x6e, 0xc1, 0xd9, 0x49, 0x4a, 0x0e, 0x84, 0x9d, 0xdc, 0x8d, 0x0b, + 0x7c, 0xb7, 0x34, 0x25, 0xb3, 0x74, 0x8a, 0x74, 0x4b, 0x6d, 0x76, 0x6a, 0x37, 0xbe, 0xc3, 0x68, + 0xf6, 0xa7, 0x75, 0xe3, 0x47, 0x19, 0xc4, 0xfe, 0x74, 0x68, 0xe5, 0xaa, 0x14, 0xe1, 0x8c, 0x6e, + 0xf9, 0xbf, 0x08, 0x41, 0xa1, 0x52, 0x65, 0x67, 0x76, 0xab, 0x25, 0x25, 0x04, 0xf7, 0x7a, 0x3e, + 0xcf, 0x8a, 0x0b, 0xea, 0x29, 0x3d, 0xbb, 0x5b, 0xad, 0x7d, 0x11, 0x0b, 0x76, 0x4e, 0x1c, 0x94, + 0x89, 0x3d, 0x37, 0x0e, 0x66, 0xbd, 0x22, 0x9f, 0x66, 0xe7, 0x81, 0x63, 0xde, 0x57, 0x95, 0x75, + 0xbe, 0x6c, 0x06, 0x6e, 0x05, 0x7b, 0xbe, 0xef, 0xa3, 0x77, 0xd4, 0x94, 0x7e, 0x7f, 0x60, 0xda, + 0xd2, 0xe5, 0x05, 0xe8, 0xc7, 0x98, 0x77, 0x04, 0x9f, 0x66, 0x17, 0x42, 0x36, 0x56, 0xad, 0x72, + 0x59, 0x56, 0x17, 0x49, 0x19, 0xb5, 0xd9, 0x96, 0x6e, 0x2a, 0xc8, 0xfa, 0x5c, 0x65, 0x17, 0x77, + 0xcb, 0x1f, 0x56, 0x6c, 0x56, 0xca, 0x97, 0x74, 0x53, 0xe5, 0x9b, 0x1f, 0x87, 0x9a, 0x23, 0x66, + 0xb7, 0x7d, 0x90, 0xd5, 0xa4, 0xe1, 0x9e, 0x4a, 0x35, 0xf6, 0xf3, 0xf0, 0xcb, 0xba, 0x69, 0x42, + 0xca, 0x1f, 0x7d, 0x6a, 0x8b, 0xcb, 0xbb, 0x69, 0x19, 0x07, 0xd6, 0xa8, 0x7e, 0x85, 0xee, 0xaa, + 0xeb, 0x39, 0xc1, 0x0c, 0xbb, 0xb2, 0xdb, 0xcc, 0x2a, 0x09, 0x6c, 0xfd, 0x47, 0xc1, 0xb0, 0x8b, + 0xde, 0x36, 0xa7, 0x63, 0x88, 0xb6, 0x77, 0x47, 0x7f, 0xae, 0x0a, 0x68, 0x47, 0xb7, 0xf9, 0xa9, + 0x29, 0xda, 0x3b, 0xbb, 0x0f, 0xe1, 0xd6, 0xca, 0x86, 0xff, 0x65, 0xc2, 0x7f, 0x46, 0xf8, 0x95, + 0x6a, 0x99, 0x0b, 0x8e, 0xbb, 0x84, 0x7d, 0xec, 0xe5, 0x58, 0x1b, 0x9c, 0x32, 0x9a, 0x09, 0x52, + 0x18, 0x71, 0x02, 0xe1, 0x3a, 0xe5, 0x43, 0x81, 0xcc, 0x8b, 0x20, 0x5d, 0x40, 0xe6, 0x93, 0x49, + 0x2f, 0x2f, 0xd6, 0xaa, 0x68, 0x2e, 0x58, 0xff, 0xf5, 0xdd, 0x7b, 0xd7, 0x26, 0x1e, 0xdc, 0xbb, + 0x36, 0xf1, 0xc2, 0xde, 0xb5, 0x89, 0x2d, 0x2f, 0xad, 0xdd, 0xc7, 0x5a, 0x5d, 0xf0, 0x2b, 0x9d, + 0x55, 0xd7, 0x2b, 0x15, 0x9c, 0x6a, 0xa7, 0x70, 0x8b, 0x13, 0xf8, 0x8f, 0xa5, 0x91, 0xc4, 0xff, + 0x06, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x52, 0xb7, 0x86, 0xdf, 0x37, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index 2b262009..df759df4 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -155,6 +155,27 @@ message ANNQueryInfo { optional uint32 hnsw_ef_search = 20 [(gogoproto.nullable) = false]; // Only for HNSW indexes } +enum FTSQueryType { + FTSQueryTypeInvalid = 0; + FTSQueryTypeFilter = 1; // Not supported yet + FTSQueryTypeTopK = 2; +} + +message FTSQueryInfo { + optional FTSQueryType query_type = 1 [(gogoproto.nullable) = false]; + + optional int64 index_id = 2 [(gogoproto.nullable) = false]; + + // Currently only one column is supported. + repeated ColumnInfo columns = 3; + repeated string column_names = 4; // For debug purpose only. Currently only used in explain. + + optional string query_text = 5 [(gogoproto.nullable) = false]; + + // For QueryType == TopK + optional uint32 top_k = 10; +} + message TableScan { optional int64 table_id = 1 [(gogoproto.nullable) = false]; repeated ColumnInfo columns = 2; @@ -338,7 +359,7 @@ message ExecutorExecutionSummary { // And it's the ru consumption of one MPPTask/cop/batchCop instead of one executor. optional bytes ru_consumption = 7; - // Only for tiflash, records the wait info. + // Only for tiflash, records the wait info. optional TiFlashWaitSummary tiflash_wait_summary = 8; } @@ -387,7 +408,6 @@ message TiFlashScanContext { optional uint64 dmfile_mvcc_skipped_rows = 32; optional uint64 dmfile_lm_filter_scanned_rows = 33; optional uint64 dmfile_lm_filter_skipped_rows = 34; - optional uint64 total_vector_idx_load_from_s3 = 100; // Index file not available in disk optional uint64 total_vector_idx_load_from_disk = 101; // Index file available in disk and not cached in memory optional uint64 total_vector_idx_load_from_cache = 102; // Index file available in disk and cached in memory @@ -397,6 +417,34 @@ message TiFlashScanContext { optional uint64 total_vector_idx_search_discarded_nodes = 106; optional uint64 total_vector_idx_read_vec_time_ms = 107; optional uint64 total_vector_idx_read_others_time_ms = 108; + + /// fulltext index related fields + + optional uint32 fts_n_from_inmemory_noindex = 150; + optional uint32 fts_n_from_tiny_index = 151; + optional uint32 fts_n_from_tiny_noindex = 152; + optional uint32 fts_n_from_dmf_index = 153; + optional uint32 fts_n_from_dmf_noindex = 154; + optional uint64 fts_rows_from_inmemory_noindex = 155; + optional uint64 fts_rows_from_tiny_index = 156; + optional uint64 fts_rows_from_tiny_noindex = 157; + optional uint64 fts_rows_from_dmf_index = 158; + optional uint64 fts_rows_from_dmf_noindex = 159; + optional uint64 fts_idx_load_total_ms = 160; + optional uint32 fts_idx_load_from_cache = 161; + optional uint32 fts_idx_load_from_column_file = 162; + optional uint32 fts_idx_load_from_stable_s3 = 163; + optional uint32 fts_idx_load_from_stable_disk = 164; + optional uint32 fts_idx_search_n = 165; + optional uint64 fts_idx_search_total_ms = 166; + optional uint64 fts_idx_dm_search_rows = 167; + optional uint64 fts_idx_dm_total_read_fts_ms = 168; + optional uint64 fts_idx_dm_total_read_others_ms = 169; + optional uint64 fts_idx_tiny_search_rows = 170; + optional uint64 fts_idx_tiny_total_read_fts_ms = 171; + optional uint64 fts_idx_tiny_total_read_others_ms = 172; + optional uint64 fts_brute_total_read_ms = 173; + optional uint64 fts_brute_total_search_ms = 174; } message TiFlashWaitSummary { diff --git a/proto/expression.proto b/proto/expression.proto index 8779b72b..6b06683b 100644 --- a/proto/expression.proto +++ b/proto/expression.proto @@ -535,6 +535,9 @@ enum ScalarFuncSig { IfVectorFloat32 = 5161; CaseWhenVectorFloat32 = 5162; + /*fts*/ + FTSMatchWord = 5201; + /*time*/ DateFormatSig = 6001; DateLiteral = 6002; From c280fa12ce18079a010ca38b49f0dd2ae4bfc74e Mon Sep 17 00:00:00 2001 From: Wenxuan Date: Tue, 1 Apr 2025 22:33:59 +0800 Subject: [PATCH 2/8] *: Add query_tokenizer (#360) Signed-off-by: Wish (cherry picked from commit 81b8ae1768aeaad526fb8b78b8081fa6448b5bcf) --- go-tipb/executor.pb.go | 692 ++++++++++++++++++++++------------------- proto/executor.proto | 1 + 2 files changed, 369 insertions(+), 324 deletions(-) diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index f8da679f..36a46cb0 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -1133,9 +1133,10 @@ type FTSQueryInfo struct { QueryType FTSQueryType `protobuf:"varint,1,opt,name=query_type,json=queryType,enum=tipb.FTSQueryType" json:"query_type"` IndexId int64 `protobuf:"varint,2,opt,name=index_id,json=indexId" json:"index_id"` // Currently only one column is supported. - Columns []*ColumnInfo `protobuf:"bytes,3,rep,name=columns" json:"columns,omitempty"` - ColumnNames []string `protobuf:"bytes,4,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` - QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` + Columns []*ColumnInfo `protobuf:"bytes,3,rep,name=columns" json:"columns,omitempty"` + ColumnNames []string `protobuf:"bytes,4,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` + QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` + QueryTokenizer string `protobuf:"bytes,6,opt,name=query_tokenizer,json=queryTokenizer" json:"query_tokenizer"` // For QueryType == TopK TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` XXX_unrecognized []byte `json:"-"` @@ -1181,6 +1182,13 @@ func (m *FTSQueryInfo) GetQueryText() string { return "" } +func (m *FTSQueryInfo) GetQueryTokenizer() string { + if m != nil { + return m.QueryTokenizer + } + return "" +} + func (m *FTSQueryInfo) GetTopK() uint32 { if m != nil && m.TopK != nil { return *m.TopK @@ -3643,6 +3651,10 @@ func (m *FTSQueryInfo) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintExecutor(dAtA, i, uint64(len(m.QueryText))) i += copy(dAtA[i:], m.QueryText) + dAtA[i] = 0x32 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(len(m.QueryTokenizer))) + i += copy(dAtA[i:], m.QueryTokenizer) if m.TopK != nil { dAtA[i] = 0x50 i++ @@ -5943,6 +5955,8 @@ func (m *FTSQueryInfo) Size() (n int) { } l = len(m.QueryText) n += 1 + l + sovExecutor(uint64(l)) + l = len(m.QueryTokenizer) + n += 1 + l + sovExecutor(uint64(l)) if m.TopK != nil { n += 1 + sovExecutor(uint64(*m.TopK)) } @@ -8741,6 +8755,35 @@ func (m *FTSQueryInfo) Unmarshal(dAtA []byte) error { } m.QueryText = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QueryTokenizer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + 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 ErrInvalidLengthExecutor + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.QueryTokenizer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 10: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field TopK", wireType) @@ -14959,325 +15002,326 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 5110 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7a, 0xcb, 0x73, 0x23, 0xc9, - 0x71, 0x37, 0x01, 0x82, 0x24, 0x90, 0x00, 0xc1, 0x66, 0x91, 0xc3, 0xe9, 0xe1, 0xec, 0xcc, 0x70, - 0xa0, 0x7d, 0x50, 0xfc, 0xb4, 0x33, 0xbb, 0x9c, 0xd1, 0xae, 0x56, 0xfa, 0x56, 0x5a, 0x3e, 0x77, - 0xb0, 0x43, 0x82, 0x54, 0x83, 0x5a, 0xe9, 0xe0, 0x88, 0x8e, 0x66, 0x77, 0x01, 0xac, 0x65, 0xbf, - 0xb6, 0xbb, 0x31, 0x03, 0xea, 0xa4, 0xb3, 0x4f, 0x0e, 0x2b, 0x2c, 0xcb, 0x4f, 0xd9, 0xf2, 0x4b, - 0xb2, 0x64, 0x1d, 0xfc, 0x17, 0xf8, 0xa8, 0xa3, 0xaf, 0xd6, 0xc1, 0xe1, 0x58, 0x9f, 0x7c, 0xf4, - 0xcd, 0xe1, 0x93, 0xa3, 0xb2, 0xaa, 0xba, 0x0b, 0x0f, 0xce, 0xce, 0x86, 0x75, 0xf0, 0x09, 0xe8, - 0xcc, 0xfc, 0x65, 0xd6, 0x23, 0x33, 0xab, 0x2a, 0xab, 0xa0, 0x49, 0x87, 0xd4, 0x1d, 0x64, 0x51, - 0xf2, 0x20, 0x4e, 0xa2, 0x2c, 0x22, 0x95, 0x8c, 0xc5, 0xe7, 0xeb, 0x06, 0x1d, 0xc6, 0x09, 0x4d, - 0x53, 0x16, 0x85, 0x82, 0xbe, 0xde, 0x48, 0xdd, 0x0b, 0x1a, 0x38, 0xf2, 0x6b, 0xb5, 0x1f, 0xf5, - 0x23, 0xfc, 0xfb, 0x90, 0xff, 0x13, 0xd4, 0xd6, 0xcf, 0x6b, 0x50, 0x3d, 0x90, 0xea, 0xc8, 0xab, - 0x50, 0xce, 0x62, 0xb3, 0xb4, 0x51, 0xda, 0x6c, 0x6e, 0x37, 0x1f, 0x70, 0xad, 0x0f, 0x38, 0xef, - 0xec, 0x2a, 0xa6, 0xbb, 0x95, 0x5f, 0xff, 0xeb, 0xbd, 0x19, 0xab, 0x9c, 0xc5, 0x64, 0x0b, 0xaa, - 0xd9, 0xb9, 0x6f, 0xa7, 0xae, 0x13, 0x9a, 0xe5, 0x8d, 0xd2, 0x66, 0x7d, 0x7b, 0x49, 0xc8, 0x9e, - 0x39, 0xe7, 0x3e, 0xed, 0xba, 0x4e, 0x68, 0x2d, 0x64, 0xe7, 0x3e, 0xff, 0xc3, 0x65, 0x99, 0x37, - 0x14, 0xb2, 0xb3, 0xba, 0x6c, 0x3b, 0xf4, 0xe8, 0x50, 0xc8, 0x32, 0x0f, 0xff, 0x90, 0x37, 0xa1, - 0x96, 0x52, 0x9f, 0xba, 0x19, 0x8b, 0x42, 0xb3, 0xa2, 0x0b, 0x77, 0x15, 0xd9, 0x2a, 0x24, 0xc8, - 0x23, 0xa8, 0x3b, 0xfd, 0x7e, 0x42, 0xfb, 0x0e, 0x02, 0xe6, 0x10, 0xb0, 0x2c, 0x00, 0x3b, 0x05, - 0xc3, 0xd2, 0xa5, 0xc8, 0x5d, 0xa8, 0x64, 0x51, 0xdc, 0x31, 0xe7, 0x51, 0x1a, 0x64, 0xbb, 0xa3, - 0xb8, 0x63, 0x21, 0x9d, 0xdc, 0x87, 0x39, 0x9f, 0x05, 0x2c, 0x33, 0x17, 0x50, 0xa0, 0x2e, 0x04, - 0x8e, 0x38, 0xc9, 0x12, 0x1c, 0xb2, 0x07, 0xcb, 0x74, 0xe8, 0x5e, 0x38, 0x61, 0x9f, 0xda, 0x09, - 0x75, 0x29, 0x7b, 0x46, 0x13, 0xb3, 0x8a, 0xe2, 0x6b, 0x6a, 0xcc, 0x04, 0xdb, 0x92, 0x5c, 0xcb, - 0xa0, 0x63, 0x14, 0xde, 0x8e, 0x4f, 0x22, 0x16, 0x9a, 0x35, 0xbd, 0x1d, 0x1f, 0x45, 0x2c, 0xb4, - 0x90, 0x4e, 0xee, 0x41, 0x5d, 0x4d, 0xb2, 0xcd, 0x3c, 0x13, 0x36, 0x4a, 0x9b, 0x35, 0x0b, 0x14, - 0xa9, 0xed, 0x71, 0x05, 0x97, 0xcc, 0xf7, 0xcd, 0xba, 0xae, 0xe0, 0x29, 0xf3, 0x7d, 0x0b, 0xe9, - 0xe4, 0x7d, 0x58, 0xca, 0x5b, 0x99, 0xd2, 0xd0, 0xa3, 0x89, 0xd9, 0x40, 0xd1, 0xd5, 0xd1, 0x36, - 0x76, 0x91, 0x67, 0x35, 0xe9, 0xc8, 0x37, 0x79, 0x0b, 0xe0, 0x34, 0x89, 0x3e, 0x91, 0x93, 0xb1, - 0x88, 0x48, 0x43, 0x20, 0x0b, 0xba, 0xa5, 0xc9, 0x90, 0x8f, 0x60, 0x35, 0x76, 0x92, 0x8c, 0xf1, - 0x0f, 0x3b, 0xe3, 0x9e, 0x20, 0x66, 0xbd, 0x89, 0x58, 0x53, 0x62, 0x95, 0x44, 0xe1, 0x2a, 0x24, - 0x9e, 0xa0, 0xf1, 0xce, 0xa5, 0x51, 0x92, 0x99, 0x4b, 0x7a, 0xe7, 0xba, 0x51, 0x92, 0x59, 0x48, - 0x27, 0xaf, 0xc2, 0xfc, 0x73, 0x16, 0x7a, 0xd1, 0x73, 0xd3, 0x40, 0x89, 0x86, 0x90, 0xf8, 0x2e, - 0xd2, 0x2c, 0xc9, 0x23, 0x1d, 0xb8, 0xdf, 0x63, 0x21, 0xb5, 0xfb, 0x89, 0xc3, 0x42, 0xea, 0xd9, - 0xe9, 0xc5, 0xa0, 0xd7, 0xe3, 0xcd, 0xca, 0x12, 0xea, 0x04, 0xb6, 0x1b, 0x0d, 0xc2, 0xcc, 0x5c, - 0xde, 0x28, 0x6d, 0x56, 0xa4, 0x73, 0xdf, 0xe1, 0xe2, 0x1f, 0x0a, 0xe9, 0xae, 0x10, 0xee, 0xa2, - 0xec, 0x1e, 0x17, 0x25, 0x1f, 0xc1, 0xbd, 0xa9, 0xfa, 0xce, 0x9d, 0xcc, 0xbd, 0xb0, 0x53, 0xf6, - 0x7d, 0x6a, 0x12, 0x4d, 0xdb, 0xed, 0x49, 0x6d, 0xbb, 0x5c, 0xb2, 0xcb, 0xbe, 0x4f, 0x79, 0x0f, - 0xe8, 0x30, 0x76, 0x42, 0xcf, 0x5c, 0xd1, 0x7b, 0x70, 0x80, 0x34, 0x4b, 0xf2, 0xc8, 0x1b, 0xb0, - 0x20, 0xfe, 0x6d, 0x9b, 0xab, 0x28, 0xb6, 0xa8, 0x8b, 0x6d, 0x5b, 0x8a, 0xcb, 0x67, 0xfb, 0x3c, - 0x89, 0x1c, 0xcf, 0x75, 0xd2, 0xcc, 0xfe, 0x74, 0x40, 0x93, 0x2b, 0xf3, 0x86, 0x3e, 0xdb, 0xbb, - 0x8a, 0xf9, 0x6d, 0xce, 0xb3, 0x9a, 0xe7, 0x23, 0xdf, 0xe4, 0x31, 0x34, 0x18, 0x8f, 0x47, 0xdb, - 0x8f, 0xa2, 0xcb, 0x41, 0x6c, 0x9a, 0x7a, 0x2c, 0x61, 0xa4, 0x1e, 0x45, 0xd1, 0xe5, 0x77, 0x62, - 0xab, 0xce, 0xd4, 0xc7, 0x20, 0x26, 0x77, 0x00, 0x62, 0x27, 0xa1, 0x61, 0x66, 0x33, 0x6f, 0x68, - 0xde, 0xda, 0x28, 0x6d, 0x2e, 0x5a, 0x35, 0x41, 0x69, 0x7b, 0x43, 0x72, 0x0a, 0x6b, 0x74, 0x18, - 0xfb, 0x0e, 0x0b, 0xed, 0x5e, 0x94, 0xd8, 0x6e, 0x14, 0x86, 0xd2, 0x9d, 0xd6, 0x51, 0xfd, 0x7a, - 0xde, 0x17, 0x2e, 0x73, 0x18, 0x25, 0x7b, 0xb9, 0x84, 0xb5, 0x4a, 0xa7, 0x50, 0x5b, 0xbf, 0x9c, - 0x85, 0xe6, 0xa8, 0xdf, 0x92, 0x4d, 0x2d, 0x63, 0x91, 0x51, 0xcf, 0x9e, 0xc8, 0x5a, 0xcb, 0x34, - 0x74, 0x23, 0x8f, 0x7a, 0x76, 0xe6, 0xa4, 0x97, 0x76, 0x40, 0x33, 0xc7, 0x2c, 0x6f, 0xcc, 0x6e, - 0x36, 0xac, 0x25, 0xc9, 0x38, 0x73, 0xd2, 0xcb, 0x63, 0x9a, 0x39, 0xe4, 0x6d, 0x68, 0x16, 0xbe, - 0x7c, 0x49, 0xaf, 0x52, 0x73, 0x76, 0x63, 0xb6, 0xf0, 0xc4, 0x83, 0x61, 0x9c, 0x58, 0x8b, 0xb9, - 0xc4, 0x53, 0x7a, 0x95, 0x92, 0x57, 0x61, 0xce, 0xbd, 0x60, 0xbe, 0x27, 0x13, 0x97, 0x96, 0x3d, - 0x79, 0xc0, 0x5a, 0x82, 0x49, 0x5e, 0x83, 0xb9, 0xec, 0x2a, 0xa6, 0xa9, 0x39, 0x87, 0xfa, 0x64, - 0x7a, 0x3b, 0x64, 0xd4, 0xf7, 0x78, 0x73, 0x2d, 0xc1, 0x25, 0xef, 0xc2, 0x92, 0xe3, 0xfb, 0x76, - 0x8f, 0xd3, 0x6d, 0x01, 0x98, 0x9f, 0x0e, 0x58, 0x74, 0x7c, 0x3f, 0xff, 0x4a, 0xc9, 0xfb, 0x50, - 0x77, 0xa3, 0x40, 0x2d, 0x03, 0x98, 0xc4, 0x9a, 0xdb, 0x37, 0x04, 0x68, 0xaf, 0x60, 0x1c, 0x47, - 0x9e, 0x1a, 0x1a, 0x5d, 0x9e, 0x1c, 0xc1, 0xda, 0x20, 0x56, 0xe1, 0x91, 0x51, 0x6d, 0xa0, 0xaa, - 0x68, 0xfe, 0xa6, 0xec, 0x95, 0x18, 0xae, 0xdd, 0xab, 0x8c, 0xa6, 0x5d, 0x9f, 0xb9, 0xd4, 0x5a, - 0x51, 0xb0, 0xbd, 0x8c, 0xaa, 0x51, 0x6c, 0xfd, 0x6e, 0x09, 0xea, 0x9a, 0xf3, 0x90, 0xb7, 0x60, - 0x55, 0x78, 0xd9, 0x85, 0x13, 0x7a, 0x3e, 0xb5, 0xa3, 0x5e, 0x2f, 0xa5, 0x59, 0x6a, 0x96, 0x36, - 0x66, 0x37, 0x17, 0x2d, 0x82, 0xbc, 0x27, 0xc8, 0x3a, 0x11, 0x1c, 0xee, 0x61, 0x97, 0x94, 0xc6, - 0x76, 0x94, 0xf0, 0xfc, 0xc5, 0xd7, 0x9a, 0xaa, 0x55, 0xe3, 0x94, 0x13, 0x4e, 0xe0, 0x8b, 0x0b, - 0x0e, 0x6b, 0x42, 0x43, 0x39, 0x41, 0xe3, 0xc3, 0x9e, 0xf3, 0x5b, 0x5f, 0x83, 0xe5, 0x89, 0x66, - 0x93, 0x2f, 0xc1, 0xa2, 0xee, 0x13, 0xa2, 0x29, 0x0d, 0xab, 0xa1, 0xf9, 0x43, 0xda, 0xfa, 0x4d, - 0x09, 0x8c, 0xf1, 0x8c, 0x3e, 0xdd, 0x9b, 0x4a, 0xd3, 0xbd, 0xe9, 0x2d, 0xa8, 0xeb, 0x33, 0x59, - 0x9e, 0x3e, 0x93, 0xd0, 0x2b, 0xa6, 0xb1, 0x85, 0x5e, 0x3d, 0x7b, 0x9d, 0x57, 0xa3, 0x3f, 0xef, - 0xc3, 0xbd, 0x28, 0x61, 0x7d, 0x16, 0x3a, 0x3e, 0xce, 0x55, 0x9c, 0x78, 0x91, 0x3b, 0xa0, 0x89, - 0xd6, 0x9e, 0x0a, 0xb6, 0xe7, 0xb6, 0x12, 0xdb, 0xcb, 0xe8, 0xa9, 0x14, 0xca, 0xe7, 0xe8, 0x87, - 0xb3, 0xd0, 0xd8, 0xe9, 0x74, 0x30, 0x0d, 0xb4, 0xc3, 0x5e, 0x44, 0xde, 0x05, 0xc0, 0xfc, 0x81, - 0x8d, 0x1d, 0x0d, 0x2c, 0x25, 0xa7, 0x05, 0x56, 0xed, 0x53, 0x45, 0x20, 0x6d, 0x58, 0xf2, 0x58, - 0x9a, 0x39, 0xa1, 0x4b, 0xb9, 0xf5, 0x84, 0xb9, 0x38, 0x61, 0x4d, 0x15, 0xe7, 0x1f, 0x53, 0x37, - 0x8b, 0x92, 0x7d, 0x29, 0x72, 0x8c, 0x12, 0x52, 0x4b, 0xd3, 0x1b, 0xa1, 0x92, 0x5b, 0x30, 0x97, - 0x45, 0xb1, 0x7d, 0x89, 0x23, 0xb0, 0x28, 0x85, 0xf8, 0xfa, 0xfc, 0x94, 0xbc, 0xc6, 0x1d, 0xdc, - 0x1f, 0x04, 0xa1, 0x1d, 0x3a, 0x01, 0xc5, 0x60, 0xab, 0x49, 0x01, 0x10, 0x8c, 0x8e, 0x13, 0x50, - 0x72, 0x1f, 0x6a, 0x52, 0x8c, 0x79, 0xb8, 0x33, 0x98, 0x95, 0x42, 0x55, 0x41, 0xc6, 0x05, 0xb4, - 0x9e, 0xd0, 0x9e, 0xfd, 0x8c, 0xba, 0x76, 0xef, 0xd1, 0x36, 0x6e, 0x08, 0x1a, 0x56, 0x2d, 0xa1, - 0xbd, 0x8f, 0xa9, 0x7b, 0xf8, 0x68, 0x9b, 0xdc, 0x83, 0xaa, 0xf0, 0x56, 0xe6, 0xe1, 0xea, 0xae, - 0x34, 0x2c, 0x20, 0xb5, 0xcd, 0x93, 0x73, 0x23, 0x70, 0x86, 0xb6, 0x6a, 0x3b, 0xae, 0xd1, 0x25, - 0x15, 0x55, 0x81, 0x33, 0x54, 0x5d, 0x25, 0x5b, 0xd0, 0xbc, 0x08, 0xd3, 0xe7, 0x36, 0xed, 0xd9, - 0x29, 0x75, 0x12, 0xf7, 0x02, 0x93, 0xb9, 0xea, 0x57, 0x83, 0xf3, 0x0e, 0x7a, 0x5d, 0xe4, 0x7c, - 0x54, 0xa9, 0x2e, 0x18, 0xd5, 0xd6, 0x7f, 0x96, 0xa0, 0x71, 0x78, 0xd6, 0x7d, 0xa9, 0x59, 0x51, - 0x72, 0xd3, 0x67, 0x45, 0xef, 0x45, 0x79, 0x5a, 0x2f, 0xb6, 0x60, 0x41, 0x0c, 0x89, 0xca, 0x71, - 0x86, 0xca, 0x16, 0x38, 0x4e, 0x61, 0x2f, 0xb2, 0x94, 0x00, 0xb9, 0x0f, 0x0d, 0x6d, 0xf0, 0x53, - 0xf4, 0xaf, 0x9a, 0x55, 0x2f, 0xc6, 0x3d, 0x25, 0x5f, 0xca, 0x1b, 0x4a, 0x87, 0x19, 0x8e, 0x7c, - 0x6d, 0xb4, 0x51, 0x74, 0x98, 0x91, 0x15, 0x35, 0xbf, 0x80, 0x6b, 0x06, 0xce, 0x6c, 0xeb, 0x07, - 0x73, 0x50, 0x2b, 0x76, 0x00, 0xf7, 0xa0, 0x2a, 0xf6, 0x10, 0xcc, 0xc3, 0xee, 0xe6, 0xed, 0x46, - 0xea, 0x68, 0xbb, 0xcb, 0x9f, 0xd7, 0x6e, 0x13, 0x2a, 0x1e, 0x4d, 0x5d, 0x74, 0xa7, 0xaa, 0x72, - 0x27, 0x4e, 0x21, 0x5f, 0x01, 0x12, 0x27, 0x2c, 0x70, 0x92, 0x2b, 0x3b, 0xf7, 0x17, 0xd1, 0xaf, - 0x59, 0xcb, 0x90, 0x1c, 0xa9, 0xd1, 0x4b, 0xc9, 0x07, 0x60, 0x84, 0x74, 0x98, 0xd9, 0x09, 0x75, - 0x3c, 0x9b, 0x86, 0x7d, 0x16, 0x52, 0xec, 0x62, 0x53, 0x19, 0x3f, 0x40, 0x9a, 0x36, 0x13, 0x4d, - 0x2e, 0x6f, 0x51, 0xc7, 0x13, 0x1c, 0xf2, 0x15, 0x98, 0x4f, 0x78, 0x14, 0xab, 0x7c, 0x2e, 0xf3, - 0xd5, 0x53, 0x7a, 0x65, 0x71, 0xb2, 0x44, 0x49, 0x19, 0xf2, 0x1e, 0xdc, 0x52, 0xad, 0x8b, 0x13, - 0xda, 0x63, 0x43, 0xbd, 0x91, 0x0b, 0xd8, 0xc8, 0x35, 0x29, 0x70, 0x8a, 0xfc, 0xa2, 0xa9, 0xa3, - 0x99, 0xb3, 0x3a, 0x9e, 0x39, 0x37, 0xa0, 0xc1, 0x52, 0xbb, 0xc7, 0x77, 0x0b, 0xb8, 0x49, 0xab, - 0xa1, 0x00, 0xb0, 0xf4, 0xd0, 0x49, 0x33, 0x9c, 0x80, 0x63, 0xb8, 0x13, 0x0f, 0xd2, 0x0b, 0xea, - 0xd9, 0x5e, 0xf4, 0x3c, 0xb4, 0x7b, 0xcc, 0xcf, 0x28, 0x2e, 0xe2, 0x1e, 0xae, 0x79, 0xa9, 0x09, - 0x13, 0x2b, 0xe2, 0xba, 0x00, 0xec, 0x47, 0xcf, 0xc3, 0x43, 0x14, 0xdf, 0xcb, 0xa5, 0xc9, 0x1e, - 0xac, 0x24, 0x83, 0x30, 0x63, 0x01, 0x55, 0xaa, 0x7c, 0x96, 0x66, 0x66, 0x1d, 0x95, 0xac, 0x08, - 0x25, 0x96, 0x10, 0x10, 0x58, 0x6b, 0x39, 0xd1, 0x3f, 0x8f, 0x58, 0x9a, 0x91, 0x37, 0xc1, 0xe0, - 0x11, 0xf7, 0xdc, 0x61, 0x99, 0x8d, 0xaa, 0x82, 0x14, 0x37, 0xb5, 0x73, 0x72, 0xdc, 0x16, 0x03, - 0x67, 0xf8, 0x5d, 0x87, 0x65, 0x67, 0x2c, 0xa0, 0xc7, 0x29, 0x79, 0x08, 0x35, 0x27, 0x0c, 0xe5, - 0x76, 0x48, 0x6c, 0x61, 0xc7, 0x32, 0x19, 0xba, 0x49, 0xd5, 0x09, 0x43, 0xfc, 0x6a, 0xfd, 0xa4, - 0x02, 0x64, 0x72, 0x87, 0xfa, 0x7f, 0xd3, 0x17, 0x5f, 0xe8, 0x1b, 0x73, 0x2f, 0xf4, 0x8d, 0x2f, - 0x41, 0xb1, 0x77, 0x41, 0xf1, 0x79, 0x14, 0x6f, 0xe4, 0x44, 0x2e, 0x34, 0xee, 0x21, 0x0b, 0x5f, - 0xdc, 0x43, 0xaa, 0xbf, 0x0d, 0x0f, 0xa9, 0xfd, 0xaf, 0x3d, 0x04, 0x5e, 0xd2, 0x43, 0xea, 0x2f, - 0xe1, 0x21, 0xff, 0x3d, 0x07, 0x15, 0x7e, 0x4a, 0x23, 0x6f, 0x43, 0x8d, 0x9f, 0xd3, 0xf4, 0x7c, - 0xdc, 0x2c, 0x0e, 0x71, 0x5a, 0x06, 0xa8, 0x7e, 0x22, 0xbf, 0xc9, 0x37, 0xa1, 0x89, 0x10, 0x7e, - 0x88, 0x13, 0xb8, 0xb2, 0x9e, 0xc7, 0x39, 0x6e, 0xec, 0xb0, 0xdd, 0xf8, 0x44, 0xa3, 0x7d, 0x91, - 0xdd, 0x0e, 0x5f, 0xff, 0x58, 0x18, 0xd2, 0x04, 0x77, 0xe6, 0x15, 0x7d, 0xfd, 0x43, 0x32, 0xdf, - 0x9e, 0xbf, 0x05, 0x4d, 0x9f, 0xf6, 0x32, 0x1b, 0xdb, 0x84, 0x7b, 0xdc, 0xb9, 0x89, 0xf9, 0x6a, - 0x70, 0x09, 0xde, 0x30, 0xdc, 0xe2, 0x6e, 0xc3, 0x52, 0xc2, 0xfa, 0x17, 0x3a, 0x64, 0x7e, 0x72, - 0x5b, 0x8c, 0x22, 0x39, 0xe6, 0x2d, 0xa8, 0xc7, 0x49, 0x74, 0x4e, 0xe5, 0xde, 0x67, 0xe1, 0x9a, - 0xbd, 0x0f, 0xca, 0x88, 0xbd, 0xcf, 0x5b, 0x50, 0x3f, 0x1f, 0xb0, 0x7c, 0xb7, 0x54, 0xbd, 0x06, - 0x81, 0x32, 0x02, 0xf1, 0x08, 0x96, 0xb0, 0x27, 0x9a, 0xeb, 0xd5, 0x26, 0xda, 0x85, 0x9d, 0xd5, - 0xdc, 0xed, 0xab, 0x60, 0x88, 0xce, 0xbc, 0x30, 0xa5, 0x89, 0x0e, 0x8f, 0xc2, 0xa2, 0xec, 0x62, - 0xd4, 0xcf, 0xeb, 0x93, 0x30, 0x94, 0xd1, 0x60, 0x4f, 0xe0, 0xb6, 0x80, 0xd1, 0x4f, 0x35, 0xa4, - 0xdd, 0x4b, 0xa2, 0xc0, 0x66, 0xa1, 0xd9, 0x98, 0xd0, 0x70, 0x13, 0xc5, 0x0f, 0x3e, 0x2d, 0x74, - 0x1c, 0x26, 0x51, 0xd0, 0x0e, 0xc9, 0x63, 0xb8, 0xc9, 0x52, 0x3b, 0x1c, 0xf8, 0xbe, 0xed, 0x3c, - 0x77, 0x12, 0x7e, 0xb8, 0x0f, 0x18, 0xce, 0x08, 0xa6, 0xb8, 0xaa, 0xb5, 0xc2, 0xd2, 0xce, 0xc0, - 0xf7, 0x77, 0x38, 0xb3, 0x4b, 0x03, 0x86, 0xee, 0x7a, 0x4d, 0x70, 0x35, 0xbf, 0x48, 0x70, 0xb5, - 0xfe, 0xa3, 0x0c, 0x8b, 0x23, 0x42, 0x64, 0x15, 0xca, 0x32, 0x27, 0xaa, 0x00, 0x2b, 0x33, 0x8f, - 0x3c, 0x06, 0x23, 0x8d, 0x06, 0x89, 0x4b, 0x6d, 0x3a, 0x8c, 0xa5, 0xa5, 0xf2, 0xe4, 0x84, 0x08, - 0x19, 0xfe, 0x1f, 0x43, 0xf7, 0x31, 0x18, 0x99, 0x93, 0xf4, 0x69, 0xa6, 0xa1, 0x26, 0x4f, 0x5d, - 0x4d, 0x21, 0x93, 0xa3, 0xb6, 0x81, 0xe4, 0xb6, 0x8a, 0x72, 0x89, 0xbe, 0x2d, 0x34, 0x94, 0x9d, - 0xbc, 0x74, 0xb2, 0x0d, 0x24, 0xb7, 0x54, 0x60, 0xf4, 0xbd, 0x8a, 0xa1, 0xac, 0xe4, 0x98, 0x77, - 0x60, 0x21, 0xe9, 0x89, 0xa8, 0x9d, 0xc7, 0xa8, 0xbd, 0x39, 0x65, 0xd0, 0xb4, 0xd0, 0x9d, 0x4f, - 0x7a, 0x18, 0xb4, 0x02, 0x17, 0x44, 0x1e, 0x95, 0x87, 0xb1, 0x69, 0x38, 0xed, 0x38, 0x36, 0x9f, - 0xf4, 0xf8, 0x57, 0xeb, 0x5f, 0x4a, 0x50, 0xcb, 0x4b, 0x64, 0x9f, 0xbf, 0x02, 0xfd, 0x56, 0xb7, - 0x79, 0x6a, 0x89, 0xaa, 0x4c, 0x2c, 0x51, 0x6b, 0x30, 0x3f, 0x08, 0xd9, 0xa7, 0x03, 0xb1, 0xed, - 0xa9, 0x5a, 0xf2, 0xeb, 0x9a, 0xa5, 0x6b, 0x7e, 0xfa, 0xd2, 0xd5, 0xfa, 0x61, 0x09, 0x6a, 0x79, - 0x45, 0x8f, 0x6c, 0x01, 0x68, 0xb1, 0x54, 0x9a, 0x98, 0x71, 0x8d, 0x4b, 0x1e, 0x43, 0x33, 0x89, - 0x43, 0x3d, 0xf6, 0x84, 0x5f, 0xc9, 0xb2, 0x88, 0x15, 0x87, 0x32, 0x07, 0xc5, 0xa1, 0x16, 0x7c, - 0xf9, 0xd1, 0x7c, 0xf6, 0x05, 0x47, 0xf3, 0xd6, 0x0f, 0x4a, 0x7a, 0xc9, 0x8b, 0x6c, 0xc0, 0x1c, - 0xf7, 0xc3, 0x69, 0x2d, 0x12, 0x0c, 0xb2, 0x05, 0x35, 0xde, 0x18, 0x21, 0x35, 0xb5, 0x1d, 0xd5, - 0x44, 0xfc, 0x79, 0xd9, 0x26, 0xfc, 0x53, 0x19, 0xea, 0x5a, 0xe5, 0x92, 0xbc, 0x06, 0xd5, 0x7e, - 0x12, 0x0d, 0x62, 0xfb, 0xfc, 0x6a, 0x4a, 0x33, 0x16, 0x90, 0xb7, 0x7b, 0xc5, 0xc5, 0x9c, 0x7e, - 0xdf, 0xee, 0x0d, 0x42, 0x77, 0x4a, 0x9c, 0x2d, 0x38, 0xfd, 0xfe, 0xe1, 0x20, 0x74, 0xc9, 0x06, - 0x54, 0xc5, 0x19, 0x9d, 0x7a, 0x23, 0xbb, 0x8f, 0x9c, 0x4a, 0x1e, 0x42, 0x83, 0xf7, 0x28, 0xb7, - 0x59, 0x99, 0xd6, 0x29, 0x48, 0xe2, 0xf0, 0x43, 0x69, 0x59, 0x02, 0x72, 0xeb, 0x73, 0xd7, 0x01, - 0x76, 0x64, 0x1b, 0xf2, 0x71, 0x98, 0x7f, 0x51, 0x95, 0xe4, 0x3d, 0x68, 0xc4, 0x09, 0x45, 0xb5, - 0x93, 0x91, 0x73, 0xc6, 0x0e, 0x7d, 0x27, 0xbd, 0x38, 0x4d, 0xe8, 0x4e, 0xbf, 0xcf, 0x63, 0x85, - 0xaf, 0x1e, 0xea, 0x7f, 0xeb, 0xa7, 0x25, 0xa8, 0x9c, 0x45, 0x71, 0x87, 0xbc, 0x01, 0x55, 0xdc, - 0xfb, 0x16, 0x63, 0x27, 0x4b, 0x6c, 0xbb, 0x57, 0xed, 0x8c, 0x06, 0xd6, 0x02, 0x72, 0x77, 0xaf, - 0xc8, 0xba, 0xaa, 0xf8, 0x96, 0xb5, 0xda, 0x9d, 0x2c, 0xf5, 0xbe, 0xd4, 0xb4, 0xf1, 0x51, 0x28, - 0xf6, 0x53, 0xf9, 0xb0, 0x8d, 0x9a, 0xab, 0xe7, 0x12, 0xbb, 0x57, 0xad, 0x7f, 0x2c, 0xc1, 0x1c, - 0x96, 0x94, 0x0b, 0xe3, 0xa5, 0x17, 0x18, 0x2f, 0x7f, 0x11, 0xe3, 0xb3, 0x9f, 0x63, 0x9c, 0xbc, - 0x03, 0xcb, 0x59, 0x32, 0x08, 0x5d, 0x27, 0xa3, 0x7c, 0x0d, 0x47, 0xff, 0x95, 0x4d, 0x1e, 0x59, - 0xc2, 0x94, 0xd0, 0x53, 0x7a, 0xc5, 0x09, 0xad, 0x0f, 0xa0, 0xf2, 0x94, 0xf9, 0x3e, 0x79, 0x05, - 0xe6, 0xdd, 0x28, 0x0c, 0xdb, 0xfb, 0x23, 0x6d, 0x96, 0x34, 0xde, 0x21, 0xb1, 0x9b, 0x2a, 0x6b, - 0x1e, 0x26, 0x48, 0xad, 0x1d, 0x58, 0x9d, 0x56, 0xec, 0x23, 0x5f, 0x86, 0xc5, 0xa2, 0x38, 0xa8, - 0x52, 0x9c, 0x52, 0xdc, 0x28, 0x58, 0x6d, 0xaf, 0xf5, 0x8b, 0x59, 0x30, 0xd5, 0x08, 0x88, 0x5f, - 0x16, 0x85, 0xdd, 0x41, 0xc0, 0x13, 0x0c, 0xd9, 0x82, 0x65, 0x5c, 0xe1, 0xe2, 0x24, 0x72, 0x69, - 0x9a, 0x52, 0xcf, 0xc6, 0x84, 0x52, 0xda, 0xac, 0x58, 0x4b, 0x9c, 0x71, 0xaa, 0xe8, 0x1d, 0x1e, - 0xbc, 0xcb, 0xe1, 0x20, 0xe0, 0xa2, 0xde, 0xc0, 0xa5, 0x9e, 0x9d, 0x44, 0xcf, 0x53, 0xe1, 0x01, - 0xd6, 0x52, 0x38, 0x08, 0x4e, 0x25, 0xdd, 0x8a, 0x9e, 0xa7, 0xe4, 0x35, 0x68, 0x72, 0x59, 0x96, - 0xd1, 0xc4, 0x11, 0x59, 0x67, 0x16, 0x05, 0x17, 0xc3, 0x41, 0xd0, 0xce, 0x89, 0xe3, 0x25, 0xfb, - 0xca, 0x44, 0xc9, 0x7e, 0x03, 0xea, 0x6e, 0x14, 0xba, 0x83, 0x24, 0xa1, 0xa1, 0x7b, 0x85, 0x29, - 0xb4, 0x62, 0xe9, 0x24, 0x72, 0x04, 0xab, 0x19, 0xeb, 0x71, 0xf7, 0xc6, 0x4d, 0x37, 0x4f, 0x74, - 0x78, 0x8e, 0x9e, 0xd7, 0x6b, 0xe8, 0x32, 0x00, 0xf8, 0xc2, 0xb0, 0x27, 0xf8, 0x4f, 0x66, 0x2c, - 0x22, 0x71, 0x1a, 0x95, 0xb7, 0x3b, 0x19, 0x70, 0x1d, 0xe9, 0x20, 0x88, 0x33, 0x55, 0x0f, 0x6c, - 0x58, 0x8b, 0xc9, 0x60, 0xaf, 0x20, 0x92, 0x8f, 0x0a, 0xa3, 0xb8, 0x6f, 0x4e, 0xc5, 0x70, 0xca, - 0x2b, 0x8d, 0x51, 0xa3, 0x7c, 0xef, 0x2c, 0x87, 0x3b, 0x37, 0xa9, 0xd1, 0x76, 0x1b, 0x00, 0xfb, - 0x34, 0x73, 0x98, 0xcf, 0x57, 0x94, 0x56, 0x1f, 0x56, 0x25, 0x2e, 0x9f, 0x2b, 0xac, 0x66, 0x9c, - 0xc0, 0x0a, 0x55, 0x04, 0x69, 0x8e, 0x51, 0x95, 0x69, 0xef, 0x8e, 0xfa, 0xf9, 0xf8, 0x2c, 0x5b, - 0x84, 0x8e, 0x52, 0x18, 0x4d, 0x5b, 0xbf, 0x03, 0xeb, 0xd2, 0x90, 0x45, 0xfb, 0x2c, 0x0a, 0x3b, - 0x83, 0xe0, 0xa4, 0xd7, 0x0e, 0x65, 0xfd, 0xe5, 0x1e, 0xd4, 0x99, 0xfc, 0xaf, 0xbc, 0xab, 0x66, - 0x81, 0x22, 0xb5, 0x3d, 0x7e, 0x58, 0x4e, 0x10, 0x67, 0x87, 0x83, 0x40, 0x7a, 0x41, 0x2d, 0x51, - 0x9a, 0x5a, 0xff, 0x75, 0x07, 0xc8, 0xe4, 0xa0, 0x93, 0xc7, 0xb0, 0xea, 0x05, 0x3d, 0x26, 0xef, - 0x39, 0x42, 0xea, 0xd9, 0xb1, 0xe3, 0x5e, 0x4a, 0x8f, 0xdb, 0x2d, 0x9b, 0x25, 0x8b, 0x08, 0x7e, - 0x57, 0xb0, 0x4f, 0x39, 0x57, 0x47, 0x5d, 0xb2, 0x38, 0xce, 0x51, 0xe5, 0x09, 0x94, 0x60, 0x0b, - 0xd4, 0xbb, 0x60, 0x4a, 0x94, 0xe7, 0x64, 0x4e, 0x6e, 0x10, 0xbd, 0x56, 0x38, 0xe3, 0x0d, 0xc1, - 0xdf, 0x77, 0x32, 0x47, 0xda, 0x43, 0xdf, 0x1d, 0x07, 0x4a, 0x9b, 0x08, 0xac, 0x4c, 0x00, 0x05, - 0x17, 0x81, 0x5f, 0x83, 0x9b, 0x59, 0x94, 0x39, 0xbe, 0x2d, 0xe1, 0x49, 0x6a, 0xfb, 0x91, 0xe3, - 0xf1, 0x03, 0xd5, 0x5c, 0xde, 0xd4, 0x15, 0x14, 0xd9, 0x47, 0x09, 0x2b, 0x3d, 0x8a, 0x1c, 0x0f, - 0x0f, 0x55, 0xab, 0xa3, 0x48, 0x2a, 0x60, 0xf3, 0x68, 0x6e, 0x59, 0x87, 0x50, 0x04, 0x7c, 0x55, - 0x99, 0x12, 0xfb, 0xfe, 0x34, 0x74, 0xe2, 0xf4, 0x22, 0xca, 0x38, 0x66, 0x01, 0x31, 0x42, 0xdf, - 0x2e, 0xe7, 0x76, 0x25, 0xf3, 0x18, 0x8f, 0xb1, 0x7e, 0xe4, 0x3a, 0xbe, 0x2d, 0x66, 0x2a, 0x45, - 0x87, 0xad, 0x58, 0x0d, 0x24, 0x0a, 0x3f, 0xc0, 0xd8, 0x4d, 0x68, 0x10, 0x65, 0x34, 0x97, 0xaa, - 0x89, 0xd8, 0x15, 0x54, 0x25, 0xf6, 0x3a, 0x2c, 0x0d, 0x52, 0x9a, 0x88, 0xb6, 0x9e, 0x5f, 0x65, - 0x54, 0x1c, 0x1b, 0x2b, 0xd6, 0x22, 0x27, 0xf3, 0x76, 0x62, 0xd5, 0x98, 0xbc, 0x0d, 0x37, 0x44, - 0x53, 0x7d, 0xea, 0x24, 0xa1, 0x02, 0x04, 0x29, 0x1e, 0x1e, 0x2b, 0x16, 0x41, 0xe6, 0x91, 0xe0, - 0xc9, 0xde, 0xfd, 0x7f, 0xb8, 0xed, 0xb1, 0x94, 0xaf, 0x65, 0x28, 0xeb, 0x3a, 0xee, 0x05, 0xb5, - 0x2f, 0x58, 0x26, 0xcd, 0x34, 0x10, 0x78, 0x53, 0x88, 0x70, 0xc8, 0x1e, 0x17, 0x78, 0xc2, 0x32, - 0x61, 0xf0, 0x9b, 0xf0, 0xca, 0x24, 0x3a, 0x60, 0x69, 0x2a, 0xe1, 0x8b, 0x08, 0x37, 0xc7, 0xe0, - 0xc7, 0x2c, 0x4d, 0x05, 0xfe, 0x1d, 0x30, 0xc7, 0xa7, 0xd1, 0xbd, 0xa0, 0xee, 0x25, 0x6f, 0x73, - 0x53, 0x1b, 0x5c, 0x35, 0x87, 0x7b, 0x9c, 0x79, 0x9c, 0xf2, 0x1d, 0x5d, 0x9a, 0x39, 0x6a, 0xf6, - 0xd4, 0xd8, 0x2d, 0x21, 0xc2, 0x40, 0x0e, 0x37, 0xa6, 0x86, 0x6f, 0x1d, 0xaa, 0x29, 0xed, 0x07, - 0x34, 0xcc, 0x52, 0xbc, 0x91, 0xab, 0x58, 0xf9, 0xb7, 0x08, 0x2e, 0x47, 0x15, 0xd8, 0x97, 0x55, - 0x70, 0x39, 0xa2, 0xba, 0xce, 0xd9, 0x1e, 0xf5, 0x33, 0x47, 0xb8, 0x24, 0x11, 0x6c, 0xa4, 0xa0, - 0x1b, 0xde, 0x83, 0xba, 0x60, 0x8b, 0xee, 0xae, 0x20, 0x5f, 0x20, 0x44, 0x07, 0x5f, 0x87, 0xa5, - 0xe0, 0x99, 0xeb, 0xda, 0x2c, 0x8c, 0x07, 0x99, 0x50, 0xb2, 0x2a, 0x66, 0x8e, 0x93, 0xdb, 0x9c, - 0x8a, 0x8a, 0x36, 0xc1, 0xd0, 0xe4, 0x84, 0xb6, 0x1b, 0x28, 0xd8, 0xcc, 0x05, 0x85, 0x46, 0x25, - 0x19, 0x0d, 0xb2, 0x5c, 0xe5, 0x5a, 0x21, 0x79, 0x82, 0x64, 0xd4, 0xb9, 0x01, 0x0d, 0x3f, 0xc0, - 0x98, 0x12, 0x52, 0x37, 0x45, 0xeb, 0xfc, 0x80, 0x07, 0x12, 0x4a, 0x7c, 0x03, 0xd6, 0x75, 0xd7, - 0x46, 0xe3, 0xf2, 0x7e, 0x25, 0x48, 0xf1, 0x9a, 0xad, 0x62, 0xdd, 0x2c, 0xbc, 0xbb, 0x5d, 0xf0, - 0x8f, 0x35, 0x67, 0x13, 0xe0, 0x73, 0x96, 0x05, 0x4e, 0xcc, 0x71, 0xb7, 0x34, 0x67, 0x43, 0xdc, - 0x2e, 0xb2, 0x8e, 0x53, 0xf2, 0x26, 0xac, 0x04, 0x2c, 0xb4, 0x45, 0x5c, 0x14, 0x86, 0xd6, 0xc5, - 0xbc, 0x05, 0x2c, 0x3c, 0xe2, 0x9c, 0xae, 0xb2, 0xc0, 0xc5, 0x9d, 0xe1, 0x84, 0xf8, 0x6d, 0x29, - 0xee, 0x0c, 0x47, 0xc5, 0x1f, 0xc2, 0x2a, 0xd7, 0x2e, 0x03, 0xaa, 0x90, 0x7f, 0x45, 0x44, 0x76, - 0xc0, 0x42, 0x0b, 0x59, 0x23, 0x00, 0x67, 0x38, 0x09, 0xb8, 0x23, 0x01, 0xce, 0x70, 0x0c, 0x70, - 0x0a, 0x2b, 0xd2, 0xd7, 0xec, 0xa8, 0x67, 0xab, 0x14, 0x6d, 0xde, 0xc5, 0x95, 0x61, 0x63, 0x64, - 0x29, 0x9a, 0x92, 0xe9, 0xad, 0x65, 0x09, 0xd6, 0x92, 0x7f, 0x91, 0x00, 0x71, 0x52, 0x47, 0x32, - 0xe7, 0x3d, 0x3d, 0x01, 0x1e, 0x3f, 0x73, 0xdd, 0xe9, 0x99, 0x53, 0x00, 0xf5, 0xcc, 0xb9, 0x31, - 0x01, 0xd4, 0x32, 0xe7, 0x07, 0x70, 0x47, 0x02, 0xfd, 0x40, 0x9d, 0xb6, 0x47, 0xcc, 0xde, 0x47, - 0xf4, 0x2d, 0x21, 0x74, 0x14, 0x88, 0x33, 0xa0, 0x6e, 0x7a, 0xaa, 0x06, 0xdd, 0x7e, 0x6b, 0xaa, - 0x06, 0xad, 0x0d, 0xdf, 0x82, 0x3b, 0xc2, 0x75, 0x9e, 0xe1, 0xad, 0x8b, 0xcd, 0xbc, 0xa1, 0x48, - 0xdf, 0x58, 0x71, 0x48, 0x1f, 0x99, 0x9e, 0xc8, 0x1b, 0x28, 0x24, 0x6e, 0x66, 0xda, 0xde, 0x90, - 0x27, 0xf0, 0xc3, 0x24, 0x0a, 0xba, 0x8f, 0xc8, 0x1e, 0xdc, 0x7b, 0x81, 0x02, 0x8f, 0xa5, 0x97, - 0x26, 0x45, 0x15, 0xeb, 0xd3, 0x55, 0xec, 0xb3, 0xf4, 0x92, 0x1c, 0xc0, 0xc6, 0x0b, 0x94, 0x60, - 0x2e, 0x33, 0x7b, 0xa8, 0xe5, 0xf6, 0x74, 0x2d, 0x98, 0xcc, 0xae, 0xef, 0x8c, 0xaa, 0xf0, 0xf5, - 0xaf, 0xeb, 0x8c, 0x2c, 0xf3, 0x4d, 0xeb, 0x8c, 0xb8, 0x89, 0xc9, 0x55, 0x5c, 0x4c, 0xeb, 0x8c, - 0xb8, 0x93, 0x91, 0x4a, 0x4e, 0xe0, 0xb5, 0xeb, 0x94, 0x3c, 0x63, 0x29, 0xcb, 0xf8, 0x76, 0x33, - 0xf2, 0x68, 0x6a, 0x32, 0x54, 0xb5, 0x31, 0x4d, 0xd5, 0xc7, 0x42, 0xb0, 0xc3, 0xe5, 0x48, 0x17, - 0xde, 0xb8, 0x4e, 0xa1, 0xc7, 0x52, 0xd7, 0x49, 0xbc, 0x5c, 0xe5, 0x27, 0xa8, 0xb2, 0x35, 0x4d, - 0xe5, 0xbe, 0x12, 0x15, 0x4a, 0x0f, 0xe1, 0xfe, 0x84, 0x52, 0x4c, 0xbf, 0xcf, 0xa8, 0x9b, 0x77, - 0xf6, 0x72, 0xda, 0x98, 0xf3, 0x7c, 0xfe, 0x31, 0x75, 0x65, 0x6f, 0x8f, 0xe0, 0xd5, 0xe9, 0x7a, - 0xb0, 0x2e, 0x95, 0xe6, 0xaa, 0x7c, 0x54, 0x75, 0x77, 0x52, 0xd5, 0x09, 0xca, 0x49, 0x6d, 0xef, - 0xc3, 0xed, 0x5e, 0x96, 0xda, 0xa1, 0x2a, 0x78, 0x05, 0x34, 0x88, 0x92, 0x2b, 0x3b, 0x8c, 0xb0, - 0x3c, 0x61, 0xfe, 0xa8, 0x84, 0xf7, 0x40, 0x37, 0x7b, 0x59, 0xda, 0x11, 0x65, 0x2e, 0x21, 0xd0, - 0x11, 0x7c, 0x9e, 0x08, 0x35, 0x78, 0xc6, 0xc2, 0x2b, 0x5b, 0x00, 0xff, 0x50, 0x00, 0x97, 0x15, - 0xf0, 0x8c, 0x85, 0x57, 0x58, 0x35, 0xe1, 0x7b, 0x8a, 0x71, 0x88, 0xb2, 0xf6, 0x63, 0x01, 0x5a, - 0xd1, 0x41, 0xca, 0xd2, 0x43, 0x58, 0xd5, 0x60, 0x5e, 0xd0, 0x93, 0x86, 0xfe, 0x48, 0x60, 0x0c, - 0x85, 0xd9, 0x0f, 0x7a, 0xc2, 0xce, 0x23, 0x58, 0x1b, 0x03, 0x28, 0x33, 0x7f, 0x2c, 0x20, 0x44, - 0x83, 0x28, 0x2b, 0x7b, 0x70, 0x97, 0x83, 0x78, 0x28, 0x5f, 0x33, 0x22, 0x7f, 0x22, 0x8e, 0x2d, - 0xeb, 0xbd, 0x2c, 0xe5, 0xf1, 0x3c, 0x6d, 0x50, 0xde, 0x05, 0x73, 0x54, 0x89, 0x36, 0x2e, 0x7f, - 0x2a, 0xe0, 0xab, 0x1a, 0xbc, 0x18, 0x9a, 0x6f, 0xc0, 0xfa, 0x14, 0xa0, 0xb2, 0xfc, 0x67, 0x02, - 0xba, 0x36, 0x06, 0x55, 0x56, 0xe5, 0xb8, 0x16, 0xe0, 0x62, 0x8c, 0xfe, 0x5c, 0x20, 0x57, 0x34, - 0x64, 0x3e, 0x4c, 0xef, 0xc1, 0xad, 0x49, 0x98, 0x32, 0xf9, 0x13, 0x01, 0xbc, 0x31, 0x0a, 0x1c, - 0x9b, 0xfc, 0x22, 0xe8, 0xd1, 0x2d, 0x83, 0xd4, 0xfc, 0x0b, 0x01, 0xe3, 0x93, 0xaf, 0xc2, 0x9d, - 0xb3, 0xc4, 0x86, 0x72, 0x04, 0xa2, 0xa5, 0x9b, 0xbf, 0x2c, 0x26, 0x7f, 0x22, 0xcf, 0x7c, 0x00, - 0x77, 0xa6, 0xc0, 0x44, 0x3d, 0x8b, 0x27, 0x5a, 0xf3, 0xa7, 0x02, 0x6c, 0x8e, 0x81, 0x51, 0xe2, - 0x90, 0xf9, 0x94, 0xef, 0xf5, 0x26, 0x35, 0xa4, 0xf2, 0x31, 0xd4, 0x23, 0xf3, 0xaf, 0x04, 0x7e, - 0x6d, 0x14, 0xdf, 0x45, 0x7e, 0xf7, 0xd1, 0x74, 0xfb, 0x12, 0x8d, 0x19, 0xf7, 0xaf, 0xa7, 0xda, - 0x17, 0x78, 0x4c, 0xb8, 0x9b, 0x60, 0x28, 0x0d, 0x32, 0x93, 0x84, 0xe6, 0xdf, 0x08, 0xd0, 0xa2, - 0x00, 0x89, 0xa4, 0xd1, 0xd1, 0x87, 0x48, 0x65, 0x42, 0x35, 0xae, 0x7f, 0x5b, 0xcc, 0x63, 0x91, - 0x03, 0xe5, 0xc8, 0x4a, 0x77, 0xe7, 0x30, 0x2f, 0x50, 0x48, 0x5c, 0x92, 0xfe, 0x4e, 0xa0, 0x88, - 0x40, 0xed, 0x07, 0x02, 0x87, 0x8b, 0xd1, 0xfb, 0xf0, 0x8a, 0x06, 0x12, 0x76, 0x30, 0x97, 0x70, - 0x6a, 0x90, 0x9a, 0x3f, 0x2b, 0x5c, 0x0e, 0xa1, 0x68, 0x8c, 0xe7, 0x90, 0xc3, 0x2c, 0x15, 0xd9, - 0x7b, 0x3a, 0x5c, 0xa6, 0xa2, 0x20, 0x35, 0x7f, 0x2e, 0x34, 0xdc, 0x9a, 0xd0, 0x20, 0xb2, 0xd0, - 0x71, 0xaa, 0xa2, 0x85, 0x2b, 0x41, 0x77, 0xd7, 0x9b, 0xfe, 0xf7, 0x45, 0xb4, 0xb4, 0xbd, 0x21, - 0xf7, 0x76, 0xad, 0xf1, 0x3b, 0x22, 0x56, 0x73, 0xe0, 0x64, 0xf3, 0x7f, 0x21, 0xe0, 0x66, 0x01, - 0x1f, 0xeb, 0xc0, 0x87, 0x70, 0xff, 0x3a, 0x15, 0x45, 0x17, 0x7e, 0x29, 0xb4, 0xdc, 0x9e, 0xa2, - 0x25, 0xef, 0x84, 0x9c, 0xb4, 0xf3, 0x64, 0x90, 0x51, 0x5d, 0x4b, 0x90, 0x9a, 0xff, 0x50, 0x4c, - 0xda, 0x2e, 0x67, 0xe7, 0xe0, 0xe3, 0x54, 0x05, 0x9f, 0x0e, 0x93, 0xdd, 0x0f, 0x52, 0xf3, 0x57, - 0x45, 0xf0, 0x15, 0x40, 0xd1, 0xff, 0xe3, 0xb4, 0xf5, 0xb3, 0x52, 0x7e, 0xf4, 0xd5, 0x8e, 0xf9, - 0xe4, 0x55, 0x68, 0x06, 0x2c, 0x3c, 0xeb, 0x9e, 0x88, 0x8a, 0x41, 0x5e, 0x66, 0x69, 0x08, 0x2a, - 0x17, 0xed, 0xa0, 0xb3, 0xc4, 0x2c, 0xa6, 0x3e, 0x0b, 0xa9, 0xfd, 0xe9, 0x80, 0x0e, 0x68, 0x2e, - 0x2d, 0x8e, 0xd8, 0x2b, 0x8a, 0xfb, 0x6d, 0xce, 0x94, 0xa0, 0x77, 0xc1, 0xcc, 0x41, 0xe7, 0x09, - 0x75, 0x2e, 0x69, 0x92, 0xc3, 0xe4, 0x49, 0x57, 0xf1, 0x77, 0x05, 0x5b, 0x00, 0x5b, 0xdf, 0x87, - 0x4a, 0x37, 0x4a, 0x32, 0xf2, 0x3a, 0x2c, 0x9c, 0x63, 0xd9, 0x2b, 0x9d, 0x5e, 0xf7, 0x93, 0x4c, - 0xf2, 0x2a, 0x2c, 0xb2, 0x14, 0x6f, 0x7b, 0x1d, 0x9f, 0x03, 0xe5, 0xf3, 0xa2, 0x51, 0xe2, 0x4b, - 0x16, 0x6e, 0x7f, 0xbf, 0x0c, 0x86, 0x78, 0x7c, 0x78, 0x98, 0x38, 0x01, 0xdd, 0x8d, 0x06, 0xa1, - 0x47, 0x1e, 0x42, 0x45, 0xbb, 0x1d, 0xbc, 0xa1, 0x3f, 0x51, 0x44, 0x01, 0xed, 0xb6, 0x00, 0x05, - 0x49, 0x0b, 0x6a, 0x83, 0xf0, 0x9c, 0xb3, 0xa8, 0x37, 0x52, 0x3f, 0x2b, 0xc8, 0x64, 0x0d, 0xe6, - 0xc5, 0xb3, 0x29, 0x39, 0x18, 0xf2, 0x8b, 0x6c, 0x42, 0xcd, 0x75, 0x7c, 0xf7, 0x70, 0x10, 0xba, - 0xe9, 0x94, 0x6a, 0x5e, 0xc1, 0x24, 0xff, 0x0f, 0xea, 0x3d, 0xde, 0x48, 0x1b, 0x1f, 0x19, 0xc8, - 0x67, 0xb3, 0x23, 0x05, 0x77, 0x64, 0xe3, 0x7b, 0x04, 0xf2, 0x75, 0x58, 0x74, 0x83, 0x58, 0xd4, - 0x0e, 0xb4, 0xcb, 0x0f, 0xf9, 0xce, 0x15, 0x65, 0xf6, 0x82, 0x78, 0xdf, 0xc9, 0x1c, 0xbc, 0x95, - 0xab, 0xbb, 0xc5, 0x47, 0xeb, 0x47, 0x25, 0xa8, 0x6b, 0x83, 0xf2, 0xa2, 0xf1, 0x40, 0x81, 0x89, - 0xf1, 0xf8, 0x0a, 0xcc, 0xa5, 0x99, 0x23, 0x67, 0x26, 0x7f, 0x5c, 0x3b, 0x3e, 0xce, 0x96, 0x10, - 0x22, 0x9b, 0x30, 0x4b, 0x43, 0x35, 0x4f, 0xd7, 0xc9, 0x72, 0x91, 0xd6, 0x6f, 0x4a, 0x30, 0x2f, - 0x38, 0xe4, 0x0d, 0xa8, 0xf5, 0x06, 0xa1, 0x6b, 0xe3, 0x7d, 0xc7, 0x64, 0x89, 0xbd, 0xca, 0x99, - 0xfb, 0x34, 0x75, 0x27, 0xca, 0xac, 0xe5, 0xcf, 0x2b, 0xb3, 0xea, 0xf5, 0xe7, 0xd9, 0x17, 0xd5, - 0x9f, 0xdf, 0x80, 0x39, 0x1c, 0x70, 0xf9, 0x70, 0x70, 0x79, 0xa2, 0xe5, 0x96, 0xe0, 0x17, 0xae, - 0x38, 0xf7, 0x22, 0x57, 0xfc, 0x16, 0x34, 0xb0, 0x3a, 0xcf, 0xc2, 0x3e, 0xef, 0x02, 0x79, 0x08, - 0x8b, 0x7d, 0xf9, 0x2d, 0x4a, 0xbd, 0x93, 0xbd, 0x6c, 0xf4, 0x35, 0x40, 0xeb, 0x09, 0xd4, 0x95, - 0x82, 0x2e, 0xcd, 0xc8, 0x7b, 0xd0, 0x1c, 0xc1, 0xab, 0xa8, 0x92, 0xb7, 0xd6, 0xba, 0x2d, 0x6b, - 0x51, 0x57, 0x94, 0xb6, 0x7e, 0x50, 0x82, 0x79, 0xf1, 0x52, 0x95, 0xbc, 0xa3, 0xb5, 0x22, 0x7f, - 0xf3, 0x97, 0x77, 0x56, 0xb3, 0x57, 0x34, 0xa6, 0x4b, 0xb3, 0xf4, 0x25, 0x6b, 0xe0, 0x26, 0x2c, - 0x3c, 0xa3, 0x09, 0xbe, 0x78, 0x14, 0x51, 0xa1, 0x3e, 0x5b, 0x6f, 0x42, 0x8d, 0xb7, 0x45, 0xbc, - 0xf6, 0xfb, 0xdc, 0x2b, 0x9d, 0xd6, 0x1f, 0x94, 0x60, 0x41, 0xbe, 0xad, 0x25, 0x0f, 0x00, 0xe2, - 0x24, 0xfa, 0x64, 0xa4, 0xd3, 0x4b, 0x05, 0x44, 0xbc, 0x7b, 0xac, 0x71, 0x11, 0x71, 0xc5, 0xf3, - 0x18, 0xd6, 0xfa, 0x34, 0xa4, 0x89, 0xc3, 0x4f, 0x02, 0xb2, 0x76, 0x20, 0x9e, 0x49, 0x95, 0xf1, - 0x99, 0xd4, 0x6a, 0xce, 0x15, 0x15, 0x04, 0xf1, 0x5e, 0xea, 0xe5, 0xf2, 0xcb, 0xeb, 0xd0, 0x1c, - 0x7d, 0xc1, 0x4b, 0x56, 0x55, 0x9d, 0x5d, 0x54, 0x33, 0xc5, 0xc7, 0xd6, 0xef, 0xcd, 0x8a, 0xc7, - 0xfc, 0x78, 0xf5, 0xb8, 0x0c, 0x8b, 0xfc, 0x37, 0x7f, 0xc7, 0x62, 0xcc, 0x28, 0x52, 0x7e, 0xb1, - 0x68, 0x94, 0x14, 0x29, 0xbf, 0x8f, 0x33, 0xca, 0x64, 0x05, 0x96, 0x38, 0x49, 0xbb, 0x89, 0x32, - 0x66, 0x49, 0x03, 0xaa, 0xa8, 0x2d, 0x8a, 0x3b, 0x46, 0x85, 0x2c, 0x42, 0x8d, 0x7f, 0xe1, 0x25, - 0x86, 0x31, 0x97, 0x2b, 0xc1, 0x63, 0xfc, 0x4e, 0xbf, 0x6f, 0xcc, 0x2b, 0xf9, 0x8f, 0x22, 0x16, - 0x1a, 0x0b, 0xea, 0xeb, 0x29, 0xf3, 0x7d, 0xa3, 0x4a, 0xd6, 0x80, 0xf0, 0xaf, 0xd1, 0xa7, 0xbc, - 0x46, 0x8d, 0x98, 0xb0, 0xaa, 0xd3, 0xd5, 0x63, 0x4b, 0x03, 0x08, 0x81, 0x26, 0xe7, 0x14, 0xf7, - 0x73, 0x46, 0x9d, 0xac, 0xc3, 0x1a, 0xd2, 0x26, 0x1e, 0xec, 0x18, 0x0d, 0x65, 0x8f, 0xa7, 0x70, - 0x63, 0x91, 0x34, 0x01, 0xf8, 0x97, 0x88, 0x29, 0xa3, 0xa9, 0xbe, 0xc5, 0x4c, 0x1b, 0x4b, 0x64, - 0x09, 0xea, 0xc5, 0xf7, 0xb6, 0x61, 0xa8, 0x06, 0x8e, 0x8e, 0xb9, 0xb1, 0xac, 0x46, 0x46, 0x7b, - 0xd4, 0x6a, 0xac, 0x92, 0x57, 0xc0, 0x94, 0xe8, 0x89, 0xab, 0x0d, 0xe3, 0xc6, 0xd6, 0xd7, 0xa0, - 0xa1, 0x3f, 0xdd, 0xe4, 0xb6, 0x4e, 0x9d, 0x34, 0x3d, 0xbb, 0x48, 0xa2, 0x41, 0xff, 0xc2, 0x98, - 0xe1, 0x43, 0x99, 0xdb, 0x31, 0x4a, 0xa4, 0x0a, 0x95, 0x27, 0x4e, 0x7a, 0x61, 0x94, 0xb7, 0xbe, - 0x01, 0x4b, 0x63, 0x4f, 0x76, 0x39, 0xb3, 0x73, 0xd2, 0x39, 0x30, 0x66, 0xf8, 0xbf, 0xc3, 0x9d, - 0xee, 0x99, 0x51, 0x22, 0xab, 0x60, 0x3c, 0x69, 0x7f, 0xf8, 0xc4, 0xde, 0x3b, 0x39, 0x3e, 0xb5, - 0x0e, 0xba, 0xdd, 0xf6, 0x49, 0xc7, 0x28, 0x6f, 0x3d, 0x00, 0x28, 0x1e, 0xa3, 0x91, 0x1a, 0xcc, - 0x61, 0x25, 0x47, 0x00, 0xcf, 0xd8, 0xd3, 0x8f, 0x8d, 0x12, 0xa9, 0xc3, 0x82, 0x5c, 0xda, 0x8d, - 0xf2, 0xd6, 0x23, 0x58, 0x92, 0xc7, 0x37, 0xde, 0xb7, 0xa7, 0x2c, 0xe4, 0x4b, 0x0d, 0x69, 0x77, - 0x3e, 0xde, 0x39, 0x6a, 0xef, 0xdb, 0xed, 0xce, 0xfe, 0xc1, 0xf7, 0xec, 0xa7, 0xed, 0xce, 0xbe, - 0xd0, 0xf0, 0xa4, 0xd3, 0xfd, 0xae, 0x51, 0xda, 0x3a, 0x87, 0xd5, 0x69, 0xaf, 0x3a, 0xc9, 0x6d, - 0xb8, 0xa9, 0x90, 0xfb, 0xed, 0xee, 0xd9, 0x4e, 0x67, 0xef, 0xc0, 0x3e, 0x3e, 0x38, 0xb3, 0xda, - 0x7b, 0xc6, 0x0c, 0x99, 0x87, 0xf2, 0xd1, 0xdb, 0x46, 0x09, 0x7f, 0xb7, 0x8d, 0x32, 0x01, 0x98, - 0xdf, 0x3b, 0xe9, 0xb6, 0x3b, 0x07, 0xc6, 0x2c, 0xf7, 0xa3, 0x76, 0xa7, 0x73, 0x60, 0xd9, 0xa7, - 0xd6, 0xc9, 0xfe, 0x77, 0xf6, 0xce, 0x8c, 0xca, 0xd6, 0xdb, 0xc5, 0xfb, 0x54, 0xec, 0xca, 0x2a, - 0x18, 0xed, 0xf0, 0x99, 0xe3, 0x33, 0x2f, 0xa7, 0x19, 0x33, 0xbc, 0x2f, 0x27, 0x22, 0x9f, 0x1a, - 0xa5, 0xad, 0xef, 0x14, 0x8f, 0x27, 0x11, 0x72, 0x13, 0x56, 0xf4, 0x6f, 0x09, 0x37, 0x66, 0x78, - 0x0f, 0x75, 0x86, 0x28, 0xa3, 0x88, 0x21, 0xd5, 0xe9, 0x67, 0x51, 0xfc, 0xd4, 0x28, 0x6f, 0xfd, - 0xaa, 0x04, 0x55, 0xf5, 0xb8, 0xa7, 0x88, 0xa4, 0x90, 0x26, 0xe8, 0xe3, 0x33, 0xe4, 0x06, 0x2c, - 0x63, 0x4c, 0xd0, 0x5e, 0x76, 0x32, 0xc8, 0x24, 0xb9, 0xa4, 0x7c, 0xc9, 0x62, 0xfd, 0x0b, 0x8d, - 0x5e, 0x26, 0x06, 0x34, 0x44, 0xe0, 0x89, 0x27, 0x1a, 0xc6, 0x2c, 0x37, 0x8b, 0x71, 0x17, 0x66, - 0x2c, 0xa7, 0x56, 0xc8, 0x2d, 0xb8, 0x31, 0xa2, 0x36, 0x67, 0xcd, 0x91, 0x3b, 0x70, 0x4b, 0x01, - 0x26, 0xd9, 0xf3, 0x5b, 0x1b, 0xd0, 0xd0, 0x1f, 0x15, 0x29, 0x8b, 0xdc, 0xbd, 0x44, 0x93, 0xb7, - 0xbe, 0x0e, 0xcb, 0x13, 0x0f, 0x18, 0xf8, 0xc4, 0xb4, 0x3b, 0x62, 0x4c, 0x8f, 0xdb, 0x1d, 0xfb, - 0x78, 0xe7, 0x7b, 0x46, 0x89, 0x63, 0x77, 0x8f, 0x4e, 0x4e, 0x8e, 0xed, 0xc3, 0xf6, 0xd1, 0xd9, - 0x81, 0x65, 0x94, 0xb7, 0xb6, 0xc6, 0xb0, 0xe8, 0xa0, 0xdc, 0xd1, 0x4e, 0xf6, 0x76, 0x8e, 0x8c, - 0x19, 0x3e, 0xaf, 0x1f, 0x1e, 0x9d, 0xec, 0xee, 0x1c, 0x19, 0xa5, 0xad, 0x5d, 0x58, 0x9e, 0xb8, - 0xb6, 0xe5, 0x91, 0x70, 0x18, 0x25, 0x2e, 0x15, 0x24, 0xe1, 0x58, 0x3b, 0x83, 0x2c, 0x32, 0x4a, - 0x3c, 0xdc, 0x91, 0x25, 0x12, 0x0a, 0x0b, 0xfb, 0x46, 0x79, 0xeb, 0x5b, 0xb0, 0x34, 0xb6, 0x79, - 0xe2, 0xa1, 0x73, 0x18, 0xf9, 0x7e, 0xf4, 0x9c, 0x4b, 0x60, 0x24, 0x9d, 0x26, 0xd4, 0xa5, 0x1e, - 0xff, 0x2c, 0xf1, 0x28, 0xdf, 0xc3, 0x8b, 0xb5, 0xcc, 0x8a, 0x9e, 0x1b, 0xe5, 0xad, 0x13, 0x30, - 0xc6, 0x37, 0x2c, 0x64, 0x01, 0x66, 0xdb, 0x61, 0x66, 0xcc, 0xf0, 0x86, 0x1f, 0xfa, 0x91, 0x93, - 0x89, 0xb8, 0xd8, 0xa7, 0x2e, 0x0b, 0x1c, 0xdf, 0x28, 0xf3, 0x44, 0xb2, 0xef, 0x64, 0xf4, 0x8c, - 0x05, 0x54, 0x24, 0xc1, 0xfd, 0x81, 0xb8, 0xef, 0x33, 0x2a, 0x3c, 0x66, 0xc6, 0xb6, 0x2f, 0xbc, - 0x0b, 0xfc, 0xd4, 0x20, 0xba, 0x8f, 0xd6, 0x52, 0xa3, 0x84, 0x43, 0xc1, 0x57, 0xb5, 0xd4, 0x28, - 0xef, 0x7e, 0xf9, 0xd7, 0x9f, 0xdd, 0x2d, 0xfd, 0xf3, 0x67, 0x77, 0x4b, 0xff, 0xf6, 0xd9, 0xdd, - 0xd2, 0x8f, 0xff, 0xfd, 0xee, 0x0c, 0xdc, 0x70, 0xa3, 0xe0, 0x01, 0x5f, 0xf1, 0x5c, 0x27, 0x7e, - 0x90, 0x31, 0xef, 0x1c, 0xd7, 0x80, 0xd3, 0xd2, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0d, - 0xe0, 0xbb, 0xe7, 0x35, 0x00, 0x00, + // 5128 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7a, 0x4b, 0x73, 0x23, 0xc9, + 0x71, 0x3f, 0x01, 0x82, 0x24, 0x90, 0x00, 0xc1, 0x66, 0x91, 0xc3, 0xe9, 0xe1, 0xec, 0xcc, 0x70, + 0xa0, 0x7d, 0x50, 0xfc, 0x6b, 0x67, 0x76, 0x39, 0xa3, 0x5d, 0xad, 0xf4, 0x5f, 0x69, 0xf9, 0xdc, + 0xc1, 0x0e, 0x09, 0x52, 0x0d, 0x6a, 0xa5, 0x83, 0x23, 0x3a, 0x9a, 0xdd, 0x05, 0xb0, 0x96, 0xfd, + 0xda, 0xee, 0xc6, 0x0c, 0xb8, 0x27, 0x9d, 0x7d, 0x72, 0x58, 0x61, 0x59, 0x7e, 0x4a, 0x96, 0x5f, + 0x92, 0x25, 0xeb, 0xe0, 0x4f, 0xe0, 0xa3, 0x8e, 0xbe, 0x5a, 0x07, 0x87, 0x43, 0x3e, 0xf9, 0x1b, + 0x38, 0x7c, 0x72, 0x54, 0x56, 0x55, 0x77, 0xe1, 0xc1, 0xd9, 0xd9, 0xb0, 0x0e, 0x3e, 0x01, 0x9d, + 0x99, 0xbf, 0xcc, 0x7a, 0x64, 0x66, 0x55, 0x65, 0x15, 0x34, 0xe9, 0x90, 0xba, 0x83, 0x2c, 0x4a, + 0x1e, 0xc4, 0x49, 0x94, 0x45, 0xa4, 0x92, 0xb1, 0xf8, 0x7c, 0xdd, 0xa0, 0xc3, 0x38, 0xa1, 0x69, + 0xca, 0xa2, 0x50, 0xd0, 0xd7, 0x1b, 0xa9, 0x7b, 0x41, 0x03, 0x47, 0x7e, 0xad, 0xf6, 0xa3, 0x7e, + 0x84, 0x7f, 0x1f, 0xf2, 0x7f, 0x82, 0xda, 0xfa, 0x79, 0x0d, 0xaa, 0x07, 0x52, 0x1d, 0x79, 0x15, + 0xca, 0x59, 0x6c, 0x96, 0x36, 0x4a, 0x9b, 0xcd, 0xed, 0xe6, 0x03, 0xae, 0xf5, 0x01, 0xe7, 0x9d, + 0x5d, 0xc5, 0x74, 0xb7, 0xf2, 0xeb, 0x7f, 0xbb, 0x37, 0x63, 0x95, 0xb3, 0x98, 0x6c, 0x41, 0x35, + 0x3b, 0xf7, 0xed, 0xd4, 0x75, 0x42, 0xb3, 0xbc, 0x51, 0xda, 0xac, 0x6f, 0x2f, 0x09, 0xd9, 0x33, + 0xe7, 0xdc, 0xa7, 0x5d, 0xd7, 0x09, 0xad, 0x85, 0xec, 0xdc, 0xe7, 0x7f, 0xb8, 0x2c, 0xf3, 0x86, + 0x42, 0x76, 0x56, 0x97, 0x6d, 0x87, 0x1e, 0x1d, 0x0a, 0x59, 0xe6, 0xe1, 0x1f, 0xf2, 0x26, 0xd4, + 0x52, 0xea, 0x53, 0x37, 0x63, 0x51, 0x68, 0x56, 0x74, 0xe1, 0xae, 0x22, 0x5b, 0x85, 0x04, 0x79, + 0x04, 0x75, 0xa7, 0xdf, 0x4f, 0x68, 0xdf, 0x41, 0xc0, 0x1c, 0x02, 0x96, 0x05, 0x60, 0xa7, 0x60, + 0x58, 0xba, 0x14, 0xb9, 0x0b, 0x95, 0x2c, 0x8a, 0x3b, 0xe6, 0x3c, 0x4a, 0x83, 0x6c, 0x77, 0x14, + 0x77, 0x2c, 0xa4, 0x93, 0xfb, 0x30, 0xe7, 0xb3, 0x80, 0x65, 0xe6, 0x02, 0x0a, 0xd4, 0x85, 0xc0, + 0x11, 0x27, 0x59, 0x82, 0x43, 0xf6, 0x60, 0x99, 0x0e, 0xdd, 0x0b, 0x27, 0xec, 0x53, 0x3b, 0xa1, + 0x2e, 0x65, 0xcf, 0x68, 0x62, 0x56, 0x51, 0x7c, 0x4d, 0x8d, 0x99, 0x60, 0x5b, 0x92, 0x6b, 0x19, + 0x74, 0x8c, 0xc2, 0xdb, 0xf1, 0x49, 0xc4, 0x42, 0xb3, 0xa6, 0xb7, 0xe3, 0xa3, 0x88, 0x85, 0x16, + 0xd2, 0xc9, 0x3d, 0xa8, 0xab, 0x49, 0xb6, 0x99, 0x67, 0xc2, 0x46, 0x69, 0xb3, 0x66, 0x81, 0x22, + 0xb5, 0x3d, 0xae, 0xe0, 0x92, 0xf9, 0xbe, 0x59, 0xd7, 0x15, 0x3c, 0x65, 0xbe, 0x6f, 0x21, 0x9d, + 0xbc, 0x0f, 0x4b, 0x79, 0x2b, 0x53, 0x1a, 0x7a, 0x34, 0x31, 0x1b, 0x28, 0xba, 0x3a, 0xda, 0xc6, + 0x2e, 0xf2, 0xac, 0x26, 0x1d, 0xf9, 0x26, 0x6f, 0x01, 0x9c, 0x26, 0xd1, 0x27, 0x72, 0x32, 0x16, + 0x11, 0x69, 0x08, 0x64, 0x41, 0xb7, 0x34, 0x19, 0xf2, 0x11, 0xac, 0xc6, 0x4e, 0x92, 0x31, 0xfe, + 0x61, 0x67, 0xdc, 0x13, 0xc4, 0xac, 0x37, 0x11, 0x6b, 0x4a, 0xac, 0x92, 0x28, 0x5c, 0x85, 0xc4, + 0x13, 0x34, 0xde, 0xb9, 0x34, 0x4a, 0x32, 0x73, 0x49, 0xef, 0x5c, 0x37, 0x4a, 0x32, 0x0b, 0xe9, + 0xe4, 0x55, 0x98, 0x7f, 0xce, 0x42, 0x2f, 0x7a, 0x6e, 0x1a, 0x28, 0xd1, 0x10, 0x12, 0xdf, 0x45, + 0x9a, 0x25, 0x79, 0xa4, 0x03, 0xf7, 0x7b, 0x2c, 0xa4, 0x76, 0x3f, 0x71, 0x58, 0x48, 0x3d, 0x3b, + 0xbd, 0x18, 0xf4, 0x7a, 0xbc, 0x59, 0x59, 0x42, 0x9d, 0xc0, 0x76, 0xa3, 0x41, 0x98, 0x99, 0xcb, + 0x1b, 0xa5, 0xcd, 0x8a, 0x74, 0xee, 0x3b, 0x5c, 0xfc, 0x43, 0x21, 0xdd, 0x15, 0xc2, 0x5d, 0x94, + 0xdd, 0xe3, 0xa2, 0xe4, 0x23, 0xb8, 0x37, 0x55, 0xdf, 0xb9, 0x93, 0xb9, 0x17, 0x76, 0xca, 0x3e, + 0xa3, 0x26, 0xd1, 0xb4, 0xdd, 0x9e, 0xd4, 0xb6, 0xcb, 0x25, 0xbb, 0xec, 0x33, 0xca, 0x7b, 0x40, + 0x87, 0xb1, 0x13, 0x7a, 0xe6, 0x8a, 0xde, 0x83, 0x03, 0xa4, 0x59, 0x92, 0x47, 0xde, 0x80, 0x05, + 0xf1, 0x6f, 0xdb, 0x5c, 0x45, 0xb1, 0x45, 0x5d, 0x6c, 0xdb, 0x52, 0x5c, 0x3e, 0xdb, 0xe7, 0x49, + 0xe4, 0x78, 0xae, 0x93, 0x66, 0xf6, 0xa7, 0x03, 0x9a, 0x5c, 0x99, 0x37, 0xf4, 0xd9, 0xde, 0x55, + 0xcc, 0x6f, 0x73, 0x9e, 0xd5, 0x3c, 0x1f, 0xf9, 0x26, 0x8f, 0xa1, 0xc1, 0x78, 0x3c, 0xda, 0x7e, + 0x14, 0x5d, 0x0e, 0x62, 0xd3, 0xd4, 0x63, 0x09, 0x23, 0xf5, 0x28, 0x8a, 0x2e, 0xbf, 0x13, 0x5b, + 0x75, 0xa6, 0x3e, 0x06, 0x31, 0xb9, 0x03, 0x10, 0x3b, 0x09, 0x0d, 0x33, 0x9b, 0x79, 0x43, 0xf3, + 0xd6, 0x46, 0x69, 0x73, 0xd1, 0xaa, 0x09, 0x4a, 0xdb, 0x1b, 0x92, 0x53, 0x58, 0xa3, 0xc3, 0xd8, + 0x77, 0x58, 0x68, 0xf7, 0xa2, 0xc4, 0x76, 0xa3, 0x30, 0x94, 0xee, 0xb4, 0x8e, 0xea, 0xd7, 0xf3, + 0xbe, 0x70, 0x99, 0xc3, 0x28, 0xd9, 0xcb, 0x25, 0xac, 0x55, 0x3a, 0x85, 0xda, 0xfa, 0xe5, 0x2c, + 0x34, 0x47, 0xfd, 0x96, 0x6c, 0x6a, 0x19, 0x8b, 0x8c, 0x7a, 0xf6, 0x44, 0xd6, 0x5a, 0xa6, 0xa1, + 0x1b, 0x79, 0xd4, 0xb3, 0x33, 0x27, 0xbd, 0xb4, 0x03, 0x9a, 0x39, 0x66, 0x79, 0x63, 0x76, 0xb3, + 0x61, 0x2d, 0x49, 0xc6, 0x99, 0x93, 0x5e, 0x1e, 0xd3, 0xcc, 0x21, 0x6f, 0x43, 0xb3, 0xf0, 0xe5, + 0x4b, 0x7a, 0x95, 0x9a, 0xb3, 0x1b, 0xb3, 0x85, 0x27, 0x1e, 0x0c, 0xe3, 0xc4, 0x5a, 0xcc, 0x25, + 0x9e, 0xd2, 0xab, 0x94, 0xbc, 0x0a, 0x73, 0xee, 0x05, 0xf3, 0x3d, 0x99, 0xb8, 0xb4, 0xec, 0xc9, + 0x03, 0xd6, 0x12, 0x4c, 0xf2, 0x1a, 0xcc, 0x65, 0x57, 0x31, 0x4d, 0xcd, 0x39, 0xd4, 0x27, 0xd3, + 0xdb, 0x21, 0xa3, 0xbe, 0xc7, 0x9b, 0x6b, 0x09, 0x2e, 0x79, 0x17, 0x96, 0x1c, 0xdf, 0xb7, 0x7b, + 0x9c, 0x6e, 0x0b, 0xc0, 0xfc, 0x74, 0xc0, 0xa2, 0xe3, 0xfb, 0xf9, 0x57, 0x4a, 0xde, 0x87, 0xba, + 0x1b, 0x05, 0x6a, 0x19, 0xc0, 0x24, 0xd6, 0xdc, 0xbe, 0x21, 0x40, 0x7b, 0x05, 0xe3, 0x38, 0xf2, + 0xd4, 0xd0, 0xe8, 0xf2, 0xe4, 0x08, 0xd6, 0x06, 0xb1, 0x0a, 0x8f, 0x8c, 0x6a, 0x03, 0x55, 0x45, + 0xf3, 0x37, 0x65, 0xaf, 0xc4, 0x70, 0xed, 0x5e, 0x65, 0x34, 0xed, 0xfa, 0xcc, 0xa5, 0xd6, 0x8a, + 0x82, 0xed, 0x65, 0x54, 0x8d, 0x62, 0xeb, 0xf7, 0x4b, 0x50, 0xd7, 0x9c, 0x87, 0xbc, 0x05, 0xab, + 0xc2, 0xcb, 0x2e, 0x9c, 0xd0, 0xf3, 0xa9, 0x1d, 0xf5, 0x7a, 0x29, 0xcd, 0x52, 0xb3, 0xb4, 0x31, + 0xbb, 0xb9, 0x68, 0x11, 0xe4, 0x3d, 0x41, 0xd6, 0x89, 0xe0, 0x70, 0x0f, 0xbb, 0xa4, 0x34, 0xb6, + 0xa3, 0x84, 0xe7, 0x2f, 0xbe, 0xd6, 0x54, 0xad, 0x1a, 0xa7, 0x9c, 0x70, 0x02, 0x5f, 0x5c, 0x70, + 0x58, 0x13, 0x1a, 0xca, 0x09, 0x1a, 0x1f, 0xf6, 0x9c, 0xdf, 0xfa, 0x1a, 0x2c, 0x4f, 0x34, 0x9b, + 0x7c, 0x09, 0x16, 0x75, 0x9f, 0x10, 0x4d, 0x69, 0x58, 0x0d, 0xcd, 0x1f, 0xd2, 0xd6, 0x6f, 0x4a, + 0x60, 0x8c, 0x67, 0xf4, 0xe9, 0xde, 0x54, 0x9a, 0xee, 0x4d, 0x6f, 0x41, 0x5d, 0x9f, 0xc9, 0xf2, + 0xf4, 0x99, 0x84, 0x5e, 0x31, 0x8d, 0x2d, 0xf4, 0xea, 0xd9, 0xeb, 0xbc, 0x1a, 0xfd, 0x79, 0x1f, + 0xee, 0x45, 0x09, 0xeb, 0xb3, 0xd0, 0xf1, 0x71, 0xae, 0xe2, 0xc4, 0x8b, 0xdc, 0x01, 0x4d, 0xb4, + 0xf6, 0x54, 0xb0, 0x3d, 0xb7, 0x95, 0xd8, 0x5e, 0x46, 0x4f, 0xa5, 0x50, 0x3e, 0x47, 0x3f, 0x98, + 0x85, 0xc6, 0x4e, 0xa7, 0x83, 0x69, 0xa0, 0x1d, 0xf6, 0x22, 0xf2, 0x2e, 0x00, 0xe6, 0x0f, 0x6c, + 0xec, 0x68, 0x60, 0x29, 0x39, 0x2d, 0xb0, 0x6a, 0x9f, 0x2a, 0x02, 0x69, 0xc3, 0x92, 0xc7, 0xd2, + 0xcc, 0x09, 0x5d, 0xca, 0xad, 0x27, 0xcc, 0xc5, 0x09, 0x6b, 0xaa, 0x38, 0xff, 0x98, 0xba, 0x59, + 0x94, 0xec, 0x4b, 0x91, 0x63, 0x94, 0x90, 0x5a, 0x9a, 0xde, 0x08, 0x95, 0xdc, 0x82, 0xb9, 0x2c, + 0x8a, 0xed, 0x4b, 0x1c, 0x81, 0x45, 0x29, 0xc4, 0xd7, 0xe7, 0xa7, 0xe4, 0x35, 0xee, 0xe0, 0xfe, + 0x20, 0x08, 0xed, 0xd0, 0x09, 0x28, 0x06, 0x5b, 0x4d, 0x0a, 0x80, 0x60, 0x74, 0x9c, 0x80, 0x92, + 0xfb, 0x50, 0x93, 0x62, 0xcc, 0xc3, 0x9d, 0xc1, 0xac, 0x14, 0xaa, 0x0a, 0x32, 0x2e, 0xa0, 0xf5, + 0x84, 0xf6, 0xec, 0x67, 0xd4, 0xb5, 0x7b, 0x8f, 0xb6, 0x71, 0x43, 0xd0, 0xb0, 0x6a, 0x09, 0xed, + 0x7d, 0x4c, 0xdd, 0xc3, 0x47, 0xdb, 0xe4, 0x1e, 0x54, 0x85, 0xb7, 0x32, 0x0f, 0x57, 0x77, 0xa5, + 0x61, 0x01, 0xa9, 0x6d, 0x9e, 0x9c, 0x1b, 0x81, 0x33, 0xb4, 0x55, 0xdb, 0x71, 0x8d, 0x2e, 0xa9, + 0xa8, 0x0a, 0x9c, 0xa1, 0xea, 0x2a, 0xd9, 0x82, 0xe6, 0x45, 0x98, 0x3e, 0xb7, 0x69, 0xcf, 0x4e, + 0xa9, 0x93, 0xb8, 0x17, 0x98, 0xcc, 0x55, 0xbf, 0x1a, 0x9c, 0x77, 0xd0, 0xeb, 0x22, 0xe7, 0xa3, + 0x4a, 0x75, 0xc1, 0xa8, 0xb6, 0x7e, 0x52, 0x86, 0xc6, 0xe1, 0x59, 0xf7, 0xa5, 0x66, 0x45, 0xc9, + 0x4d, 0x9f, 0x15, 0xbd, 0x17, 0xe5, 0x69, 0xbd, 0xd8, 0x82, 0x05, 0x31, 0x24, 0x2a, 0xc7, 0x19, + 0x2a, 0x5b, 0xe0, 0x38, 0x85, 0xbd, 0xc8, 0x52, 0x02, 0xe4, 0x3e, 0x34, 0xb4, 0xc1, 0x4f, 0xd1, + 0xbf, 0x6a, 0x56, 0xbd, 0x18, 0xf7, 0x94, 0x7c, 0x29, 0x6f, 0x28, 0x1d, 0x66, 0x38, 0xf2, 0xb5, + 0xd1, 0x46, 0xd1, 0x61, 0x46, 0xde, 0x84, 0x25, 0x29, 0x14, 0x5d, 0xd2, 0x90, 0x7d, 0x46, 0x13, + 0x1c, 0x7e, 0x25, 0xd9, 0x14, 0x92, 0x8a, 0x47, 0x56, 0x94, 0x3b, 0x00, 0x2e, 0x31, 0xe8, 0x08, + 0xad, 0xef, 0xcf, 0x41, 0xad, 0xd8, 0x30, 0xdc, 0x83, 0xaa, 0xd8, 0x72, 0x30, 0x0f, 0x47, 0x27, + 0xef, 0x26, 0x52, 0x47, 0xbb, 0x59, 0xfe, 0xbc, 0x6e, 0x9a, 0x50, 0xf1, 0x68, 0xea, 0xa2, 0xf7, + 0x55, 0x95, 0xf7, 0x71, 0x0a, 0xf9, 0x0a, 0x90, 0x38, 0x61, 0x81, 0x93, 0x5c, 0xd9, 0xb9, 0x7b, + 0x89, 0x61, 0x98, 0xb5, 0x0c, 0xc9, 0x91, 0x1a, 0xbd, 0x94, 0x7c, 0x00, 0x46, 0x48, 0x87, 0x99, + 0x9d, 0x50, 0xc7, 0xb3, 0x69, 0xd8, 0x67, 0x21, 0xc5, 0x11, 0x69, 0x2a, 0xe3, 0x07, 0x48, 0xd3, + 0x26, 0xae, 0xc9, 0xe5, 0x2d, 0xea, 0x78, 0x82, 0x43, 0xbe, 0x02, 0xf3, 0x09, 0x0f, 0x7a, 0x95, + 0xfe, 0x65, 0x7a, 0x7b, 0x4a, 0xaf, 0x2c, 0x4e, 0x96, 0x28, 0x29, 0x43, 0xde, 0x83, 0x5b, 0xaa, + 0x75, 0x71, 0x42, 0x7b, 0x6c, 0xa8, 0x37, 0x72, 0x01, 0x1b, 0xb9, 0x26, 0x05, 0x4e, 0x91, 0x5f, + 0x34, 0x75, 0x34, 0xd1, 0x56, 0xc7, 0x13, 0xed, 0x06, 0x34, 0x58, 0x6a, 0xf7, 0xf8, 0xe6, 0x02, + 0xf7, 0x74, 0x35, 0x14, 0x00, 0x96, 0x1e, 0x3a, 0x69, 0x86, 0x13, 0x70, 0x0c, 0x77, 0xe2, 0x41, + 0x7a, 0x41, 0x3d, 0xdb, 0x8b, 0x9e, 0x87, 0x76, 0x8f, 0xf9, 0x19, 0xc5, 0x35, 0xdf, 0xc3, 0x25, + 0x32, 0x35, 0x61, 0x62, 0x01, 0x5d, 0x17, 0x80, 0xfd, 0xe8, 0x79, 0x78, 0x88, 0xe2, 0x7b, 0xb9, + 0x34, 0xd9, 0x83, 0x95, 0x64, 0x10, 0x66, 0x2c, 0xa0, 0x4a, 0x95, 0xcf, 0xd2, 0xcc, 0xac, 0xa3, + 0x92, 0x15, 0xa1, 0xc4, 0x12, 0x02, 0x02, 0x6b, 0x2d, 0x27, 0xfa, 0xe7, 0x11, 0x4b, 0xb9, 0x9b, + 0x19, 0x3c, 0x40, 0x9f, 0x3b, 0x2c, 0xb3, 0x51, 0x55, 0x90, 0xe2, 0x1e, 0x78, 0x4e, 0x8e, 0xdb, + 0x62, 0xe0, 0x0c, 0xbf, 0xeb, 0xb0, 0xec, 0x8c, 0x05, 0xf4, 0x38, 0x25, 0x0f, 0xa1, 0xe6, 0x84, + 0xa1, 0xdc, 0x3d, 0x89, 0x1d, 0xef, 0x58, 0xe2, 0x43, 0x37, 0xa9, 0x3a, 0x61, 0x88, 0x5f, 0xad, + 0x1f, 0x57, 0x80, 0x4c, 0x6e, 0x68, 0xff, 0x6f, 0xfa, 0xe2, 0x0b, 0x7d, 0x63, 0xee, 0x85, 0xbe, + 0xf1, 0x25, 0x28, 0xb6, 0x3a, 0x28, 0x3e, 0x8f, 0xe2, 0x8d, 0x9c, 0xc8, 0x85, 0xc6, 0x3d, 0x64, + 0xe1, 0x8b, 0x7b, 0x48, 0xf5, 0x77, 0xe1, 0x21, 0xb5, 0xff, 0xb5, 0x87, 0xc0, 0x4b, 0x7a, 0x48, + 0xfd, 0x25, 0x3c, 0xe4, 0xbf, 0xe7, 0xa0, 0xc2, 0x0f, 0x75, 0xe4, 0x6d, 0xa8, 0xf1, 0x63, 0x9d, + 0x9e, 0xbe, 0x9b, 0xc5, 0x99, 0x4f, 0xcb, 0x00, 0xd5, 0x4f, 0xe4, 0x37, 0xf9, 0x26, 0x34, 0x11, + 0xc2, 0xcf, 0x7c, 0x02, 0x57, 0xd6, 0xd3, 0x3e, 0xc7, 0x8d, 0x9d, 0xcd, 0x1b, 0x9f, 0x68, 0xb4, + 0x2f, 0xb2, 0x39, 0xe2, 0xcb, 0x25, 0x0b, 0x43, 0x9a, 0xe0, 0x46, 0xbe, 0xa2, 0x2f, 0x97, 0x48, + 0xe6, 0xbb, 0xf9, 0xb7, 0xa0, 0xe9, 0xd3, 0x5e, 0x66, 0x63, 0x9b, 0x70, 0x4b, 0x3c, 0x37, 0x31, + 0x5f, 0x0d, 0x2e, 0xc1, 0x1b, 0x86, 0x3b, 0xe2, 0x6d, 0x58, 0x4a, 0x58, 0xff, 0x42, 0x87, 0xcc, + 0x4f, 0xee, 0xa2, 0x51, 0x24, 0xc7, 0xbc, 0x05, 0xf5, 0x38, 0x89, 0xce, 0xa9, 0xdc, 0x2a, 0x2d, + 0x5c, 0xb3, 0x55, 0x42, 0x19, 0xb1, 0x55, 0x7a, 0x0b, 0xea, 0xe7, 0x03, 0x96, 0x6f, 0xae, 0xaa, + 0xd7, 0x20, 0x50, 0x46, 0x20, 0x1e, 0xc1, 0x12, 0xf6, 0x44, 0x73, 0xbd, 0xda, 0x44, 0xbb, 0xb0, + 0xb3, 0x9a, 0xbb, 0x7d, 0x15, 0x0c, 0xd1, 0x99, 0x17, 0xa6, 0x34, 0xd1, 0xe1, 0x51, 0x58, 0x94, + 0x5d, 0x8c, 0xfa, 0x79, 0x7d, 0x12, 0x86, 0x32, 0x1a, 0xec, 0x09, 0xdc, 0x16, 0x30, 0xfa, 0xa9, + 0x86, 0xb4, 0x7b, 0x49, 0x14, 0xd8, 0x2c, 0x34, 0x1b, 0x13, 0x1a, 0x6e, 0xa2, 0xf8, 0xc1, 0xa7, + 0x85, 0x8e, 0xc3, 0x24, 0x0a, 0xda, 0x21, 0x79, 0x0c, 0x37, 0x59, 0x6a, 0x87, 0x03, 0xdf, 0xb7, + 0x9d, 0xe7, 0x4e, 0x42, 0xed, 0x94, 0x06, 0x0c, 0x67, 0x04, 0x53, 0x5c, 0xd5, 0x5a, 0x61, 0x69, + 0x67, 0xe0, 0xfb, 0x3b, 0x9c, 0xd9, 0xa5, 0x01, 0x43, 0x77, 0xbd, 0x26, 0xb8, 0x9a, 0x5f, 0x24, + 0xb8, 0x5a, 0xff, 0x59, 0x86, 0xc5, 0x11, 0x21, 0xb2, 0x0a, 0x65, 0x99, 0x13, 0x55, 0x80, 0x95, + 0x99, 0x47, 0x1e, 0x83, 0x91, 0x46, 0x83, 0xc4, 0xa5, 0x36, 0x1d, 0xc6, 0xd2, 0x52, 0x79, 0x72, + 0x42, 0x84, 0x0c, 0xff, 0x8f, 0xa1, 0xfb, 0x18, 0x8c, 0xcc, 0x49, 0xfa, 0x34, 0xd3, 0x50, 0x93, + 0x87, 0xb4, 0xa6, 0x90, 0xc9, 0x51, 0xdb, 0x40, 0x72, 0x5b, 0x45, 0x75, 0x45, 0xdf, 0x45, 0x1a, + 0xca, 0x4e, 0x5e, 0x69, 0xd9, 0x06, 0x92, 0x5b, 0x2a, 0x30, 0xfa, 0xd6, 0xc6, 0x50, 0x56, 0x72, + 0xcc, 0x3b, 0xb0, 0x90, 0xf4, 0x44, 0xd4, 0xce, 0x63, 0xd4, 0xde, 0x9c, 0x32, 0x68, 0x5a, 0xe8, + 0xce, 0x27, 0x3d, 0x0c, 0x5a, 0x81, 0x0b, 0x22, 0x8f, 0xca, 0xb3, 0xdb, 0x34, 0x9c, 0x76, 0x7a, + 0x9b, 0x4f, 0x7a, 0xfc, 0xab, 0xf5, 0xaf, 0x25, 0xa8, 0xe5, 0x15, 0xb5, 0xcf, 0x5f, 0x81, 0x7e, + 0xa7, 0xbb, 0x42, 0xb5, 0x44, 0x55, 0x26, 0x96, 0xa8, 0x35, 0x98, 0x1f, 0x84, 0xec, 0xd3, 0x81, + 0xd8, 0xf6, 0x54, 0x2d, 0xf9, 0x75, 0xcd, 0xd2, 0x35, 0x3f, 0x7d, 0xe9, 0x6a, 0xfd, 0xa0, 0x04, + 0xb5, 0xbc, 0x00, 0x48, 0xb6, 0x00, 0xb4, 0x58, 0x2a, 0x4d, 0xcc, 0xb8, 0xc6, 0x25, 0x8f, 0xa1, + 0x99, 0xc4, 0xa1, 0x1e, 0x7b, 0xc2, 0xaf, 0x64, 0x15, 0xc5, 0x8a, 0x43, 0x99, 0x83, 0xe2, 0x50, + 0x0b, 0xbe, 0xfc, 0x24, 0x3f, 0xfb, 0x82, 0x93, 0x7c, 0xeb, 0xfb, 0x25, 0xbd, 0x42, 0x46, 0x36, + 0x60, 0x8e, 0xfb, 0xe1, 0xb4, 0x16, 0x09, 0x06, 0xd9, 0x82, 0x1a, 0x6f, 0x8c, 0x90, 0x9a, 0xda, + 0x8e, 0x6a, 0x22, 0xfe, 0xbc, 0x6c, 0x13, 0xfe, 0xb9, 0x0c, 0x75, 0xad, 0xd0, 0x49, 0x5e, 0x83, + 0x6a, 0x3f, 0x89, 0x06, 0xb1, 0x7d, 0x7e, 0x35, 0xa5, 0x19, 0x0b, 0xc8, 0xdb, 0xbd, 0xe2, 0x62, + 0x4e, 0xbf, 0x6f, 0xf7, 0x06, 0xa1, 0x3b, 0x25, 0xce, 0x16, 0x9c, 0x7e, 0xff, 0x70, 0x10, 0xba, + 0x64, 0x03, 0xaa, 0xe2, 0x48, 0x4f, 0xbd, 0x91, 0xdd, 0x47, 0x4e, 0x25, 0x0f, 0xa1, 0xc1, 0x7b, + 0x94, 0xdb, 0xac, 0x4c, 0xeb, 0x14, 0x24, 0x71, 0xf8, 0xa1, 0xb4, 0x2c, 0x01, 0xb9, 0xf5, 0xb9, + 0xeb, 0x00, 0x3b, 0xb2, 0x0d, 0xf9, 0x38, 0xcc, 0xbf, 0xa8, 0xa8, 0xf2, 0x1e, 0x34, 0xe2, 0x84, + 0xa2, 0xda, 0xc9, 0xc8, 0x39, 0x63, 0x87, 0xbe, 0x93, 0x5e, 0x9c, 0x26, 0x74, 0xa7, 0xdf, 0xe7, + 0xb1, 0xc2, 0x57, 0x0f, 0xf5, 0xbf, 0xf5, 0xd3, 0x12, 0x54, 0xce, 0xa2, 0xb8, 0x43, 0xde, 0x80, + 0x2a, 0xee, 0x7d, 0x8b, 0xb1, 0x93, 0x15, 0xb9, 0xdd, 0xab, 0x76, 0x46, 0x03, 0x6b, 0x01, 0xb9, + 0xbb, 0x57, 0x64, 0x5d, 0x15, 0x88, 0xcb, 0x5a, 0xa9, 0x4f, 0x56, 0x86, 0x5f, 0x6a, 0xda, 0xf8, + 0x28, 0x14, 0xfb, 0xa9, 0x7c, 0xd8, 0x46, 0xcd, 0xd5, 0x73, 0x89, 0xdd, 0xab, 0xd6, 0x3f, 0x95, + 0x60, 0x0e, 0x2b, 0xd0, 0x85, 0xf1, 0xd2, 0x0b, 0x8c, 0x97, 0xbf, 0x88, 0xf1, 0xd9, 0xcf, 0x31, + 0x4e, 0xde, 0x81, 0xe5, 0x2c, 0x19, 0x84, 0xae, 0x93, 0x51, 0xbe, 0x86, 0xa3, 0xff, 0xca, 0x26, + 0x8f, 0x2c, 0x61, 0x4a, 0xe8, 0x29, 0xbd, 0xe2, 0x84, 0xd6, 0x07, 0x50, 0x79, 0xca, 0x7c, 0x9f, + 0xbc, 0x02, 0xf3, 0x6e, 0x14, 0x86, 0xed, 0xfd, 0x91, 0x36, 0x4b, 0x1a, 0xef, 0x90, 0xd8, 0x4d, + 0x95, 0x35, 0x0f, 0x13, 0xa4, 0xd6, 0x0e, 0xac, 0x4e, 0xab, 0x0d, 0x92, 0x2f, 0xc3, 0x62, 0x51, + 0x4b, 0x54, 0x29, 0x4e, 0x29, 0x6e, 0x14, 0xac, 0xb6, 0xd7, 0xfa, 0xc5, 0x2c, 0x98, 0x6a, 0x04, + 0xc4, 0x2f, 0x8b, 0xc2, 0xee, 0x20, 0xe0, 0x09, 0x86, 0x6c, 0xc1, 0x32, 0xae, 0x70, 0x71, 0x12, + 0xb9, 0x34, 0x4d, 0xa9, 0x67, 0x63, 0x42, 0x29, 0x6d, 0x56, 0xac, 0x25, 0xce, 0x38, 0x55, 0xf4, + 0x0e, 0x0f, 0xde, 0xe5, 0x70, 0x10, 0x70, 0x51, 0x6f, 0xe0, 0x52, 0xcf, 0x4e, 0xa2, 0xe7, 0xa9, + 0xf0, 0x00, 0x6b, 0x29, 0x1c, 0x04, 0xa7, 0x92, 0x6e, 0x45, 0xcf, 0x53, 0xf2, 0x1a, 0x34, 0xb9, + 0x2c, 0xcb, 0x68, 0xe2, 0x88, 0xac, 0x33, 0x8b, 0x82, 0x8b, 0xe1, 0x20, 0x68, 0xe7, 0xc4, 0xf1, + 0x0a, 0x7f, 0x65, 0xa2, 0xc2, 0xbf, 0x01, 0x75, 0x37, 0x0a, 0xdd, 0x41, 0x92, 0xd0, 0xd0, 0xbd, + 0xc2, 0x14, 0x5a, 0xb1, 0x74, 0x12, 0x39, 0x82, 0xd5, 0x8c, 0xf5, 0xb8, 0x7b, 0xe3, 0xa6, 0x9b, + 0x27, 0x3a, 0x3c, 0x76, 0xcf, 0xeb, 0x25, 0x77, 0x19, 0x00, 0x7c, 0x61, 0xd8, 0x13, 0xfc, 0x27, + 0x33, 0x16, 0x91, 0x38, 0x8d, 0xca, 0xdb, 0x9d, 0x0c, 0xb8, 0x8e, 0x74, 0x10, 0xc4, 0x99, 0x2a, + 0x1f, 0x36, 0xac, 0xc5, 0x64, 0xb0, 0x57, 0x10, 0xc9, 0x47, 0x85, 0x51, 0xdc, 0x37, 0xa7, 0x62, + 0x38, 0xe5, 0x0d, 0xc8, 0xa8, 0x51, 0xbe, 0x77, 0x96, 0xc3, 0x9d, 0x9b, 0xd4, 0x68, 0xbb, 0x0d, + 0x80, 0x7d, 0x9a, 0x39, 0xcc, 0xe7, 0x2b, 0x4a, 0xab, 0x0f, 0xab, 0x12, 0x97, 0xcf, 0x15, 0x16, + 0x3f, 0x4e, 0x60, 0x85, 0x2a, 0x82, 0x34, 0xc7, 0xa8, 0xca, 0xb4, 0x77, 0x47, 0xfd, 0x7c, 0x7c, + 0x96, 0x2d, 0x42, 0x47, 0x29, 0x8c, 0xa6, 0xad, 0xdf, 0x83, 0x75, 0x69, 0xc8, 0xa2, 0x7d, 0x16, + 0x85, 0x9d, 0x41, 0x70, 0xd2, 0x6b, 0x87, 0xb2, 0x5c, 0x73, 0x0f, 0xea, 0x4c, 0xfe, 0x57, 0xde, + 0x55, 0xb3, 0x40, 0x91, 0xda, 0x1e, 0x3f, 0x2c, 0x27, 0x88, 0xb3, 0xc3, 0x41, 0x20, 0xbd, 0xa0, + 0x96, 0x28, 0x4d, 0xad, 0xff, 0xba, 0x03, 0x64, 0x72, 0xd0, 0xc9, 0x63, 0x58, 0xf5, 0x82, 0x1e, + 0x93, 0xd7, 0x22, 0x21, 0xf5, 0xec, 0xd8, 0x71, 0x2f, 0xa5, 0xc7, 0xed, 0x96, 0xcd, 0x92, 0x45, + 0x04, 0xbf, 0x2b, 0xd8, 0xa7, 0x9c, 0xab, 0xa3, 0x2e, 0x59, 0x1c, 0xe7, 0xa8, 0xf2, 0x04, 0x4a, + 0xb0, 0x05, 0xea, 0x5d, 0x30, 0x25, 0xca, 0x73, 0x32, 0x27, 0x37, 0x88, 0x5e, 0x2b, 0x9c, 0xf1, + 0x86, 0xe0, 0xef, 0x3b, 0x99, 0x23, 0xed, 0xa1, 0xef, 0x8e, 0x03, 0xa5, 0x4d, 0x04, 0x56, 0x26, + 0x80, 0x82, 0x8b, 0xc0, 0xaf, 0xc1, 0xcd, 0x2c, 0xca, 0x1c, 0xdf, 0x96, 0xf0, 0x24, 0xb5, 0xfd, + 0xc8, 0xf1, 0xf8, 0x81, 0x6a, 0x2e, 0x6f, 0xea, 0x0a, 0x8a, 0xec, 0xa3, 0x84, 0x95, 0x1e, 0x45, + 0x8e, 0x87, 0x87, 0xaa, 0xd5, 0x51, 0x24, 0x15, 0xb0, 0x79, 0x34, 0xb7, 0xac, 0x43, 0x28, 0x02, + 0xbe, 0xaa, 0x4c, 0x89, 0x7d, 0x7f, 0x1a, 0x3a, 0x71, 0x7a, 0x11, 0x65, 0x1c, 0xb3, 0x80, 0x18, + 0xa1, 0x6f, 0x97, 0x73, 0xbb, 0x92, 0x79, 0x8c, 0xc7, 0x58, 0x3f, 0x72, 0x1d, 0xdf, 0x16, 0x33, + 0x95, 0xa2, 0xc3, 0x56, 0xac, 0x06, 0x12, 0x85, 0x1f, 0x60, 0xec, 0x26, 0x34, 0x88, 0x32, 0x9a, + 0x4b, 0xd5, 0x44, 0xec, 0x0a, 0xaa, 0x12, 0x7b, 0x1d, 0x96, 0x06, 0x29, 0x4d, 0x44, 0x5b, 0xcf, + 0xaf, 0x32, 0x2a, 0x8e, 0x8d, 0x15, 0x6b, 0x91, 0x93, 0x79, 0x3b, 0xb1, 0xc8, 0x4c, 0xde, 0x86, + 0x1b, 0xa2, 0xa9, 0x3e, 0x75, 0x92, 0x50, 0x01, 0x82, 0x14, 0x0f, 0x8f, 0x15, 0x8b, 0x20, 0xf3, + 0x48, 0xf0, 0x64, 0xef, 0xfe, 0x3f, 0xdc, 0xf6, 0x58, 0xca, 0xd7, 0x32, 0x94, 0x75, 0x1d, 0xf7, + 0x82, 0xda, 0x17, 0x2c, 0x93, 0x66, 0x1a, 0x08, 0xbc, 0x29, 0x44, 0x38, 0x64, 0x8f, 0x0b, 0x3c, + 0x61, 0x99, 0x30, 0xf8, 0x4d, 0x78, 0x65, 0x12, 0x1d, 0xb0, 0x34, 0x95, 0xf0, 0x45, 0x84, 0x9b, + 0x63, 0xf0, 0x63, 0x96, 0xa6, 0x02, 0xff, 0x0e, 0x98, 0xe3, 0xd3, 0xe8, 0x5e, 0x50, 0xf7, 0x92, + 0xb7, 0xb9, 0xa9, 0x0d, 0xae, 0x9a, 0xc3, 0x3d, 0xce, 0x3c, 0x4e, 0xf9, 0x8e, 0x2e, 0xcd, 0x1c, + 0x35, 0x7b, 0x6a, 0xec, 0x96, 0x10, 0x61, 0x20, 0x87, 0x1b, 0x53, 0xc3, 0xb7, 0x0e, 0xd5, 0x94, + 0xf6, 0x03, 0x1a, 0x66, 0x29, 0x5e, 0xe0, 0x55, 0xac, 0xfc, 0x5b, 0x04, 0x97, 0xa3, 0xea, 0xf1, + 0xcb, 0x2a, 0xb8, 0x1c, 0x51, 0x8c, 0xe7, 0x6c, 0x8f, 0xfa, 0x99, 0x23, 0x5c, 0x92, 0x08, 0x36, + 0x52, 0xd0, 0x0d, 0xef, 0x41, 0x5d, 0xb0, 0x45, 0x77, 0x57, 0x90, 0x2f, 0x10, 0xa2, 0x83, 0xaf, + 0xc3, 0x52, 0xf0, 0xcc, 0x75, 0x6d, 0x16, 0xc6, 0x83, 0x4c, 0x28, 0x59, 0x15, 0x33, 0xc7, 0xc9, + 0x6d, 0x4e, 0x45, 0x45, 0x9b, 0x60, 0x68, 0x72, 0x42, 0xdb, 0x0d, 0x14, 0x6c, 0xe6, 0x82, 0x42, + 0xa3, 0x92, 0x8c, 0x06, 0x59, 0xae, 0x72, 0xad, 0x90, 0x3c, 0x41, 0x32, 0xea, 0xdc, 0x80, 0x86, + 0x1f, 0x60, 0x4c, 0x09, 0xa9, 0x9b, 0xa2, 0x75, 0x7e, 0xc0, 0x03, 0x09, 0x25, 0xbe, 0x01, 0xeb, + 0xba, 0x6b, 0xa3, 0x71, 0x79, 0x1d, 0x13, 0xa4, 0x78, 0x2b, 0x57, 0xb1, 0x6e, 0x16, 0xde, 0xdd, + 0x2e, 0xf8, 0xc7, 0x9a, 0xb3, 0x09, 0xf0, 0x39, 0xcb, 0x02, 0x27, 0xe6, 0xb8, 0x5b, 0x9a, 0xb3, + 0x21, 0x6e, 0x17, 0x59, 0xc7, 0x29, 0x79, 0x13, 0x56, 0x02, 0x16, 0xda, 0x22, 0x2e, 0x0a, 0x43, + 0xeb, 0x62, 0xde, 0x02, 0x16, 0x1e, 0x71, 0x4e, 0x57, 0x59, 0xe0, 0xe2, 0xce, 0x70, 0x42, 0xfc, + 0xb6, 0x14, 0x77, 0x86, 0xa3, 0xe2, 0x0f, 0x61, 0x95, 0x6b, 0x97, 0x01, 0x55, 0xc8, 0xbf, 0x22, + 0x22, 0x3b, 0x60, 0xa1, 0x85, 0xac, 0x11, 0x80, 0x33, 0x9c, 0x04, 0xdc, 0x91, 0x00, 0x67, 0x38, + 0x06, 0x38, 0x85, 0x15, 0xe9, 0x6b, 0x76, 0xd4, 0xb3, 0x55, 0x8a, 0x36, 0xef, 0xe2, 0xca, 0xb0, + 0x31, 0xb2, 0x14, 0x4d, 0xc9, 0xf4, 0xd6, 0xb2, 0x04, 0x6b, 0xc9, 0xbf, 0x48, 0x80, 0x38, 0xa9, + 0x23, 0x99, 0xf3, 0x9e, 0x9e, 0x00, 0x8f, 0x9f, 0xb9, 0xee, 0xf4, 0xcc, 0x29, 0x80, 0x7a, 0xe6, + 0xdc, 0x98, 0x00, 0x6a, 0x99, 0xf3, 0x03, 0xb8, 0x23, 0x81, 0x7e, 0xa0, 0x4e, 0xdb, 0x23, 0x66, + 0xef, 0x23, 0xfa, 0x96, 0x10, 0x3a, 0x0a, 0xc4, 0x19, 0x50, 0x37, 0x3d, 0x55, 0x83, 0x6e, 0xbf, + 0x35, 0x55, 0x83, 0xd6, 0x86, 0x6f, 0xc1, 0x1d, 0xe1, 0x3a, 0xcf, 0xf0, 0x92, 0xc6, 0x66, 0xde, + 0x50, 0xa4, 0x6f, 0xac, 0x38, 0xa4, 0x8f, 0x4c, 0x4f, 0xe4, 0x0d, 0x14, 0x12, 0x17, 0x39, 0x6d, + 0x6f, 0xc8, 0x13, 0xf8, 0x61, 0x12, 0x05, 0xdd, 0x47, 0x64, 0x0f, 0xee, 0xbd, 0x40, 0x81, 0xc7, + 0xd2, 0x4b, 0x93, 0xa2, 0x8a, 0xf5, 0xe9, 0x2a, 0xf6, 0x59, 0x7a, 0x49, 0x0e, 0x60, 0xe3, 0x05, + 0x4a, 0x30, 0x97, 0x99, 0x3d, 0xd4, 0x72, 0x7b, 0xba, 0x16, 0x4c, 0x66, 0xd7, 0x77, 0x46, 0x55, + 0xf8, 0xfa, 0xd7, 0x75, 0x46, 0x96, 0xf9, 0xa6, 0x75, 0x46, 0x5c, 0xdc, 0xe4, 0x2a, 0x2e, 0xa6, + 0x75, 0x46, 0x5c, 0xe1, 0x48, 0x25, 0x27, 0xf0, 0xda, 0x75, 0x4a, 0x9e, 0xb1, 0x94, 0x65, 0x7c, + 0xbb, 0x19, 0x79, 0x34, 0x35, 0x19, 0xaa, 0xda, 0x98, 0xa6, 0xea, 0x63, 0x21, 0xd8, 0xe1, 0x72, + 0xa4, 0x0b, 0x6f, 0x5c, 0xa7, 0xd0, 0x63, 0xa9, 0xeb, 0x24, 0x5e, 0xae, 0xf2, 0x13, 0x54, 0xd9, + 0x9a, 0xa6, 0x72, 0x5f, 0x89, 0x0a, 0xa5, 0x87, 0x70, 0x7f, 0x42, 0x29, 0xa6, 0xdf, 0x67, 0xd4, + 0xcd, 0x3b, 0x7b, 0x39, 0x6d, 0xcc, 0x79, 0x3e, 0xff, 0x98, 0xba, 0xb2, 0xb7, 0x47, 0xf0, 0xea, + 0x74, 0x3d, 0x58, 0x97, 0x4a, 0x73, 0x55, 0x3e, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x04, 0xe5, 0xa4, + 0xb6, 0xf7, 0xe1, 0x76, 0x2f, 0x4b, 0xed, 0x50, 0x15, 0xbc, 0x02, 0x1a, 0x44, 0xc9, 0x95, 0x1d, + 0x46, 0x58, 0x9e, 0x30, 0x7f, 0x58, 0xc2, 0x7b, 0xa0, 0x9b, 0xbd, 0x2c, 0xed, 0x88, 0x32, 0x97, + 0x10, 0xe8, 0x08, 0x3e, 0x4f, 0x84, 0x1a, 0x3c, 0x63, 0xe1, 0x95, 0x2d, 0x80, 0x7f, 0x2c, 0x80, + 0xcb, 0x0a, 0x78, 0xc6, 0xc2, 0x2b, 0xac, 0x9a, 0xf0, 0x3d, 0xc5, 0x38, 0x44, 0x59, 0xfb, 0x91, + 0x00, 0xad, 0xe8, 0x20, 0x65, 0xe9, 0x21, 0xac, 0x6a, 0x30, 0x2f, 0xe8, 0x49, 0x43, 0x7f, 0x22, + 0x30, 0x86, 0xc2, 0xec, 0x07, 0x3d, 0x61, 0xe7, 0x11, 0xac, 0x8d, 0x01, 0x94, 0x99, 0x3f, 0x15, + 0x10, 0xa2, 0x41, 0x94, 0x95, 0x3d, 0xb8, 0xcb, 0x41, 0x3c, 0x94, 0xaf, 0x19, 0x91, 0x3f, 0x13, + 0xc7, 0x96, 0xf5, 0x5e, 0x96, 0xf2, 0x78, 0x9e, 0x36, 0x28, 0xef, 0x82, 0x39, 0xaa, 0x44, 0x1b, + 0x97, 0x3f, 0x17, 0xf0, 0x55, 0x0d, 0x5e, 0x0c, 0xcd, 0x37, 0x60, 0x7d, 0x0a, 0x50, 0x59, 0xfe, + 0x0b, 0x01, 0x5d, 0x1b, 0x83, 0x2a, 0xab, 0x72, 0x5c, 0x0b, 0x70, 0x31, 0x46, 0x7f, 0x29, 0x90, + 0x2b, 0x1a, 0x32, 0x1f, 0xa6, 0xf7, 0xe0, 0xd6, 0x24, 0x4c, 0x99, 0xfc, 0xb1, 0x00, 0xde, 0x18, + 0x05, 0x8e, 0x4d, 0x7e, 0x11, 0xf4, 0xe8, 0x96, 0x41, 0x6a, 0xfe, 0x44, 0xc0, 0xf8, 0xe4, 0xab, + 0x70, 0xe7, 0x2c, 0xb1, 0xa1, 0x1c, 0x81, 0x68, 0xe9, 0xe6, 0xaf, 0x8a, 0xc9, 0x9f, 0xc8, 0x33, + 0x1f, 0xc0, 0x9d, 0x29, 0x30, 0x51, 0xcf, 0xe2, 0x89, 0xd6, 0xfc, 0xa9, 0x00, 0x9b, 0x63, 0x60, + 0x94, 0x38, 0x64, 0x3e, 0xe5, 0x7b, 0xbd, 0x49, 0x0d, 0xa9, 0x7c, 0x3b, 0xf5, 0xc8, 0xfc, 0x6b, + 0x81, 0x5f, 0x1b, 0xc5, 0x77, 0x91, 0xdf, 0x7d, 0x34, 0xdd, 0xbe, 0x44, 0x63, 0xc6, 0xfd, 0x9b, + 0xa9, 0xf6, 0x05, 0x1e, 0x13, 0xee, 0x26, 0x18, 0x4a, 0x83, 0xcc, 0x24, 0xa1, 0xf9, 0xb7, 0x02, + 0xb4, 0x28, 0x40, 0x22, 0x69, 0x74, 0xf4, 0x21, 0x52, 0x99, 0x50, 0x8d, 0xeb, 0xdf, 0x15, 0xf3, + 0x58, 0xe4, 0x40, 0x39, 0xb2, 0xd2, 0xdd, 0x39, 0xcc, 0x0b, 0x14, 0x12, 0x97, 0xa4, 0xbf, 0x17, + 0x28, 0x22, 0x50, 0xfb, 0x81, 0xc0, 0xe1, 0x62, 0xf4, 0x3e, 0xbc, 0xa2, 0x81, 0x84, 0x1d, 0xcc, + 0x25, 0x9c, 0x1a, 0xa4, 0xe6, 0xcf, 0x0a, 0x97, 0x43, 0x28, 0x1a, 0xe3, 0x39, 0xe4, 0x30, 0x4b, + 0x45, 0xf6, 0x9e, 0x0e, 0x97, 0xa9, 0x28, 0x48, 0xcd, 0x9f, 0x0b, 0x0d, 0xb7, 0x26, 0x34, 0x88, + 0x2c, 0x74, 0x9c, 0xaa, 0x68, 0xe1, 0x4a, 0xd0, 0xdd, 0xf5, 0xa6, 0xff, 0x43, 0x11, 0x2d, 0x6d, + 0x6f, 0xc8, 0xbd, 0x5d, 0x6b, 0xfc, 0x8e, 0x88, 0xd5, 0x1c, 0x38, 0xd9, 0xfc, 0x5f, 0x08, 0xb8, + 0x59, 0xc0, 0xc7, 0x3a, 0xf0, 0x21, 0xdc, 0xbf, 0x4e, 0x45, 0xd1, 0x85, 0x5f, 0x0a, 0x2d, 0xb7, + 0xa7, 0x68, 0xc9, 0x3b, 0x21, 0x27, 0xed, 0x3c, 0x19, 0x64, 0x54, 0xd7, 0x12, 0xa4, 0xe6, 0x3f, + 0x16, 0x93, 0xb6, 0xcb, 0xd9, 0x39, 0xf8, 0x38, 0x55, 0xc1, 0xa7, 0xc3, 0x64, 0xf7, 0x83, 0xd4, + 0xfc, 0x55, 0x11, 0x7c, 0x05, 0x50, 0xf4, 0xff, 0x38, 0x6d, 0xfd, 0xac, 0x94, 0x1f, 0x7d, 0xb5, + 0x63, 0x3e, 0x79, 0x15, 0x9a, 0x01, 0x0b, 0xcf, 0xba, 0x27, 0xa2, 0x62, 0x90, 0x97, 0x59, 0x1a, + 0x82, 0xca, 0x45, 0x3b, 0xe8, 0x2c, 0x31, 0x8b, 0xa9, 0xcf, 0x42, 0x6a, 0x7f, 0x3a, 0xa0, 0x03, + 0x9a, 0x4b, 0x8b, 0x23, 0xf6, 0x8a, 0xe2, 0x7e, 0x9b, 0x33, 0x25, 0xe8, 0x5d, 0x30, 0x73, 0xd0, + 0x79, 0x42, 0x9d, 0x4b, 0x9a, 0xe4, 0x30, 0x79, 0xd2, 0x55, 0xfc, 0x5d, 0xc1, 0x16, 0xc0, 0xd6, + 0x67, 0x50, 0xe9, 0x46, 0x49, 0x46, 0x5e, 0x87, 0x85, 0x73, 0x2c, 0x7b, 0xa5, 0xd3, 0xeb, 0x7e, + 0x92, 0x49, 0x5e, 0x85, 0x45, 0x96, 0xe2, 0x6d, 0xaf, 0xe3, 0x73, 0xa0, 0x7c, 0x8d, 0x34, 0x4a, + 0x7c, 0xc9, 0xc2, 0xed, 0x1f, 0x96, 0xc1, 0x10, 0x6f, 0x15, 0x0f, 0x13, 0x27, 0xa0, 0xbb, 0xd1, + 0x20, 0xf4, 0xc8, 0x43, 0xa8, 0x68, 0xb7, 0x83, 0x37, 0xf4, 0x17, 0x8d, 0x28, 0xa0, 0xdd, 0x16, + 0xa0, 0x20, 0x69, 0x41, 0x6d, 0x10, 0x9e, 0x73, 0x16, 0xf5, 0x46, 0xea, 0x67, 0x05, 0x99, 0xac, + 0xc1, 0xbc, 0x78, 0x65, 0x25, 0x07, 0x43, 0x7e, 0x91, 0x4d, 0xa8, 0xb9, 0x8e, 0xef, 0x1e, 0x0e, + 0x42, 0x37, 0x9d, 0x52, 0xcd, 0x2b, 0x98, 0xe4, 0xff, 0x41, 0xbd, 0xc7, 0x1b, 0x69, 0xe3, 0x23, + 0x03, 0xf9, 0xca, 0x76, 0xa4, 0xe0, 0x8e, 0x6c, 0x7c, 0x8f, 0x40, 0xbe, 0x0e, 0x8b, 0x6e, 0x10, + 0x8b, 0xda, 0x81, 0x76, 0xf9, 0x21, 0x9f, 0xc5, 0xa2, 0xcc, 0x5e, 0x10, 0xef, 0x3b, 0x99, 0x83, + 0xb7, 0x72, 0x75, 0xb7, 0xf8, 0x68, 0xfd, 0xb0, 0x04, 0x75, 0x6d, 0x50, 0x5e, 0x34, 0x1e, 0x28, + 0x30, 0x31, 0x1e, 0x5f, 0x81, 0xb9, 0x34, 0x73, 0xe4, 0xcc, 0xe4, 0x6f, 0x71, 0xc7, 0xc7, 0xd9, + 0x12, 0x42, 0x64, 0x13, 0x66, 0x69, 0xa8, 0xe6, 0xe9, 0x3a, 0x59, 0x2e, 0xd2, 0xfa, 0x4d, 0x09, + 0xe6, 0x05, 0x87, 0xbc, 0x01, 0xb5, 0xde, 0x20, 0x74, 0x6d, 0xbc, 0xef, 0x98, 0x2c, 0xb1, 0x57, + 0x39, 0x73, 0x9f, 0xa6, 0xee, 0x44, 0x99, 0xb5, 0xfc, 0x79, 0x65, 0x56, 0xbd, 0xfe, 0x3c, 0xfb, + 0xa2, 0xfa, 0xf3, 0x1b, 0x30, 0x87, 0x03, 0x2e, 0xdf, 0x19, 0x2e, 0x4f, 0xb4, 0xdc, 0x12, 0xfc, + 0xc2, 0x15, 0xe7, 0x5e, 0xe4, 0x8a, 0xdf, 0x82, 0x06, 0x56, 0xe7, 0x59, 0xd8, 0xe7, 0x5d, 0x20, + 0x0f, 0x61, 0xb1, 0x2f, 0xbf, 0x45, 0xa9, 0x77, 0xb2, 0x97, 0x8d, 0xbe, 0x06, 0x68, 0x3d, 0x81, + 0xba, 0x52, 0xd0, 0xa5, 0x19, 0x79, 0x0f, 0x9a, 0x23, 0x78, 0x15, 0x55, 0xf2, 0xd6, 0x5a, 0xb7, + 0x65, 0x2d, 0xea, 0x8a, 0xd2, 0xd6, 0xf7, 0x4b, 0x30, 0x2f, 0x1e, 0xb6, 0x92, 0x77, 0xb4, 0x56, + 0xe4, 0x4f, 0x04, 0xf3, 0xce, 0x6a, 0xf6, 0x8a, 0xc6, 0x74, 0x69, 0x96, 0xbe, 0x64, 0x0d, 0xdc, + 0x84, 0x85, 0x67, 0x34, 0xc1, 0x07, 0x92, 0x22, 0x2a, 0xd4, 0x67, 0xeb, 0x4d, 0xa8, 0xf1, 0xb6, + 0x88, 0xc7, 0x81, 0x9f, 0x7b, 0xa5, 0xd3, 0xfa, 0xa3, 0x12, 0x2c, 0xc8, 0xa7, 0xb8, 0xe4, 0x01, + 0x40, 0x9c, 0x44, 0x9f, 0x8c, 0x74, 0x7a, 0xa9, 0x80, 0x88, 0x67, 0x92, 0x35, 0x2e, 0x22, 0xae, + 0x78, 0x1e, 0xc3, 0x5a, 0x9f, 0x86, 0x34, 0x71, 0xf8, 0x49, 0x40, 0xd6, 0x0e, 0xc4, 0xab, 0xaa, + 0x32, 0xbe, 0xaa, 0x5a, 0xcd, 0xb9, 0xa2, 0x82, 0x20, 0x9e, 0x57, 0xbd, 0x5c, 0x7e, 0x79, 0x1d, + 0x9a, 0xa3, 0x0f, 0x7e, 0xc9, 0xaa, 0xaa, 0xb3, 0x8b, 0x6a, 0xa6, 0xf8, 0xd8, 0xfa, 0x83, 0x59, + 0xf1, 0xf6, 0x1f, 0xaf, 0x1e, 0x97, 0x61, 0x91, 0xff, 0xe6, 0xef, 0x58, 0x8c, 0x19, 0x45, 0xca, + 0x2f, 0x16, 0x8d, 0x92, 0x22, 0xe5, 0xf7, 0x71, 0x46, 0x99, 0xac, 0xc0, 0x12, 0x27, 0x69, 0x37, + 0x51, 0xc6, 0x2c, 0x69, 0x40, 0x15, 0xb5, 0x45, 0x71, 0xc7, 0xa8, 0x90, 0x45, 0xa8, 0xf1, 0x2f, + 0xbc, 0xc4, 0x30, 0xe6, 0x72, 0x25, 0x78, 0x8c, 0xdf, 0xe9, 0xf7, 0x8d, 0x79, 0x25, 0xff, 0x51, + 0xc4, 0x42, 0x63, 0x41, 0x7d, 0x3d, 0x65, 0xbe, 0x6f, 0x54, 0xc9, 0x1a, 0x10, 0xfe, 0x35, 0xfa, + 0xf2, 0xd7, 0xa8, 0x11, 0x13, 0x56, 0x75, 0xba, 0x7a, 0x9b, 0x69, 0x00, 0x21, 0xd0, 0xe4, 0x9c, + 0xe2, 0x7e, 0xce, 0xa8, 0x93, 0x75, 0x58, 0x43, 0xda, 0xc4, 0x83, 0x1d, 0xa3, 0xa1, 0xec, 0xf1, + 0x14, 0x6e, 0x2c, 0x92, 0x26, 0x00, 0xff, 0x12, 0x31, 0x65, 0x34, 0xd5, 0xb7, 0x98, 0x69, 0x63, + 0x89, 0x2c, 0x41, 0xbd, 0xf8, 0xde, 0x36, 0x0c, 0xd5, 0xc0, 0xd1, 0x31, 0x37, 0x96, 0xd5, 0xc8, + 0x68, 0x6f, 0x60, 0x8d, 0x55, 0xf2, 0x0a, 0x98, 0x12, 0x3d, 0x71, 0xb5, 0x61, 0xdc, 0xd8, 0xfa, + 0x1a, 0x34, 0xf4, 0x97, 0x9e, 0xdc, 0xd6, 0xa9, 0x93, 0xa6, 0x67, 0x17, 0x49, 0x34, 0xe8, 0x5f, + 0x18, 0x33, 0x7c, 0x28, 0x73, 0x3b, 0x46, 0x89, 0x54, 0xa1, 0xf2, 0xc4, 0x49, 0x2f, 0x8c, 0xf2, + 0xd6, 0x37, 0x60, 0x69, 0xec, 0x85, 0x2f, 0x67, 0x76, 0x4e, 0x3a, 0x07, 0xc6, 0x0c, 0xff, 0x77, + 0xb8, 0xd3, 0x3d, 0x33, 0x4a, 0x64, 0x15, 0x8c, 0x27, 0xed, 0x0f, 0x9f, 0xd8, 0x7b, 0x27, 0xc7, + 0xa7, 0xd6, 0x41, 0xb7, 0xdb, 0x3e, 0xe9, 0x18, 0xe5, 0xad, 0x07, 0x00, 0xc5, 0x63, 0x34, 0x52, + 0x83, 0x39, 0xac, 0xe4, 0x08, 0xe0, 0x19, 0x7b, 0xfa, 0xb1, 0x51, 0x22, 0x75, 0x58, 0x90, 0x4b, + 0xbb, 0x51, 0xde, 0x7a, 0x04, 0x4b, 0xf2, 0xf8, 0xc6, 0xfb, 0xf6, 0x94, 0x85, 0x7c, 0xa9, 0x21, + 0xed, 0xce, 0xc7, 0x3b, 0x47, 0xed, 0x7d, 0xbb, 0xdd, 0xd9, 0x3f, 0xf8, 0x9e, 0xfd, 0xb4, 0xdd, + 0xd9, 0x17, 0x1a, 0x9e, 0x74, 0xba, 0xdf, 0x35, 0x4a, 0x5b, 0xe7, 0xb0, 0x3a, 0xed, 0x11, 0x28, + 0xb9, 0x0d, 0x37, 0x15, 0x72, 0xbf, 0xdd, 0x3d, 0xdb, 0xe9, 0xec, 0x1d, 0xd8, 0xc7, 0x07, 0x67, + 0x56, 0x7b, 0xcf, 0x98, 0x21, 0xf3, 0x50, 0x3e, 0x7a, 0xdb, 0x28, 0xe1, 0xef, 0xb6, 0x51, 0x26, + 0x00, 0xf3, 0x7b, 0x27, 0xdd, 0x76, 0xe7, 0xc0, 0x98, 0xe5, 0x7e, 0xd4, 0xee, 0x74, 0x0e, 0x2c, + 0xfb, 0xd4, 0x3a, 0xd9, 0xff, 0xce, 0xde, 0x99, 0x51, 0xd9, 0x7a, 0xbb, 0x78, 0xce, 0x8a, 0x5d, + 0x59, 0x05, 0xa3, 0x1d, 0x3e, 0x73, 0x7c, 0xe6, 0xe5, 0x34, 0x63, 0x86, 0xf7, 0xe5, 0x44, 0xe4, + 0x53, 0xa3, 0xb4, 0xf5, 0x9d, 0xe2, 0xad, 0x25, 0x42, 0x6e, 0xc2, 0x8a, 0xfe, 0x2d, 0xe1, 0xc6, + 0x0c, 0xef, 0xa1, 0xce, 0x10, 0x65, 0x14, 0x31, 0xa4, 0x3a, 0xfd, 0x2c, 0x8a, 0x9f, 0x1a, 0xe5, + 0xad, 0x5f, 0x95, 0xa0, 0xaa, 0x1e, 0xf7, 0x14, 0x91, 0x14, 0xd2, 0x04, 0x7d, 0x7c, 0x86, 0xdc, + 0x80, 0x65, 0x8c, 0x09, 0xda, 0xcb, 0x4e, 0x06, 0x99, 0x24, 0x97, 0x94, 0x2f, 0x59, 0xac, 0x7f, + 0xa1, 0xd1, 0xcb, 0xc4, 0x80, 0x86, 0x08, 0x3c, 0xf1, 0x44, 0xc3, 0x98, 0xe5, 0x66, 0x31, 0xee, + 0xc2, 0x8c, 0xe5, 0xd4, 0x0a, 0xb9, 0x05, 0x37, 0x46, 0xd4, 0xe6, 0xac, 0x39, 0x72, 0x07, 0x6e, + 0x29, 0xc0, 0x24, 0x7b, 0x7e, 0x6b, 0x03, 0x1a, 0xfa, 0xa3, 0x22, 0x65, 0x91, 0xbb, 0x97, 0x68, + 0xf2, 0xd6, 0xd7, 0x61, 0x79, 0xe2, 0x01, 0x03, 0x9f, 0x98, 0x76, 0x47, 0x8c, 0xe9, 0x71, 0xbb, + 0x63, 0x1f, 0xef, 0x7c, 0xcf, 0x28, 0x71, 0xec, 0xee, 0xd1, 0xc9, 0xc9, 0xb1, 0x7d, 0xd8, 0x3e, + 0x3a, 0x3b, 0xb0, 0x8c, 0xf2, 0xd6, 0xd6, 0x18, 0x16, 0x1d, 0x94, 0x3b, 0xda, 0xc9, 0xde, 0xce, + 0x91, 0x31, 0xc3, 0xe7, 0xf5, 0xc3, 0xa3, 0x93, 0xdd, 0x9d, 0x23, 0xa3, 0xb4, 0xb5, 0x0b, 0xcb, + 0x13, 0xd7, 0xb6, 0x3c, 0x12, 0x0e, 0xa3, 0xc4, 0xa5, 0x82, 0x24, 0x1c, 0x6b, 0x67, 0x90, 0x45, + 0x46, 0x89, 0x87, 0x3b, 0xb2, 0x44, 0x42, 0x61, 0x61, 0xdf, 0x28, 0x6f, 0x7d, 0x0b, 0x96, 0xc6, + 0x36, 0x4f, 0x3c, 0x74, 0x0e, 0x23, 0xdf, 0x8f, 0x9e, 0x73, 0x09, 0x8c, 0xa4, 0xd3, 0x84, 0xba, + 0xd4, 0xe3, 0x9f, 0x25, 0x1e, 0xe5, 0x7b, 0x78, 0xb1, 0x96, 0x59, 0xd1, 0x73, 0xa3, 0xbc, 0x75, + 0x02, 0xc6, 0xf8, 0x86, 0x85, 0x2c, 0xc0, 0x6c, 0x3b, 0xcc, 0x8c, 0x19, 0xde, 0xf0, 0x43, 0x3f, + 0x72, 0x32, 0x11, 0x17, 0xfb, 0xd4, 0x65, 0x81, 0xe3, 0x1b, 0x65, 0x9e, 0x48, 0xf6, 0x9d, 0x8c, + 0x9e, 0xb1, 0x80, 0x8a, 0x24, 0xb8, 0x3f, 0x10, 0xf7, 0x7d, 0x46, 0x85, 0xc7, 0xcc, 0xd8, 0xf6, + 0x85, 0x77, 0x81, 0x9f, 0x1a, 0x44, 0xf7, 0xd1, 0x5a, 0x6a, 0x94, 0x70, 0x28, 0xf8, 0xaa, 0x96, + 0x1a, 0xe5, 0xdd, 0x2f, 0xff, 0xfa, 0xb7, 0x77, 0x4b, 0xff, 0xf2, 0xdb, 0xbb, 0xa5, 0x7f, 0xff, + 0xed, 0xdd, 0xd2, 0x8f, 0xfe, 0xe3, 0xee, 0x0c, 0xdc, 0x70, 0xa3, 0xe0, 0x01, 0x5f, 0xf1, 0x5c, + 0x27, 0x7e, 0x90, 0x31, 0xef, 0x1c, 0xd7, 0x80, 0xd3, 0xd2, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, + 0x87, 0x6c, 0x8b, 0x38, 0x16, 0x36, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index df759df4..04915b16 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -171,6 +171,7 @@ message FTSQueryInfo { repeated string column_names = 4; // For debug purpose only. Currently only used in explain. optional string query_text = 5 [(gogoproto.nullable) = false]; + optional string query_tokenizer = 6 [(gogoproto.nullable) = false]; // Always the same as parser/model/index_full_text.go:FullTextParserType // For QueryType == TopK optional uint32 top_k = 10; From c55a2aa4170f70618857ef9741f33e3cd679419d Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Thu, 17 Apr 2025 20:55:37 +0800 Subject: [PATCH 3/8] Add tici.proto and update proto.lock files (#362) * Add tici.proto and update proto.lock files * Update proto.lock * Fix tici proto build process with directory structure and compatibility fixes * Fix relative import in tici.pb.go * Update go.mod and go.sum for dependencies * fix the go complie (cherry picked from commit 7e6686593acb5b374cb4425191eed0f891cc39c0) --- generate-go.sh | 7 + go-tipb/tici.pb.go | 3389 ++++++++++++++++++++++++++++++++++++++ proto/tici/indexer.proto | 167 ++ scripts/proto.lock | 760 +-------- 4 files changed, 3651 insertions(+), 672 deletions(-) create mode 100644 go-tipb/tici.pb.go create mode 100644 proto/tici/indexer.proto diff --git a/generate-go.sh b/generate-go.sh index 3ac7e4ec..9b35c450 100755 --- a/generate-go.sh +++ b/generate-go.sh @@ -8,8 +8,15 @@ go install github.com/gogo/protobuf/protoc-gen-gofast protoc -I.:${GOGO_PROTOBUF} \ --gofast_out=plugins=grpc:../go-tipb *.proto +# Generate TiCI proto with the main tipb Go package. +protoc -I.:${GOGO_PROTOBUF} \ + --gofast_out=plugins=grpc,Mtici/indexer.proto=github.com/pingcap/tipb/go-tipb,import_path=tipb:../go-tipb tici/*.proto + cd ../go-tipb +mv tici/indexer.pb.go tici.pb.go sed -i.bak -E 's/import _ \"gogoproto\"//g' *.pb.go sed -i.bak -E 's/import fmt \"fmt\"//g' *.pb.go +sed -i.bak -E 's/import _ \"\.\"//g' *.pb.go +sed -i.bak -E 's/package tipb_tici/package tipb/' *.pb.go rm -f *.bak go run golang.org/x/tools/cmd/goimports -w *.pb.go diff --git a/go-tipb/tici.pb.go b/go-tipb/tici.pb.go new file mode 100644 index 00000000..72a4f109 --- /dev/null +++ b/go-tipb/tici.pb.go @@ -0,0 +1,3389 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: tici/indexer.proto + +/* +Package tipb is a generated protocol buffer package. + +It is generated from these files: + + tici/indexer.proto + +It has these top-level messages: + + CreateIndexRequest + CreateIndexResponse + DropIndexRequest + DropIndexResponse + TiCITableInfo + TiCIColumnInfo + TiCIIndexInfo + ParserInfo + GetIndexProgressRequest + GetIndexProgressResponse +*/ +package tipb + +import ( + "fmt" + + proto "github.com/golang/protobuf/proto" + + math "math" + + context "golang.org/x/net/context" + + grpc "google.golang.org/grpc" + + io "io" +) + +// 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.ProtoPackageIsVersion2 // please upgrade the proto package + +// IndexType represents the type of index +type IndexType int32 + +const ( + // Default value must be 0 in proto3 + IndexType_UNKNOWN IndexType = 0 + // Full-text index type + IndexType_FULL_TEXT IndexType = 1 + // Custom index type + IndexType_CUSTOM IndexType = 2 +) + +var IndexType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "FULL_TEXT", + 2: "CUSTOM", +} +var IndexType_value = map[string]int32{ + "UNKNOWN": 0, + "FULL_TEXT": 1, + "CUSTOM": 2, +} + +func (x IndexType) String() string { + return proto.EnumName(IndexType_name, int32(x)) +} +func (IndexType) EnumDescriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{0} } + +// ParserType represents the type of parser +type ParserType int32 + +const ( + // Default value must be 0 in proto3 + ParserType_UNKNOWN_PARSER ParserType = 0 + // Default parser + ParserType_DEFAULT_PARSER ParserType = 1 + // Other parser types + ParserType_OTHER_PARSER ParserType = 2 +) + +var ParserType_name = map[int32]string{ + 0: "UNKNOWN_PARSER", + 1: "DEFAULT_PARSER", + 2: "OTHER_PARSER", +} +var ParserType_value = map[string]int32{ + "UNKNOWN_PARSER": 0, + "DEFAULT_PARSER": 1, + "OTHER_PARSER": 2, +} + +func (x ParserType) String() string { + return proto.EnumName(ParserType_name, int32(x)) +} +func (ParserType) EnumDescriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{1} } + +// CreateIndexRequest is a request to create an index +type CreateIndexRequest struct { + // Index information + IndexInfo *TiCIIndexInfo `protobuf:"bytes,1,opt,name=index_info,json=indexInfo" json:"index_info,omitempty"` + // Table information + TableInfo *TiCITableInfo `protobuf:"bytes,2,opt,name=table_info,json=tableInfo" json:"table_info,omitempty"` +} + +func (m *CreateIndexRequest) Reset() { *m = CreateIndexRequest{} } +func (m *CreateIndexRequest) String() string { return proto.CompactTextString(m) } +func (*CreateIndexRequest) ProtoMessage() {} +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{0} } + +func (m *CreateIndexRequest) GetIndexInfo() *TiCIIndexInfo { + if m != nil { + return m.IndexInfo + } + return nil +} + +func (m *CreateIndexRequest) GetTableInfo() *TiCITableInfo { + if m != nil { + return m.TableInfo + } + return nil +} + +// CreateIndexResponse is a response to the index creation request +type CreateIndexResponse struct { + // Operation result status code, 0 means success + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + // Error message, only valid when status is non-zero + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // Created index ID + IndexId string `protobuf:"bytes,3,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` +} + +func (m *CreateIndexResponse) Reset() { *m = CreateIndexResponse{} } +func (m *CreateIndexResponse) String() string { return proto.CompactTextString(m) } +func (*CreateIndexResponse) ProtoMessage() {} +func (*CreateIndexResponse) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{1} } + +func (m *CreateIndexResponse) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *CreateIndexResponse) GetErrorMessage() string { + if m != nil { + return m.ErrorMessage + } + return "" +} + +func (m *CreateIndexResponse) GetIndexId() string { + if m != nil { + return m.IndexId + } + return "" +} + +// DropIndexRequest is a request to drop an index +type DropIndexRequest struct { + // Index ID + TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + IndexId string `protobuf:"bytes,2,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` +} + +func (m *DropIndexRequest) Reset() { *m = DropIndexRequest{} } +func (m *DropIndexRequest) String() string { return proto.CompactTextString(m) } +func (*DropIndexRequest) ProtoMessage() {} +func (*DropIndexRequest) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{2} } + +func (m *DropIndexRequest) GetTableId() int64 { + if m != nil { + return m.TableId + } + return 0 +} + +func (m *DropIndexRequest) GetIndexId() string { + if m != nil { + return m.IndexId + } + return "" +} + +// DropIndexResponse is a response to the index drop request +type DropIndexResponse struct { + // Operation result status code, 0 means success + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + // Error message, only valid when status is non-zero + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (m *DropIndexResponse) Reset() { *m = DropIndexResponse{} } +func (m *DropIndexResponse) String() string { return proto.CompactTextString(m) } +func (*DropIndexResponse) ProtoMessage() {} +func (*DropIndexResponse) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{3} } + +func (m *DropIndexResponse) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *DropIndexResponse) GetErrorMessage() string { + if m != nil { + return m.ErrorMessage + } + return "" +} + +// TableInfo represents table information +type TiCITableInfo struct { + // Table ID + TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + // Table name + TableName string `protobuf:"bytes,2,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // Database name + DatabaseName string `protobuf:"bytes,3,opt,name=database_name,json=databaseName,proto3" json:"database_name,omitempty"` + // Table version + Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` + // Column information + Columns []*TiCIColumnInfo `protobuf:"bytes,5,rep,name=columns" json:"columns,omitempty"` +} + +func (m *TiCITableInfo) Reset() { *m = TiCITableInfo{} } +func (m *TiCITableInfo) String() string { return proto.CompactTextString(m) } +func (*TiCITableInfo) ProtoMessage() {} +func (*TiCITableInfo) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{4} } + +func (m *TiCITableInfo) GetTableId() int64 { + if m != nil { + return m.TableId + } + return 0 +} + +func (m *TiCITableInfo) GetTableName() string { + if m != nil { + return m.TableName + } + return "" +} + +func (m *TiCITableInfo) GetDatabaseName() string { + if m != nil { + return m.DatabaseName + } + return "" +} + +func (m *TiCITableInfo) GetVersion() int64 { + if m != nil { + return m.Version + } + return 0 +} + +func (m *TiCITableInfo) GetColumns() []*TiCIColumnInfo { + if m != nil { + return m.Columns + } + return nil +} + +// ColumnInfo represents column information +type TiCIColumnInfo struct { + // Column ID + ColumnId int64 `protobuf:"varint,1,opt,name=column_id,json=columnId,proto3" json:"column_id,omitempty"` + // Column name + ColumnName string `protobuf:"bytes,2,opt,name=column_name,json=columnName,proto3" json:"column_name,omitempty"` + // MySQL type + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + // Collation + Collation int32 `protobuf:"varint,4,opt,name=collation,proto3" json:"collation,omitempty"` + // Column length + ColumnLength int32 `protobuf:"varint,5,opt,name=column_length,json=columnLength,proto3" json:"column_length,omitempty"` + // Decimal places + Decimal int32 `protobuf:"varint,6,opt,name=decimal,proto3" json:"decimal,omitempty"` + // Flags + Flag int32 `protobuf:"varint,7,opt,name=flag,proto3" json:"flag,omitempty"` + // Enum elements + Elems []string `protobuf:"bytes,8,rep,name=elems" json:"elems,omitempty"` + // Default value + DefaultVal []byte `protobuf:"bytes,9,opt,name=default_val,json=defaultVal,proto3" json:"default_val,omitempty"` + // Whether it's a primary key + IsPrimaryKey bool `protobuf:"varint,10,opt,name=is_primary_key,json=isPrimaryKey,proto3" json:"is_primary_key,omitempty"` + // Whether it's an array + IsArray bool `protobuf:"varint,11,opt,name=is_array,json=isArray,proto3" json:"is_array,omitempty"` +} + +func (m *TiCIColumnInfo) Reset() { *m = TiCIColumnInfo{} } +func (m *TiCIColumnInfo) String() string { return proto.CompactTextString(m) } +func (*TiCIColumnInfo) ProtoMessage() {} +func (*TiCIColumnInfo) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{5} } + +func (m *TiCIColumnInfo) GetColumnId() int64 { + if m != nil { + return m.ColumnId + } + return 0 +} + +func (m *TiCIColumnInfo) GetColumnName() string { + if m != nil { + return m.ColumnName + } + return "" +} + +func (m *TiCIColumnInfo) GetType() int32 { + if m != nil { + return m.Type + } + return 0 +} + +func (m *TiCIColumnInfo) GetCollation() int32 { + if m != nil { + return m.Collation + } + return 0 +} + +func (m *TiCIColumnInfo) GetColumnLength() int32 { + if m != nil { + return m.ColumnLength + } + return 0 +} + +func (m *TiCIColumnInfo) GetDecimal() int32 { + if m != nil { + return m.Decimal + } + return 0 +} + +func (m *TiCIColumnInfo) GetFlag() int32 { + if m != nil { + return m.Flag + } + return 0 +} + +func (m *TiCIColumnInfo) GetElems() []string { + if m != nil { + return m.Elems + } + return nil +} + +func (m *TiCIColumnInfo) GetDefaultVal() []byte { + if m != nil { + return m.DefaultVal + } + return nil +} + +func (m *TiCIColumnInfo) GetIsPrimaryKey() bool { + if m != nil { + return m.IsPrimaryKey + } + return false +} + +func (m *TiCIColumnInfo) GetIsArray() bool { + if m != nil { + return m.IsArray + } + return false +} + +// IndexInfo represents index information +type TiCIIndexInfo struct { + // Index ID + IndexId int64 `protobuf:"varint,1,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` + // Index name + IndexName string `protobuf:"bytes,2,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + // Index type (fulltext, custom) + IndexType IndexType `protobuf:"varint,3,opt,name=index_type,json=indexType,proto3,enum=tipb.tici.IndexType" json:"index_type,omitempty"` + // Index columns + Columns []*TiCIColumnInfo `protobuf:"bytes,4,rep,name=columns" json:"columns,omitempty"` + // Whether the index is unique + IsUnique bool `protobuf:"varint,5,opt,name=is_unique,json=isUnique,proto3" json:"is_unique,omitempty"` + // Parser information + ParserInfo *ParserInfo `protobuf:"bytes,6,opt,name=parser_info,json=parserInfo" json:"parser_info,omitempty"` + // Other index parameters + OtherParams map[string]string `protobuf:"bytes,7,rep,name=other_params,json=otherParams" json:"other_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *TiCIIndexInfo) Reset() { *m = TiCIIndexInfo{} } +func (m *TiCIIndexInfo) String() string { return proto.CompactTextString(m) } +func (*TiCIIndexInfo) ProtoMessage() {} +func (*TiCIIndexInfo) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{6} } + +func (m *TiCIIndexInfo) GetIndexId() int64 { + if m != nil { + return m.IndexId + } + return 0 +} + +func (m *TiCIIndexInfo) GetIndexName() string { + if m != nil { + return m.IndexName + } + return "" +} + +func (m *TiCIIndexInfo) GetIndexType() IndexType { + if m != nil { + return m.IndexType + } + return IndexType_UNKNOWN +} + +func (m *TiCIIndexInfo) GetColumns() []*TiCIColumnInfo { + if m != nil { + return m.Columns + } + return nil +} + +func (m *TiCIIndexInfo) GetIsUnique() bool { + if m != nil { + return m.IsUnique + } + return false +} + +func (m *TiCIIndexInfo) GetParserInfo() *ParserInfo { + if m != nil { + return m.ParserInfo + } + return nil +} + +func (m *TiCIIndexInfo) GetOtherParams() map[string]string { + if m != nil { + return m.OtherParams + } + return nil +} + +// ParserInfo represents parser information +type ParserInfo struct { + // Parser type + ParserType ParserType `protobuf:"varint,1,opt,name=parser_type,json=parserType,proto3,enum=tipb.tici.ParserType" json:"parser_type,omitempty"` + // Parser parameters + ParserParams map[string]string `protobuf:"bytes,2,rep,name=parser_params,json=parserParams" json:"parser_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *ParserInfo) Reset() { *m = ParserInfo{} } +func (m *ParserInfo) String() string { return proto.CompactTextString(m) } +func (*ParserInfo) ProtoMessage() {} +func (*ParserInfo) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{7} } + +func (m *ParserInfo) GetParserType() ParserType { + if m != nil { + return m.ParserType + } + return ParserType_UNKNOWN_PARSER +} + +func (m *ParserInfo) GetParserParams() map[string]string { + if m != nil { + return m.ParserParams + } + return nil +} + +// GetIndexProgressRequest is a request to get the progress of an index build +type GetIndexProgressRequest struct { + // Table ID + TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + // Index ID + IndexId int64 `protobuf:"varint,2,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` +} + +func (m *GetIndexProgressRequest) Reset() { *m = GetIndexProgressRequest{} } +func (m *GetIndexProgressRequest) String() string { return proto.CompactTextString(m) } +func (*GetIndexProgressRequest) ProtoMessage() {} +func (*GetIndexProgressRequest) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{8} } + +func (m *GetIndexProgressRequest) GetTableId() int64 { + if m != nil { + return m.TableId + } + return 0 +} + +func (m *GetIndexProgressRequest) GetIndexId() int64 { + if m != nil { + return m.IndexId + } + return 0 +} + +// GetIndexProgressResponse is a response containing index build progress +type GetIndexProgressResponse struct { + // Operation result status code, 0 means success + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + // Error message, only valid when status is non-zero + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // Number of documents indexed so far + DocumentCount uint64 `protobuf:"varint,3,opt,name=document_count,json=documentCount,proto3" json:"document_count,omitempty"` + // Build task state (PENDING, RUNNING, COMPLETED, FAILED) + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` + // Whether index has been uploaded to S3 + IsUploaded bool `protobuf:"varint,5,opt,name=is_uploaded,json=isUploaded,proto3" json:"is_uploaded,omitempty"` + // Last S3 upload time in RFC3339 format + LastUploadTime string `protobuf:"bytes,6,opt,name=last_upload_time,json=lastUploadTime,proto3" json:"last_upload_time,omitempty"` + // S3 path where the index is stored + S3Path []string `protobuf:"bytes,7,rep,name=s3_path,json=s3Path" json:"s3_path,omitempty"` +} + +func (m *GetIndexProgressResponse) Reset() { *m = GetIndexProgressResponse{} } +func (m *GetIndexProgressResponse) String() string { return proto.CompactTextString(m) } +func (*GetIndexProgressResponse) ProtoMessage() {} +func (*GetIndexProgressResponse) Descriptor() ([]byte, []int) { return fileDescriptorIndexer, []int{9} } + +func (m *GetIndexProgressResponse) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *GetIndexProgressResponse) GetErrorMessage() string { + if m != nil { + return m.ErrorMessage + } + return "" +} + +func (m *GetIndexProgressResponse) GetDocumentCount() uint64 { + if m != nil { + return m.DocumentCount + } + return 0 +} + +func (m *GetIndexProgressResponse) GetState() string { + if m != nil { + return m.State + } + return "" +} + +func (m *GetIndexProgressResponse) GetIsUploaded() bool { + if m != nil { + return m.IsUploaded + } + return false +} + +func (m *GetIndexProgressResponse) GetLastUploadTime() string { + if m != nil { + return m.LastUploadTime + } + return "" +} + +func (m *GetIndexProgressResponse) GetS3Path() []string { + if m != nil { + return m.S3Path + } + return nil +} + +func init() { + proto.RegisterType((*CreateIndexRequest)(nil), "tipb.tici.CreateIndexRequest") + proto.RegisterType((*CreateIndexResponse)(nil), "tipb.tici.CreateIndexResponse") + proto.RegisterType((*DropIndexRequest)(nil), "tipb.tici.DropIndexRequest") + proto.RegisterType((*DropIndexResponse)(nil), "tipb.tici.DropIndexResponse") + proto.RegisterType((*TiCITableInfo)(nil), "tipb.tici.TiCITableInfo") + proto.RegisterType((*TiCIColumnInfo)(nil), "tipb.tici.TiCIColumnInfo") + proto.RegisterType((*TiCIIndexInfo)(nil), "tipb.tici.TiCIIndexInfo") + proto.RegisterType((*ParserInfo)(nil), "tipb.tici.ParserInfo") + proto.RegisterType((*GetIndexProgressRequest)(nil), "tipb.tici.GetIndexProgressRequest") + proto.RegisterType((*GetIndexProgressResponse)(nil), "tipb.tici.GetIndexProgressResponse") + proto.RegisterEnum("tipb.tici.IndexType", IndexType_name, IndexType_value) + proto.RegisterEnum("tipb.tici.ParserType", ParserType_name, ParserType_value) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for IndexerService service + +type IndexerServiceClient interface { + // CreateIndex creates a new index + CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*CreateIndexResponse, error) + // DropIndex removes an existing index + DropIndex(ctx context.Context, in *DropIndexRequest, opts ...grpc.CallOption) (*DropIndexResponse, error) + // GetIndexProgress retrieves the current progress of an index build + GetIndexProgress(ctx context.Context, in *GetIndexProgressRequest, opts ...grpc.CallOption) (*GetIndexProgressResponse, error) +} + +type indexerServiceClient struct { + cc *grpc.ClientConn +} + +func NewIndexerServiceClient(cc *grpc.ClientConn) IndexerServiceClient { + return &indexerServiceClient{cc} +} + +func (c *indexerServiceClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*CreateIndexResponse, error) { + out := new(CreateIndexResponse) + err := grpc.Invoke(ctx, "/tipb.tici.IndexerService/CreateIndex", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *indexerServiceClient) DropIndex(ctx context.Context, in *DropIndexRequest, opts ...grpc.CallOption) (*DropIndexResponse, error) { + out := new(DropIndexResponse) + err := grpc.Invoke(ctx, "/tipb.tici.IndexerService/DropIndex", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *indexerServiceClient) GetIndexProgress(ctx context.Context, in *GetIndexProgressRequest, opts ...grpc.CallOption) (*GetIndexProgressResponse, error) { + out := new(GetIndexProgressResponse) + err := grpc.Invoke(ctx, "/tipb.tici.IndexerService/GetIndexProgress", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for IndexerService service + +type IndexerServiceServer interface { + // CreateIndex creates a new index + CreateIndex(context.Context, *CreateIndexRequest) (*CreateIndexResponse, error) + // DropIndex removes an existing index + DropIndex(context.Context, *DropIndexRequest) (*DropIndexResponse, error) + // GetIndexProgress retrieves the current progress of an index build + GetIndexProgress(context.Context, *GetIndexProgressRequest) (*GetIndexProgressResponse, error) +} + +func RegisterIndexerServiceServer(s *grpc.Server, srv IndexerServiceServer) { + s.RegisterService(&_IndexerService_serviceDesc, srv) +} + +func _IndexerService_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IndexerServiceServer).CreateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tipb.tici.IndexerService/CreateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IndexerServiceServer).CreateIndex(ctx, req.(*CreateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IndexerService_DropIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DropIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IndexerServiceServer).DropIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tipb.tici.IndexerService/DropIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IndexerServiceServer).DropIndex(ctx, req.(*DropIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IndexerService_GetIndexProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexProgressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IndexerServiceServer).GetIndexProgress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tipb.tici.IndexerService/GetIndexProgress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IndexerServiceServer).GetIndexProgress(ctx, req.(*GetIndexProgressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _IndexerService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "tipb.tici.IndexerService", + HandlerType: (*IndexerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateIndex", + Handler: _IndexerService_CreateIndex_Handler, + }, + { + MethodName: "DropIndex", + Handler: _IndexerService_DropIndex_Handler, + }, + { + MethodName: "GetIndexProgress", + Handler: _IndexerService_GetIndexProgress_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "tici/indexer.proto", +} + +func (m *CreateIndexRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateIndexRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.IndexInfo != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.IndexInfo.Size())) + n1, err := m.IndexInfo.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.TableInfo != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.TableInfo.Size())) + n2, err := m.TableInfo.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + return i, nil +} + +func (m *CreateIndexResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateIndexResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Status != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Status)) + } + if len(m.ErrorMessage) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.ErrorMessage))) + i += copy(dAtA[i:], m.ErrorMessage) + } + if len(m.IndexId) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.IndexId))) + i += copy(dAtA[i:], m.IndexId) + } + return i, nil +} + +func (m *DropIndexRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DropIndexRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TableId != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.TableId)) + } + if len(m.IndexId) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.IndexId))) + i += copy(dAtA[i:], m.IndexId) + } + return i, nil +} + +func (m *DropIndexResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DropIndexResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Status != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Status)) + } + if len(m.ErrorMessage) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.ErrorMessage))) + i += copy(dAtA[i:], m.ErrorMessage) + } + return i, nil +} + +func (m *TiCITableInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiCITableInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TableId != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.TableId)) + } + if len(m.TableName) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.TableName))) + i += copy(dAtA[i:], m.TableName) + } + if len(m.DatabaseName) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.DatabaseName))) + i += copy(dAtA[i:], m.DatabaseName) + } + if m.Version != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Version)) + } + if len(m.Columns) > 0 { + for _, msg := range m.Columns { + dAtA[i] = 0x2a + i++ + i = encodeVarintIndexer(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *TiCIColumnInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiCIColumnInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.ColumnId != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.ColumnId)) + } + if len(m.ColumnName) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.ColumnName))) + i += copy(dAtA[i:], m.ColumnName) + } + if m.Type != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Type)) + } + if m.Collation != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Collation)) + } + if m.ColumnLength != 0 { + dAtA[i] = 0x28 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.ColumnLength)) + } + if m.Decimal != 0 { + dAtA[i] = 0x30 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Decimal)) + } + if m.Flag != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Flag)) + } + if len(m.Elems) > 0 { + for _, s := range m.Elems { + dAtA[i] = 0x42 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.DefaultVal) > 0 { + dAtA[i] = 0x4a + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.DefaultVal))) + i += copy(dAtA[i:], m.DefaultVal) + } + if m.IsPrimaryKey { + dAtA[i] = 0x50 + i++ + if m.IsPrimaryKey { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.IsArray { + dAtA[i] = 0x58 + i++ + if m.IsArray { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + return i, nil +} + +func (m *TiCIIndexInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiCIIndexInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.IndexId != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.IndexId)) + } + if len(m.IndexName) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.IndexName))) + i += copy(dAtA[i:], m.IndexName) + } + if m.IndexType != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.IndexType)) + } + if len(m.Columns) > 0 { + for _, msg := range m.Columns { + dAtA[i] = 0x22 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.IsUnique { + dAtA[i] = 0x28 + i++ + if m.IsUnique { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.ParserInfo != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.ParserInfo.Size())) + n3, err := m.ParserInfo.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if len(m.OtherParams) > 0 { + for k, _ := range m.OtherParams { + dAtA[i] = 0x3a + i++ + v := m.OtherParams[k] + mapSize := 1 + len(k) + sovIndexer(uint64(len(k))) + 1 + len(v) + sovIndexer(uint64(len(v))) + i = encodeVarintIndexer(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *ParserInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ParserInfo) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.ParserType != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.ParserType)) + } + if len(m.ParserParams) > 0 { + for k, _ := range m.ParserParams { + dAtA[i] = 0x12 + i++ + v := m.ParserParams[k] + mapSize := 1 + len(k) + sovIndexer(uint64(len(k))) + 1 + len(v) + sovIndexer(uint64(len(v))) + i = encodeVarintIndexer(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *GetIndexProgressRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetIndexProgressRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TableId != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.TableId)) + } + if m.IndexId != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.IndexId)) + } + return i, nil +} + +func (m *GetIndexProgressResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetIndexProgressResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Status != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.Status)) + } + if len(m.ErrorMessage) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.ErrorMessage))) + i += copy(dAtA[i:], m.ErrorMessage) + } + if m.DocumentCount != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(m.DocumentCount)) + } + if len(m.State) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.State))) + i += copy(dAtA[i:], m.State) + } + if m.IsUploaded { + dAtA[i] = 0x28 + i++ + if m.IsUploaded { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if len(m.LastUploadTime) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintIndexer(dAtA, i, uint64(len(m.LastUploadTime))) + i += copy(dAtA[i:], m.LastUploadTime) + } + if len(m.S3Path) > 0 { + for _, s := range m.S3Path { + dAtA[i] = 0x3a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func encodeVarintIndexer(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *CreateIndexRequest) Size() (n int) { + var l int + _ = l + if m.IndexInfo != nil { + l = m.IndexInfo.Size() + n += 1 + l + sovIndexer(uint64(l)) + } + if m.TableInfo != nil { + l = m.TableInfo.Size() + n += 1 + l + sovIndexer(uint64(l)) + } + return n +} + +func (m *CreateIndexResponse) Size() (n int) { + var l int + _ = l + if m.Status != 0 { + n += 1 + sovIndexer(uint64(m.Status)) + } + l = len(m.ErrorMessage) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + l = len(m.IndexId) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + return n +} + +func (m *DropIndexRequest) Size() (n int) { + var l int + _ = l + if m.TableId != 0 { + n += 1 + sovIndexer(uint64(m.TableId)) + } + l = len(m.IndexId) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + return n +} + +func (m *DropIndexResponse) Size() (n int) { + var l int + _ = l + if m.Status != 0 { + n += 1 + sovIndexer(uint64(m.Status)) + } + l = len(m.ErrorMessage) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + return n +} + +func (m *TiCITableInfo) Size() (n int) { + var l int + _ = l + if m.TableId != 0 { + n += 1 + sovIndexer(uint64(m.TableId)) + } + l = len(m.TableName) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + l = len(m.DatabaseName) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.Version != 0 { + n += 1 + sovIndexer(uint64(m.Version)) + } + if len(m.Columns) > 0 { + for _, e := range m.Columns { + l = e.Size() + n += 1 + l + sovIndexer(uint64(l)) + } + } + return n +} + +func (m *TiCIColumnInfo) Size() (n int) { + var l int + _ = l + if m.ColumnId != 0 { + n += 1 + sovIndexer(uint64(m.ColumnId)) + } + l = len(m.ColumnName) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.Type != 0 { + n += 1 + sovIndexer(uint64(m.Type)) + } + if m.Collation != 0 { + n += 1 + sovIndexer(uint64(m.Collation)) + } + if m.ColumnLength != 0 { + n += 1 + sovIndexer(uint64(m.ColumnLength)) + } + if m.Decimal != 0 { + n += 1 + sovIndexer(uint64(m.Decimal)) + } + if m.Flag != 0 { + n += 1 + sovIndexer(uint64(m.Flag)) + } + if len(m.Elems) > 0 { + for _, s := range m.Elems { + l = len(s) + n += 1 + l + sovIndexer(uint64(l)) + } + } + l = len(m.DefaultVal) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.IsPrimaryKey { + n += 2 + } + if m.IsArray { + n += 2 + } + return n +} + +func (m *TiCIIndexInfo) Size() (n int) { + var l int + _ = l + if m.IndexId != 0 { + n += 1 + sovIndexer(uint64(m.IndexId)) + } + l = len(m.IndexName) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.IndexType != 0 { + n += 1 + sovIndexer(uint64(m.IndexType)) + } + if len(m.Columns) > 0 { + for _, e := range m.Columns { + l = e.Size() + n += 1 + l + sovIndexer(uint64(l)) + } + } + if m.IsUnique { + n += 2 + } + if m.ParserInfo != nil { + l = m.ParserInfo.Size() + n += 1 + l + sovIndexer(uint64(l)) + } + if len(m.OtherParams) > 0 { + for k, v := range m.OtherParams { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovIndexer(uint64(len(k))) + 1 + len(v) + sovIndexer(uint64(len(v))) + n += mapEntrySize + 1 + sovIndexer(uint64(mapEntrySize)) + } + } + return n +} + +func (m *ParserInfo) Size() (n int) { + var l int + _ = l + if m.ParserType != 0 { + n += 1 + sovIndexer(uint64(m.ParserType)) + } + if len(m.ParserParams) > 0 { + for k, v := range m.ParserParams { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovIndexer(uint64(len(k))) + 1 + len(v) + sovIndexer(uint64(len(v))) + n += mapEntrySize + 1 + sovIndexer(uint64(mapEntrySize)) + } + } + return n +} + +func (m *GetIndexProgressRequest) Size() (n int) { + var l int + _ = l + if m.TableId != 0 { + n += 1 + sovIndexer(uint64(m.TableId)) + } + if m.IndexId != 0 { + n += 1 + sovIndexer(uint64(m.IndexId)) + } + return n +} + +func (m *GetIndexProgressResponse) Size() (n int) { + var l int + _ = l + if m.Status != 0 { + n += 1 + sovIndexer(uint64(m.Status)) + } + l = len(m.ErrorMessage) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.DocumentCount != 0 { + n += 1 + sovIndexer(uint64(m.DocumentCount)) + } + l = len(m.State) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if m.IsUploaded { + n += 2 + } + l = len(m.LastUploadTime) + if l > 0 { + n += 1 + l + sovIndexer(uint64(l)) + } + if len(m.S3Path) > 0 { + for _, s := range m.S3Path { + l = len(s) + n += 1 + l + sovIndexer(uint64(l)) + } + } + return n +} + +func sovIndexer(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIndexer(x uint64) (n int) { + return sovIndexer(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *CreateIndexRequest) 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 ErrIntOverflowIndexer + } + 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: CreateIndexRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateIndexRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IndexInfo == nil { + m.IndexInfo = &TiCIIndexInfo{} + } + if err := m.IndexInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TableInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TableInfo == nil { + m.TableInfo = &TiCITableInfo{} + } + if err := m.TableInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateIndexResponse) 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 ErrIntOverflowIndexer + } + 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: CreateIndexResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateIndexResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IndexId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DropIndexRequest) 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 ErrIntOverflowIndexer + } + 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: DropIndexRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DropIndexRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) + } + m.TableId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TableId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IndexId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DropIndexResponse) 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 ErrIntOverflowIndexer + } + 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: DropIndexResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DropIndexResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TiCITableInfo) 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 ErrIntOverflowIndexer + } + 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: TiCITableInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TiCITableInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) + } + m.TableId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TableId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TableName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TableName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DatabaseName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DatabaseName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Columns = append(m.Columns, &TiCIColumnInfo{}) + if err := m.Columns[len(m.Columns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TiCIColumnInfo) 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 ErrIntOverflowIndexer + } + 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: TiCIColumnInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TiCIColumnInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ColumnId", wireType) + } + m.ColumnId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ColumnId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ColumnName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ColumnName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Collation", wireType) + } + m.Collation = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Collation |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ColumnLength", wireType) + } + m.ColumnLength = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ColumnLength |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Decimal", wireType) + } + m.Decimal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Decimal |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Flag", wireType) + } + m.Flag = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Flag |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Elems", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Elems = append(m.Elems, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultVal", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultVal = append(m.DefaultVal[:0], dAtA[iNdEx:postIndex]...) + if m.DefaultVal == nil { + m.DefaultVal = []byte{} + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsPrimaryKey", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.IsPrimaryKey = bool(v != 0) + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArray", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArray = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TiCIIndexInfo) 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 ErrIntOverflowIndexer + } + 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: TiCIIndexInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TiCIIndexInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexId", wireType) + } + m.IndexId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.IndexId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IndexName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexType", wireType) + } + m.IndexType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.IndexType |= (IndexType(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Columns = append(m.Columns, &TiCIColumnInfo{}) + if err := m.Columns[len(m.Columns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsUnique", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.IsUnique = bool(v != 0) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ParserInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ParserInfo == nil { + m.ParserInfo = &ParserInfo{} + } + if err := m.ParserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OtherParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OtherParams == nil { + m.OtherParams = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthIndexer + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthIndexer + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.OtherParams[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ParserInfo) 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 ErrIntOverflowIndexer + } + 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: ParserInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ParserInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ParserType", wireType) + } + m.ParserType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ParserType |= (ParserType(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ParserParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIndexer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ParserParams == nil { + m.ParserParams = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthIndexer + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthIndexer + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.ParserParams[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetIndexProgressRequest) 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 ErrIntOverflowIndexer + } + 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: GetIndexProgressRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetIndexProgressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) + } + m.TableId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TableId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IndexId", wireType) + } + m.IndexId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.IndexId |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetIndexProgressResponse) 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 ErrIntOverflowIndexer + } + 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: GetIndexProgressResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetIndexProgressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DocumentCount", wireType) + } + m.DocumentCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DocumentCount |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsUploaded", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.IsUploaded = bool(v != 0) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUploadTime", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LastUploadTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field S3Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIndexer + } + 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 ErrInvalidLengthIndexer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.S3Path = append(m.S3Path, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIndexer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIndexer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIndexer(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIndexer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIndexer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIndexer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthIndexer + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIndexer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipIndexer(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthIndexer = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIndexer = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("tici/indexer.proto", fileDescriptorIndexer) } + +var fileDescriptorIndexer = []byte{ + // 1000 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0x1b, 0x45, + 0x14, 0xce, 0xda, 0xf1, 0xcf, 0x1e, 0x3b, 0xd6, 0x76, 0x08, 0x74, 0xe3, 0xb6, 0x21, 0x72, 0x41, + 0x98, 0x5e, 0xa4, 0x52, 0x2c, 0x01, 0xe2, 0x02, 0x14, 0xd2, 0x84, 0x46, 0x75, 0x63, 0x6b, 0x63, + 0x03, 0x12, 0x17, 0xab, 0x89, 0x77, 0xe2, 0xac, 0xd8, 0xbf, 0xce, 0x8c, 0x23, 0x7c, 0x8d, 0xc4, + 0x23, 0x20, 0x5e, 0x86, 0x7b, 0x24, 0x6e, 0x90, 0x78, 0x01, 0x14, 0x5e, 0x82, 0x4b, 0x34, 0x67, + 0x66, 0xed, 0x75, 0x7e, 0x2a, 0x40, 0xbd, 0x3b, 0xf3, 0x9d, 0x9f, 0x39, 0xe7, 0x9b, 0x6f, 0x67, + 0x07, 0x88, 0x0c, 0x27, 0xe1, 0xd3, 0x30, 0x09, 0xd8, 0xf7, 0x8c, 0xef, 0x66, 0x3c, 0x95, 0x29, + 0xb1, 0x65, 0x98, 0x9d, 0xed, 0x2a, 0x47, 0x7b, 0x73, 0x9a, 0x4e, 0x53, 0x44, 0x9f, 0x2a, 0x4b, + 0x07, 0x74, 0x7e, 0xb4, 0x80, 0x1c, 0x70, 0x46, 0x25, 0x3b, 0x56, 0x89, 0x1e, 0x7b, 0x35, 0x63, + 0x42, 0x92, 0x8f, 0x01, 0xb0, 0x90, 0x1f, 0x26, 0xe7, 0xa9, 0x6b, 0xed, 0x58, 0xdd, 0xc6, 0x9e, + 0xbb, 0xbb, 0x28, 0xb6, 0x3b, 0x0a, 0x0f, 0x8e, 0x31, 0xe1, 0x38, 0x39, 0x4f, 0x3d, 0x3b, 0xcc, + 0x4d, 0x95, 0x28, 0xe9, 0x59, 0xc4, 0x74, 0x62, 0xe9, 0xd6, 0xc4, 0x91, 0x0a, 0xd0, 0x89, 0x32, + 0x37, 0x3b, 0x31, 0xbc, 0xb5, 0xd2, 0x87, 0xc8, 0xd2, 0x44, 0x30, 0xf2, 0x0e, 0x54, 0x85, 0xa4, + 0x72, 0x26, 0xb0, 0x89, 0x8a, 0x67, 0x56, 0xe4, 0x31, 0x6c, 0x30, 0xce, 0x53, 0xee, 0xc7, 0x4c, + 0x08, 0x3a, 0x65, 0xb8, 0x95, 0xed, 0x35, 0x11, 0x7c, 0xa9, 0x31, 0xb2, 0x05, 0x75, 0x33, 0x45, + 0xe0, 0x96, 0xd1, 0x5f, 0xd3, 0x9d, 0x06, 0x9d, 0xe7, 0xe0, 0x3c, 0xe3, 0x69, 0xb6, 0x32, 0xf4, + 0x16, 0xd4, 0x4d, 0xef, 0x01, 0xee, 0x56, 0xf6, 0x6a, 0xba, 0xbf, 0x60, 0xa5, 0x52, 0x69, 0xb5, + 0xd2, 0x10, 0xee, 0x15, 0x2a, 0xbd, 0x81, 0xb6, 0x3b, 0xbf, 0x58, 0xb0, 0xb1, 0xc2, 0xd3, 0xeb, + 0x3a, 0x7b, 0x94, 0x13, 0x9e, 0xd0, 0x38, 0x2f, 0xa7, 0x69, 0x3d, 0xa1, 0x31, 0x53, 0x1b, 0x06, + 0x54, 0xd2, 0x33, 0x2a, 0x4c, 0x84, 0xe6, 0xa1, 0x99, 0x83, 0x18, 0xe4, 0x42, 0xed, 0x92, 0x71, + 0x11, 0xa6, 0x89, 0xbb, 0xae, 0xab, 0x9b, 0x25, 0xe9, 0x41, 0x6d, 0x92, 0x46, 0xb3, 0x38, 0x11, + 0x6e, 0x65, 0xa7, 0xdc, 0x6d, 0xec, 0x6d, 0x5d, 0x3b, 0xcb, 0x03, 0xf4, 0xe2, 0x61, 0xe6, 0x91, + 0x9d, 0xdf, 0x4a, 0xd0, 0x5a, 0xf5, 0x91, 0x07, 0x60, 0x6b, 0xef, 0x72, 0x82, 0xba, 0x06, 0x8e, + 0x03, 0xf2, 0x2e, 0x34, 0x8c, 0xb3, 0x30, 0x03, 0x68, 0x08, 0xfb, 0x23, 0xb0, 0x2e, 0xe7, 0x99, + 0xee, 0xbd, 0xe2, 0xa1, 0x4d, 0x1e, 0x62, 0xc5, 0x88, 0xca, 0xbc, 0xeb, 0x8a, 0xb7, 0x04, 0xd4, + 0xd8, 0xa6, 0x64, 0xc4, 0x92, 0xa9, 0xbc, 0x70, 0x2b, 0x18, 0xd1, 0xd4, 0x60, 0x1f, 0x31, 0x35, + 0x76, 0xc0, 0x26, 0x61, 0x4c, 0x23, 0xb7, 0x8a, 0xee, 0x7c, 0xa9, 0x36, 0x3c, 0x8f, 0xe8, 0xd4, + 0xad, 0xe9, 0x0d, 0x95, 0x4d, 0x36, 0xa1, 0xc2, 0x22, 0x16, 0x0b, 0xb7, 0xbe, 0x53, 0xee, 0xda, + 0x9e, 0x5e, 0xa8, 0xde, 0x03, 0x76, 0x4e, 0x67, 0x91, 0xf4, 0x2f, 0x69, 0xe4, 0xda, 0x3b, 0x56, + 0xb7, 0xe9, 0x81, 0x81, 0xbe, 0xa2, 0x11, 0x79, 0x0f, 0x5a, 0xa1, 0xf0, 0x33, 0x1e, 0xc6, 0x94, + 0xcf, 0xfd, 0xef, 0xd8, 0xdc, 0x85, 0x1d, 0xab, 0x5b, 0xf7, 0x9a, 0xa1, 0x18, 0x6a, 0xf0, 0x05, + 0x9b, 0xa3, 0xbe, 0x84, 0x4f, 0x39, 0xa7, 0x73, 0xb7, 0x81, 0xfe, 0x5a, 0x28, 0xf6, 0xd5, 0xb2, + 0xf3, 0x53, 0x59, 0xab, 0x61, 0xf1, 0xb9, 0xad, 0x88, 0xd1, 0xa8, 0xc1, 0x88, 0x51, 0xa9, 0x41, + 0xbb, 0x8a, 0x6a, 0x40, 0x04, 0x89, 0xec, 0xe5, 0xee, 0x05, 0x9d, 0xad, 0xbd, 0xcd, 0xc2, 0x89, + 0xe2, 0x1e, 0xa3, 0x79, 0xc6, 0x4c, 0x92, 0x32, 0x8b, 0x1a, 0x58, 0xff, 0xb7, 0x1a, 0x50, 0x07, + 0x1e, 0x0a, 0x7f, 0x96, 0x84, 0xaf, 0x66, 0x0c, 0xc9, 0xaf, 0x7b, 0xf5, 0x50, 0x8c, 0x71, 0x4d, + 0x3e, 0x82, 0x46, 0x46, 0xb9, 0x60, 0x5c, 0xdf, 0x12, 0x55, 0xbc, 0x25, 0xde, 0x2e, 0x54, 0x1d, + 0xa2, 0x17, 0x2b, 0x42, 0xb6, 0xb0, 0x49, 0x1f, 0x9a, 0xa9, 0xbc, 0x60, 0xdc, 0xcf, 0x28, 0xa7, + 0xb1, 0x70, 0x6b, 0xd8, 0xce, 0x87, 0x77, 0xdd, 0x4b, 0xbb, 0x03, 0x15, 0x3c, 0xc4, 0xd8, 0xc3, + 0x44, 0xf2, 0xb9, 0xd7, 0x48, 0x97, 0x48, 0xfb, 0x33, 0x70, 0xae, 0x07, 0x10, 0x07, 0xca, 0xea, + 0x88, 0x2c, 0x24, 0x4e, 0x99, 0xea, 0xd8, 0x2f, 0x69, 0x34, 0xcb, 0xc9, 0xd4, 0x8b, 0x4f, 0x4b, + 0x9f, 0x58, 0x9d, 0x3f, 0x2c, 0x80, 0x65, 0xa3, 0x85, 0xa1, 0x90, 0x5c, 0x0b, 0xc9, 0xbd, 0x39, + 0x14, 0xb2, 0x6b, 0x86, 0x42, 0x7a, 0xfb, 0xb0, 0x61, 0xf2, 0xcc, 0x54, 0x25, 0x9c, 0xea, 0x83, + 0x5b, 0xe9, 0x30, 0x66, 0x71, 0xa6, 0x66, 0x56, 0x80, 0xda, 0x9f, 0xc3, 0xbd, 0x1b, 0x21, 0xff, + 0x69, 0xaa, 0x01, 0xdc, 0xff, 0x92, 0x49, 0xe4, 0x70, 0xc8, 0xd3, 0x29, 0x67, 0x42, 0xfc, 0x8f, + 0xfb, 0x71, 0x29, 0xc9, 0xce, 0xdf, 0x16, 0xb8, 0x37, 0x2b, 0xbe, 0x89, 0xeb, 0xfd, 0x7d, 0x68, + 0x05, 0xe9, 0x64, 0x16, 0xb3, 0x44, 0xfa, 0x93, 0x74, 0x96, 0x48, 0x54, 0xf4, 0xba, 0xb7, 0x91, + 0xa3, 0x07, 0x0a, 0x54, 0xb3, 0xaa, 0xaa, 0x0c, 0x6f, 0x09, 0xdb, 0xd3, 0x0b, 0xf5, 0xe1, 0x2a, + 0x81, 0x66, 0x51, 0x4a, 0x03, 0x16, 0x18, 0x89, 0x42, 0x28, 0xc6, 0x06, 0x21, 0x5d, 0x70, 0x22, + 0x2a, 0xa4, 0x09, 0xf1, 0x65, 0x18, 0x33, 0x54, 0xaa, 0xed, 0xb5, 0x14, 0xae, 0xe3, 0x46, 0x61, + 0xcc, 0xc8, 0x7d, 0xa8, 0x89, 0x9e, 0x9f, 0x51, 0x79, 0x81, 0x8a, 0xb4, 0xbd, 0xaa, 0xe8, 0x0d, + 0xa9, 0xbc, 0x78, 0xd2, 0x03, 0x7b, 0xf1, 0x45, 0x91, 0x06, 0xd4, 0xc6, 0x27, 0x2f, 0x4e, 0x06, + 0x5f, 0x9f, 0x38, 0x6b, 0x64, 0x03, 0xec, 0xa3, 0x71, 0xbf, 0xef, 0x8f, 0x0e, 0xbf, 0x19, 0x39, + 0x16, 0x01, 0xa8, 0x1e, 0x8c, 0x4f, 0x47, 0x83, 0x97, 0x4e, 0xe9, 0xc9, 0x51, 0xae, 0x2a, 0xcc, + 0x22, 0xd0, 0x32, 0x59, 0xfe, 0x70, 0xdf, 0x3b, 0x3d, 0xf4, 0x9c, 0x35, 0x85, 0x3d, 0x3b, 0x3c, + 0xda, 0x1f, 0xf7, 0x47, 0x39, 0x66, 0x11, 0x07, 0x9a, 0x83, 0xd1, 0xf3, 0x43, 0x2f, 0x47, 0x4a, + 0x7b, 0x3f, 0x94, 0xa0, 0x75, 0xac, 0x1f, 0x03, 0xa7, 0x8c, 0x5f, 0x86, 0x13, 0x25, 0xb5, 0x46, + 0xe1, 0x1f, 0x4b, 0x1e, 0x15, 0x24, 0x76, 0xf3, 0x0d, 0xd0, 0xde, 0xbe, 0xcb, 0x6d, 0xce, 0xee, + 0x08, 0xec, 0xc5, 0x8f, 0x8f, 0x3c, 0x28, 0x04, 0x5f, 0xff, 0xb1, 0xb6, 0x1f, 0xde, 0xee, 0x34, + 0x75, 0xbe, 0x05, 0xe7, 0xba, 0x3e, 0x48, 0xa7, 0x90, 0x71, 0x87, 0x1c, 0xdb, 0x8f, 0x5f, 0x1b, + 0xa3, 0x8b, 0x7f, 0xe1, 0xfc, 0x7a, 0xb5, 0x6d, 0xfd, 0x7e, 0xb5, 0x6d, 0xfd, 0x79, 0xb5, 0x6d, + 0xfd, 0xfc, 0xd7, 0xf6, 0xda, 0x59, 0x15, 0x1f, 0x3e, 0xbd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x48, 0x3a, 0x5e, 0xfe, 0x2f, 0x09, 0x00, 0x00, +} diff --git a/proto/tici/indexer.proto b/proto/tici/indexer.proto new file mode 100644 index 00000000..99ef5735 --- /dev/null +++ b/proto/tici/indexer.proto @@ -0,0 +1,167 @@ +syntax = "proto3"; + +package tipb.tici; + +import "gogoproto/gogo.proto"; + +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.unmarshaler_all) = true; + +// IndexerService provides index creation and deletion functionality +service IndexerService { + // CreateIndex creates a new index + rpc CreateIndex(CreateIndexRequest) returns (CreateIndexResponse); + + // DropIndex removes an existing index + rpc DropIndex(DropIndexRequest) returns (DropIndexResponse); + + // GetIndexProgress retrieves the current progress of an index build + rpc GetIndexProgress(GetIndexProgressRequest) returns (GetIndexProgressResponse); +} + +// IndexType represents the type of index +enum IndexType { + // Default value must be 0 in proto3 + UNKNOWN = 0; + // Full-text index type + FULL_TEXT = 1; + // Custom index type + CUSTOM = 2; +} + +// ParserType represents the type of parser +enum ParserType { + // Default value must be 0 in proto3 + UNKNOWN_PARSER = 0; + // Default parser + DEFAULT_PARSER = 1; + // Other parser types + OTHER_PARSER = 2; +} + +// CreateIndexRequest is a request to create an index +message CreateIndexRequest { + // Index information + TiCIIndexInfo index_info = 1; + // Table information + TiCITableInfo table_info = 2; +} + +// CreateIndexResponse is a response to the index creation request +message CreateIndexResponse { + // Operation result status code, 0 means success + int32 status = 1; + // Error message, only valid when status is non-zero + string error_message = 2; + // Created index ID + string index_id = 3; +} + +// DropIndexRequest is a request to drop an index +message DropIndexRequest { + // Index ID + int64 table_id = 1; + string index_id = 2; + +} + +// DropIndexResponse is a response to the index drop request +message DropIndexResponse { + // Operation result status code, 0 means success + int32 status = 1; + // Error message, only valid when status is non-zero + string error_message = 2; +} + +// TableInfo represents table information +message TiCITableInfo { + // Table ID + int64 table_id = 1; + // Table name + string table_name = 2; + // Database name + string database_name = 3; + // Table version + int64 version = 4; + // Column information + repeated TiCIColumnInfo columns = 5; +} + +// ColumnInfo represents column information +message TiCIColumnInfo { + // Column ID + int64 column_id = 1; + // Column name + string column_name = 2; + // MySQL type + int32 type = 3; + // Collation + int32 collation = 4; + // Column length + int32 column_length = 5; + // Decimal places + int32 decimal = 6; + // Flags + int32 flag = 7; + // Enum elements + repeated string elems = 8; + // Default value + bytes default_val = 9; + // Whether it's a primary key + bool is_primary_key = 10; + // Whether it's an array + bool is_array = 11; +} + +// IndexInfo represents index information +message TiCIIndexInfo { + // Index ID + int64 index_id = 1; + // Index name + string index_name = 2; + // Index type (fulltext, custom) + IndexType index_type = 3; + // Index columns + repeated TiCIColumnInfo columns = 4; + // Whether the index is unique + bool is_unique = 5; + // Parser information + ParserInfo parser_info = 6; + // Other index parameters + map other_params = 7; +} + +// ParserInfo represents parser information +message ParserInfo { + // Parser type + ParserType parser_type = 1; + // Parser parameters + map parser_params = 2; +} + +// GetIndexProgressRequest is a request to get the progress of an index build +message GetIndexProgressRequest { + // Table ID + int64 table_id = 1; + // Index ID + int64 index_id = 2; +} + +// GetIndexProgressResponse is a response containing index build progress +message GetIndexProgressResponse { + // Operation result status code, 0 means success + int32 status = 1; + // Error message, only valid when status is non-zero + string error_message = 2; + // Number of documents indexed so far + uint64 document_count = 3; + // Build task state (PENDING, RUNNING, COMPLETED, FAILED) + string state = 4; + // Whether index has been uploaded to S3 + bool is_uploaded = 5; + // Last S3 upload time in RFC3339 format + string last_upload_time = 6; + // S3 path where the index is stored + repeated string s3_path = 7; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index bb4b8c8a..4fcabbbb 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -625,9 +625,6 @@ }, { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -653,22 +650,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -802,9 +783,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -819,32 +797,16 @@ "name": "java_package", "value": "com.pingcap.tidb.tipb" }, - { - "name": "(gogoproto.marshaler_all)", - "value": "true" - }, { "name": "(gogoproto.sizer_all)", "value": "true" }, { - "name": "(gogoproto.unmarshaler_all)", + "name": "(gogoproto.marshaler_all)", "value": "true" }, { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", + "name": "(gogoproto.unmarshaler_all)", "value": "true" } ] @@ -928,17 +890,13 @@ "name": "TypeBroadcastQuery", "integer": 17 }, - { - "name": "TypeCTESink", - "integer": 18 - }, - { - "name": "TypeCTESource", - "integer": 19 - }, { "name": "TypeIndexLookUp", "integer": 20 + }, + { + "name": "TypeExplainForConnection", + "integer": 21 } ] }, @@ -1045,35 +1003,15 @@ "name": "FTSQueryTypeInvalid" }, { - "name": "FTSQueryTypeNoScore", + "name": "FTSQueryTypeFilter", "integer": 1 }, { - "name": "FTSQueryTypeWithScore", + "name": "FTSQueryTypeTopK", "integer": 2 } ] }, - { - "name": "ColumnarIndexType", - "enum_fields": [ - { - "name": "TypeInvalid" - }, - { - "name": "TypeVector", - "integer": 1 - }, - { - "name": "TypeInverted", - "integer": 2 - }, - { - "name": "TypeFulltext", - "integer": 3 - } - ] - }, { "name": "JoinType", "enum_fields": [ @@ -1363,18 +1301,6 @@ "type": "BroadcastQuery", "optional": true }, - { - "id": 22, - "name": "cte_sink", - "type": "CTESink", - "optional": true - }, - { - "id": 23, - "name": "cte_source", - "type": "CTESource", - "optional": true - }, { "id": 24, "name": "index_lookup", @@ -1386,6 +1312,12 @@ "name": "parent_idx", "type": "uint32", "optional": true + }, + { + "id": 26, + "name": "explain_for_connection", + "type": "ExplainForConnection", + "optional": true } ] }, @@ -1451,112 +1383,6 @@ "name": "upstream_cte_task_meta", "type": "EncodedBytesSlice", "is_repeated": true - }, - { - "id": 9, - "name": "same_zone_flag", - "type": "bool", - "is_repeated": true - } - ] - }, - { - "name": "CTESink", - "fields": [ - { - "id": 1, - "name": "cte_id", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 2, - "name": "cte_source_num", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 3, - "name": "cte_sink_num", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 4, - "name": "child", - "type": "Executor", - "optional": true - }, - { - "id": 5, - "name": "field_types", - "type": "FieldType", - "is_repeated": true - } - ] - }, - { - "name": "CTESource", - "fields": [ - { - "id": 1, - "name": "cte_id", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 2, - "name": "cte_source_num", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 3, - "name": "cte_sink_num", - "type": "uint32", - "required": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 4, - "name": "field_types", - "type": "FieldType", - "is_repeated": true } ] }, @@ -1574,6 +1400,12 @@ "name": "keep_order", "type": "bool", "optional": true + }, + { + "id": 3, + "name": "children", + "type": "Executor", + "is_repeated": true } ] }, @@ -1614,12 +1446,6 @@ "name": "original_cte_prdocuer_task_meta", "type": "bytes", "is_repeated": true - }, - { - "id": 5, - "name": "same_zone_flag", - "type": "bool", - "is_repeated": true } ] }, @@ -1676,9 +1502,15 @@ }, { "id": 5, - "name": "deprecated_column_id", + "name": "column_id", "type": "int64", - "optional": true + "optional": true, + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] }, { "id": 6, @@ -1721,65 +1553,12 @@ "value": "false" } ] - }, - { - "id": 21, - "name": "column", - "type": "ColumnInfo", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 22, - "name": "enable_distance_proj", - "type": "bool", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] } ], "reserved_ids": [ 7 ] }, - { - "name": "InvertedQueryInfo", - "fields": [ - { - "id": 1, - "name": "index_id", - "type": "int64", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 2, - "name": "column_id", - "type": "int64", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - } - ] - }, { "name": "FTSQueryInfo", "fields": [ @@ -1848,65 +1627,6 @@ "name": "top_k", "type": "uint32", "optional": true - }, - { - "id": 20, - "name": "query_func", - "type": "ScalarFuncSig", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 21, - "name": "match_expr", - "type": "Expr", - "is_repeated": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - } - ] - }, - { - "name": "ColumnarIndexInfo", - "fields": [ - { - "id": 1, - "name": "index_type", - "type": "ColumnarIndexType", - "optional": true, - "options": [ - { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 2, - "name": "ann_query_info", - "type": "ANNQueryInfo", - "oneof_parent": "index" - }, - { - "id": 3, - "name": "inverted_query_info", - "type": "InvertedQueryInfo", - "oneof_parent": "index" - }, - { - "id": 4, - "name": "fts_query_info", - "type": "FTSQueryInfo", - "oneof_parent": "index" } ] }, @@ -1997,6 +1717,12 @@ "type": "Expr", "is_repeated": true }, + { + "id": 13, + "name": "ann_query", + "type": "ANNQueryInfo", + "optional": true + }, { "id": 11, "name": "runtime_filter_list", @@ -2010,22 +1736,10 @@ "optional": true, "options": [ { - "name": "(gogoproto.nullable)", - "value": "false" - } - ] - }, - { - "id": 13, - "name": "deprecated_ann_query", - "type": "ANNQueryInfo", - "optional": true - }, - { - "id": 14, - "name": "used_columnar_indexes", - "type": "ColumnarIndexInfo", - "is_repeated": true + "name": "(gogoproto.nullable)", + "value": "false" + } + ] } ] }, @@ -2092,6 +1806,12 @@ "type": "Expr", "is_repeated": true }, + { + "id": 11, + "name": "ann_query", + "type": "ANNQueryInfo", + "optional": true + }, { "id": 9, "name": "runtime_filter_list", @@ -2109,18 +1829,6 @@ "value": "false" } ] - }, - { - "id": 11, - "name": "deprecated_ann_query", - "type": "ANNQueryInfo", - "optional": true - }, - { - "id": 12, - "name": "used_columnar_indexes", - "type": "ColumnarIndexInfo", - "is_repeated": true } ] }, @@ -2364,12 +2072,6 @@ "name": "primary_column_ids", "type": "int64", "is_repeated": true - }, - { - "id": 7, - "name": "fts_query_info", - "type": "FTSQueryInfo", - "optional": true } ] }, @@ -2533,6 +2235,12 @@ "name": "partition_by", "type": "ByItem", "is_repeated": true + }, + { + "id": 4, + "name": "truncate_key_expr", + "type": "Expr", + "is_repeated": true } ] }, @@ -2565,6 +2273,23 @@ } ] }, + { + "name": "ExplainForConnection", + "fields": [ + { + "id": 1, + "name": "connection_id", + "type": "uint64", + "optional": true, + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + } + ] + }, { "name": "ExecutorExecutionSummary", "fields": [ @@ -2615,12 +2340,6 @@ "name": "tiflash_wait_summary", "type": "TiFlashWaitSummary", "optional": true - }, - { - "id": 9, - "name": "tiflash_network_summary", - "type": "TiFlashNetWorkSummary", - "optional": true } ] }, @@ -2879,103 +2598,55 @@ }, { "id": 100, - "name": "vector_idx_load_from_s3", + "name": "total_vector_idx_load_from_s3", "type": "uint64", "optional": true }, { "id": 101, - "name": "vector_idx_load_from_disk", + "name": "total_vector_idx_load_from_disk", "type": "uint64", "optional": true }, { "id": 102, - "name": "vector_idx_load_from_cache", + "name": "total_vector_idx_load_from_cache", "type": "uint64", "optional": true }, { "id": 103, - "name": "vector_idx_load_time_ms", + "name": "total_vector_idx_load_time_ms", "type": "uint64", "optional": true }, { "id": 104, - "name": "vector_idx_search_time_ms", + "name": "total_vector_idx_search_time_ms", "type": "uint64", "optional": true }, { "id": 105, - "name": "vector_idx_search_visited_nodes", + "name": "total_vector_idx_search_visited_nodes", "type": "uint64", "optional": true }, { "id": 106, - "name": "vector_idx_search_discarded_nodes", + "name": "total_vector_idx_search_discarded_nodes", "type": "uint64", "optional": true }, { "id": 107, - "name": "vector_idx_read_vec_time_ms", + "name": "total_vector_idx_read_vec_time_ms", "type": "uint64", "optional": true }, { "id": 108, - "name": "vector_idx_read_others_time_ms", - "type": "uint64", - "optional": true - }, - { - "id": 120, - "name": "inverted_idx_load_from_s3", - "type": "uint32", - "optional": true - }, - { - "id": 121, - "name": "inverted_idx_load_from_disk", - "type": "uint32", - "optional": true - }, - { - "id": 122, - "name": "inverted_idx_load_from_cache", - "type": "uint32", - "optional": true - }, - { - "id": 123, - "name": "inverted_idx_load_time_ms", - "type": "uint64", - "optional": true - }, - { - "id": 124, - "name": "inverted_idx_search_time_ms", - "type": "uint64", - "optional": true - }, - { - "id": 125, - "name": "inverted_idx_search_skipped_packs", - "type": "uint32", - "optional": true - }, - { - "id": 126, - "name": "inverted_idx_indexed_rows", - "type": "uint64", - "optional": true - }, - { - "id": 127, - "name": "inverted_idx_search_selected_rows", + "name": "total_vector_idx_read_others_time_ms", "type": "uint64", "optional": true }, @@ -3154,35 +2825,6 @@ } ] }, - { - "name": "TiFlashNetWorkSummary", - "fields": [ - { - "id": 1, - "name": "inner_zone_send_bytes", - "type": "uint64", - "optional": true - }, - { - "id": 2, - "name": "inner_zone_receive_bytes", - "type": "uint64", - "optional": true - }, - { - "id": 3, - "name": "inter_zone_send_bytes", - "type": "uint64", - "optional": true - }, - { - "id": 4, - "name": "inter_zone_receive_bytes", - "type": "uint64", - "optional": true - } - ] - }, { "name": "Sort", "fields": [ @@ -3423,9 +3065,6 @@ }, { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -3451,22 +3090,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -3568,12 +3191,6 @@ "id": 4, "name": "discarded_due_to_too_long", "type": "bool" - }, - { - "id": 5, - "name": "subqueries", - "type": "ExplainOperator", - "is_repeated": true } ] }, @@ -3658,16 +3275,6 @@ "id": 15, "name": "disk_bytes", "type": "int64" - }, - { - "id": 16, - "name": "brief_name", - "type": "string" - }, - { - "id": 17, - "name": "brief_operator_info", - "type": "string" } ] }, @@ -3783,9 +3390,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -3811,22 +3415,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -5661,18 +5249,6 @@ "name": "FTSMatchWord", "integer": 5201 }, - { - "name": "FTSMatchExpression", - "integer": 5202 - }, - { - "name": "FTSMatchPrefix", - "integer": 5203 - }, - { - "name": "FTSMatchRegexp", - "integer": 5204 - }, { "name": "DateFormatSig", "integer": 6001 @@ -6830,10 +6406,10 @@ ], "imports": [ { - "path": "gogoproto/gogo.proto" + "path": "metadata.proto" }, { - "path": "rustproto.proto" + "path": "gogoproto/gogo.proto" } ], "package": { @@ -6859,22 +6435,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -6974,9 +6534,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -7002,22 +6559,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -7076,12 +6617,6 @@ "value": "false" } ] - }, - { - "id": 5, - "name": "keyspace_name", - "type": "bytes", - "optional": true } ] } @@ -7089,9 +6624,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -7117,22 +6649,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -7345,9 +6861,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -7373,22 +6886,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -7911,9 +7408,6 @@ }, { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -7939,22 +7433,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -8302,9 +7780,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -8322,22 +7797,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -8364,11 +7823,6 @@ "name": "items", "type": "TopSQLRecordItem", "is_repeated": true - }, - { - "id": 4, - "name": "keyspace_name", - "type": "bytes" } ] }, @@ -8399,6 +7853,16 @@ "id": 6, "name": "stmt_duration_count", "type": "uint64" + }, + { + "id": 7, + "name": "stmt_network_in_bytes", + "type": "uint64" + }, + { + "id": 8, + "name": "stmt_network_out_bytes", + "type": "uint64" } ], "maps": [ @@ -8429,11 +7893,6 @@ "id": 3, "name": "is_internal_sql", "type": "bool" - }, - { - "id": 4, - "name": "keyspace_name", - "type": "bytes" } ] }, @@ -8454,11 +7913,6 @@ "id": 3, "name": "encoded_normalized_plan", "type": "string" - }, - { - "id": 4, - "name": "keyspace_name", - "type": "bytes" } ] }, @@ -8531,9 +7985,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -8559,22 +8010,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } @@ -8619,9 +8054,6 @@ "imports": [ { "path": "gogoproto/gogo.proto" - }, - { - "path": "rustproto.proto" } ], "package": { @@ -8647,22 +8079,6 @@ { "name": "(gogoproto.unmarshaler_all)", "value": "true" - }, - { - "name": "(gogoproto.goproto_unkeyed_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_unrecognized_all)", - "value": "false" - }, - { - "name": "(gogoproto.goproto_sizecache_all)", - "value": "false" - }, - { - "name": "(rustproto.lite_runtime_all)", - "value": "true" } ] } From b12669d71bf9b9ba061f8f81b020659f801192ba Mon Sep 17 00:00:00 2001 From: Shenghui Wu <793703860@qq.com> Date: Mon, 19 May 2025 16:30:58 +0800 Subject: [PATCH 4/8] executor: add FTS ScalarFuncSig and add FTSQueryInfo to IndexScan (#364) (cherry picked from commit bb7af0def01ef183f5305054a14c9d5cfad031ad) --- go-tipb/executor.pb.go | 804 ++++++++++++++++++++++----------------- go-tipb/expression.pb.go | 247 ++++++------ proto/executor.proto | 4 + proto/expression.proto | 3 + scripts/proto.lock | 30 ++ 5 files changed, 614 insertions(+), 474 deletions(-) diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index 36a46cb0..ead9873c 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -1138,8 +1138,10 @@ type FTSQueryInfo struct { QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` QueryTokenizer string `protobuf:"bytes,6,opt,name=query_tokenizer,json=queryTokenizer" json:"query_tokenizer"` // For QueryType == TopK - TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` - XXX_unrecognized []byte `json:"-"` + TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` + // Distinguish match_word, match_expression, match_prefix, match_regexp + QueryFunc ScalarFuncSig `protobuf:"varint,20,opt,name=query_func,json=queryFunc,enum=tipb.ScalarFuncSig" json:"query_func"` + XXX_unrecognized []byte `json:"-"` } func (m *FTSQueryInfo) Reset() { *m = FTSQueryInfo{} } @@ -1196,6 +1198,13 @@ func (m *FTSQueryInfo) GetTopK() uint32 { return 0 } +func (m *FTSQueryInfo) GetQueryFunc() ScalarFuncSig { + if m != nil { + return m.QueryFunc + } + return ScalarFuncSig_Unspecified +} + type TableScan struct { TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId" json:"table_id"` Columns []*ColumnInfo `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"` @@ -1600,6 +1609,7 @@ type IndexScan struct { Desc bool `protobuf:"varint,4,opt,name=desc" json:"desc"` Unique *bool `protobuf:"varint,5,opt,name=unique" json:"unique,omitempty"` PrimaryColumnIds []int64 `protobuf:"varint,6,rep,name=primary_column_ids,json=primaryColumnIds" json:"primary_column_ids,omitempty"` + FtsQueryInfo *FTSQueryInfo `protobuf:"bytes,7,opt,name=fts_query_info,json=ftsQueryInfo" json:"fts_query_info,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1650,6 +1660,13 @@ func (m *IndexScan) GetPrimaryColumnIds() []int64 { return nil } +func (m *IndexScan) GetFtsQueryInfo() *FTSQueryInfo { + if m != nil { + return m.FtsQueryInfo + } + return nil +} + type Selection struct { // Where conditions. Conditions []*Expr `protobuf:"bytes,1,rep,name=conditions" json:"conditions,omitempty"` @@ -3660,6 +3677,11 @@ func (m *FTSQueryInfo) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintExecutor(dAtA, i, uint64(*m.TopK)) } + dAtA[i] = 0xa0 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(m.QueryFunc)) if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -4188,6 +4210,16 @@ func (m *IndexScan) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintExecutor(dAtA, i, uint64(num)) } } + if m.FtsQueryInfo != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintExecutor(dAtA, i, uint64(m.FtsQueryInfo.Size())) + n23, err := m.FtsQueryInfo.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -4237,11 +4269,11 @@ func (m *Selection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n23, err := m.Child.MarshalTo(dAtA[i:]) + n24, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n24 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -4292,11 +4324,11 @@ func (m *Projection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n24, err := m.Child.MarshalTo(dAtA[i:]) + n25, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n25 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -4379,11 +4411,11 @@ func (m *Aggregation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n25, err := m.Child.MarshalTo(dAtA[i:]) + n26, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n26 } if m.PreAggMode != nil { dAtA[i] = 0x38 @@ -4430,11 +4462,11 @@ func (m *TopN) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n26, err := m.Child.MarshalTo(dAtA[i:]) + n27, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n27 } if len(m.PartitionBy) > 0 { for _, msg := range m.PartitionBy { @@ -4476,11 +4508,11 @@ func (m *Limit) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n27, err := m.Child.MarshalTo(dAtA[i:]) + n28, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n28 } if len(m.PartitionBy) > 0 { for _, msg := range m.PartitionBy { @@ -4610,11 +4642,11 @@ func (m *ExecutorExecutionSummary) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintExecutor(dAtA, i, uint64(*m.Concurrency)) } if m.DetailInfo != nil { - nn28, err := m.DetailInfo.MarshalTo(dAtA[i:]) + nn29, err := m.DetailInfo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn28 + i += nn29 } if m.RuConsumption != nil { dAtA[i] = 0x3a @@ -4626,11 +4658,11 @@ func (m *ExecutorExecutionSummary) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.TiflashWaitSummary.Size())) - n29, err := m.TiflashWaitSummary.MarshalTo(dAtA[i:]) + n30, err := m.TiflashWaitSummary.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n30 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -4644,11 +4676,11 @@ func (m *ExecutorExecutionSummary_TiflashScanContext) MarshalTo(dAtA []byte) (in dAtA[i] = 0x32 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.TiflashScanContext.Size())) - n30, err := m.TiflashScanContext.MarshalTo(dAtA[i:]) + n31, err := m.TiflashScanContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n31 } return i, nil } @@ -5268,11 +5300,11 @@ func (m *Sort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n31, err := m.Child.MarshalTo(dAtA[i:]) + n32, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n32 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -5327,11 +5359,11 @@ func (m *WindowFrameBound) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.FrameRange.Size())) - n32, err := m.FrameRange.MarshalTo(dAtA[i:]) + n33, err := m.FrameRange.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n33 } if m.CmpDataType != nil { dAtA[i] = 0x30 @@ -5366,21 +5398,21 @@ func (m *WindowFrame) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Start.Size())) - n33, err := m.Start.MarshalTo(dAtA[i:]) + n34, err := m.Start.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n34 } if m.End != nil { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.End.Size())) - n34, err := m.End.MarshalTo(dAtA[i:]) + n35, err := m.End.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n35 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -5443,21 +5475,21 @@ func (m *Window) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Frame.Size())) - n35, err := m.Frame.MarshalTo(dAtA[i:]) + n36, err := m.Frame.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n36 } if m.Child != nil { dAtA[i] = 0x2a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n36, err := m.Child.MarshalTo(dAtA[i:]) + n37, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n37 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -5562,11 +5594,11 @@ func (m *Expand) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n37, err := m.Child.MarshalTo(dAtA[i:]) + n38, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n38 } if m.Version != nil { dAtA[i] = 0x18 @@ -5658,11 +5690,11 @@ func (m *Expand2) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintExecutor(dAtA, i, uint64(m.Child.Size())) - n38, err := m.Child.MarshalTo(dAtA[i:]) + n39, err := m.Child.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n39 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -5960,6 +5992,7 @@ func (m *FTSQueryInfo) Size() (n int) { if m.TopK != nil { n += 1 + sovExecutor(uint64(*m.TopK)) } + n += 2 + sovExecutor(uint64(m.QueryFunc)) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -6198,6 +6231,10 @@ func (m *IndexScan) Size() (n int) { n += 1 + sovExecutor(uint64(e)) } } + if m.FtsQueryInfo != nil { + l = m.FtsQueryInfo.Size() + n += 1 + l + sovExecutor(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -8804,6 +8841,25 @@ func (m *FTSQueryInfo) Unmarshal(dAtA []byte) error { } } m.TopK = &v + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QueryFunc", wireType) + } + m.QueryFunc = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QueryFunc |= (ScalarFuncSig(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExecutor(dAtA[iNdEx:]) @@ -10587,6 +10643,39 @@ func (m *IndexScan) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field PrimaryColumnIds", wireType) } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FtsQueryInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FtsQueryInfo == nil { + m.FtsQueryInfo = &FTSQueryInfo{} + } + if err := m.FtsQueryInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipExecutor(dAtA[iNdEx:]) @@ -15002,326 +15091,329 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 5128 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7a, 0x4b, 0x73, 0x23, 0xc9, - 0x71, 0x3f, 0x01, 0x82, 0x24, 0x90, 0x00, 0xc1, 0x66, 0x91, 0xc3, 0xe9, 0xe1, 0xec, 0xcc, 0x70, - 0xa0, 0x7d, 0x50, 0xfc, 0x6b, 0x67, 0x76, 0x39, 0xa3, 0x5d, 0xad, 0xf4, 0x5f, 0x69, 0xf9, 0xdc, - 0xc1, 0x0e, 0x09, 0x52, 0x0d, 0x6a, 0xa5, 0x83, 0x23, 0x3a, 0x9a, 0xdd, 0x05, 0xb0, 0x96, 0xfd, - 0xda, 0xee, 0xc6, 0x0c, 0xb8, 0x27, 0x9d, 0x7d, 0x72, 0x58, 0x61, 0x59, 0x7e, 0x4a, 0x96, 0x5f, - 0x92, 0x25, 0xeb, 0xe0, 0x4f, 0xe0, 0xa3, 0x8e, 0xbe, 0x5a, 0x07, 0x87, 0x43, 0x3e, 0xf9, 0x1b, - 0x38, 0x7c, 0x72, 0x54, 0x56, 0x55, 0x77, 0xe1, 0xc1, 0xd9, 0xd9, 0xb0, 0x0e, 0x3e, 0x01, 0x9d, - 0x99, 0xbf, 0xcc, 0x7a, 0x64, 0x66, 0x55, 0x65, 0x15, 0x34, 0xe9, 0x90, 0xba, 0x83, 0x2c, 0x4a, - 0x1e, 0xc4, 0x49, 0x94, 0x45, 0xa4, 0x92, 0xb1, 0xf8, 0x7c, 0xdd, 0xa0, 0xc3, 0x38, 0xa1, 0x69, - 0xca, 0xa2, 0x50, 0xd0, 0xd7, 0x1b, 0xa9, 0x7b, 0x41, 0x03, 0x47, 0x7e, 0xad, 0xf6, 0xa3, 0x7e, - 0x84, 0x7f, 0x1f, 0xf2, 0x7f, 0x82, 0xda, 0xfa, 0x79, 0x0d, 0xaa, 0x07, 0x52, 0x1d, 0x79, 0x15, - 0xca, 0x59, 0x6c, 0x96, 0x36, 0x4a, 0x9b, 0xcd, 0xed, 0xe6, 0x03, 0xae, 0xf5, 0x01, 0xe7, 0x9d, - 0x5d, 0xc5, 0x74, 0xb7, 0xf2, 0xeb, 0x7f, 0xbb, 0x37, 0x63, 0x95, 0xb3, 0x98, 0x6c, 0x41, 0x35, - 0x3b, 0xf7, 0xed, 0xd4, 0x75, 0x42, 0xb3, 0xbc, 0x51, 0xda, 0xac, 0x6f, 0x2f, 0x09, 0xd9, 0x33, - 0xe7, 0xdc, 0xa7, 0x5d, 0xd7, 0x09, 0xad, 0x85, 0xec, 0xdc, 0xe7, 0x7f, 0xb8, 0x2c, 0xf3, 0x86, - 0x42, 0x76, 0x56, 0x97, 0x6d, 0x87, 0x1e, 0x1d, 0x0a, 0x59, 0xe6, 0xe1, 0x1f, 0xf2, 0x26, 0xd4, - 0x52, 0xea, 0x53, 0x37, 0x63, 0x51, 0x68, 0x56, 0x74, 0xe1, 0xae, 0x22, 0x5b, 0x85, 0x04, 0x79, - 0x04, 0x75, 0xa7, 0xdf, 0x4f, 0x68, 0xdf, 0x41, 0xc0, 0x1c, 0x02, 0x96, 0x05, 0x60, 0xa7, 0x60, - 0x58, 0xba, 0x14, 0xb9, 0x0b, 0x95, 0x2c, 0x8a, 0x3b, 0xe6, 0x3c, 0x4a, 0x83, 0x6c, 0x77, 0x14, - 0x77, 0x2c, 0xa4, 0x93, 0xfb, 0x30, 0xe7, 0xb3, 0x80, 0x65, 0xe6, 0x02, 0x0a, 0xd4, 0x85, 0xc0, - 0x11, 0x27, 0x59, 0x82, 0x43, 0xf6, 0x60, 0x99, 0x0e, 0xdd, 0x0b, 0x27, 0xec, 0x53, 0x3b, 0xa1, - 0x2e, 0x65, 0xcf, 0x68, 0x62, 0x56, 0x51, 0x7c, 0x4d, 0x8d, 0x99, 0x60, 0x5b, 0x92, 0x6b, 0x19, - 0x74, 0x8c, 0xc2, 0xdb, 0xf1, 0x49, 0xc4, 0x42, 0xb3, 0xa6, 0xb7, 0xe3, 0xa3, 0x88, 0x85, 0x16, - 0xd2, 0xc9, 0x3d, 0xa8, 0xab, 0x49, 0xb6, 0x99, 0x67, 0xc2, 0x46, 0x69, 0xb3, 0x66, 0x81, 0x22, - 0xb5, 0x3d, 0xae, 0xe0, 0x92, 0xf9, 0xbe, 0x59, 0xd7, 0x15, 0x3c, 0x65, 0xbe, 0x6f, 0x21, 0x9d, - 0xbc, 0x0f, 0x4b, 0x79, 0x2b, 0x53, 0x1a, 0x7a, 0x34, 0x31, 0x1b, 0x28, 0xba, 0x3a, 0xda, 0xc6, - 0x2e, 0xf2, 0xac, 0x26, 0x1d, 0xf9, 0x26, 0x6f, 0x01, 0x9c, 0x26, 0xd1, 0x27, 0x72, 0x32, 0x16, - 0x11, 0x69, 0x08, 0x64, 0x41, 0xb7, 0x34, 0x19, 0xf2, 0x11, 0xac, 0xc6, 0x4e, 0x92, 0x31, 0xfe, - 0x61, 0x67, 0xdc, 0x13, 0xc4, 0xac, 0x37, 0x11, 0x6b, 0x4a, 0xac, 0x92, 0x28, 0x5c, 0x85, 0xc4, - 0x13, 0x34, 0xde, 0xb9, 0x34, 0x4a, 0x32, 0x73, 0x49, 0xef, 0x5c, 0x37, 0x4a, 0x32, 0x0b, 0xe9, - 0xe4, 0x55, 0x98, 0x7f, 0xce, 0x42, 0x2f, 0x7a, 0x6e, 0x1a, 0x28, 0xd1, 0x10, 0x12, 0xdf, 0x45, - 0x9a, 0x25, 0x79, 0xa4, 0x03, 0xf7, 0x7b, 0x2c, 0xa4, 0x76, 0x3f, 0x71, 0x58, 0x48, 0x3d, 0x3b, - 0xbd, 0x18, 0xf4, 0x7a, 0xbc, 0x59, 0x59, 0x42, 0x9d, 0xc0, 0x76, 0xa3, 0x41, 0x98, 0x99, 0xcb, - 0x1b, 0xa5, 0xcd, 0x8a, 0x74, 0xee, 0x3b, 0x5c, 0xfc, 0x43, 0x21, 0xdd, 0x15, 0xc2, 0x5d, 0x94, - 0xdd, 0xe3, 0xa2, 0xe4, 0x23, 0xb8, 0x37, 0x55, 0xdf, 0xb9, 0x93, 0xb9, 0x17, 0x76, 0xca, 0x3e, - 0xa3, 0x26, 0xd1, 0xb4, 0xdd, 0x9e, 0xd4, 0xb6, 0xcb, 0x25, 0xbb, 0xec, 0x33, 0xca, 0x7b, 0x40, - 0x87, 0xb1, 0x13, 0x7a, 0xe6, 0x8a, 0xde, 0x83, 0x03, 0xa4, 0x59, 0x92, 0x47, 0xde, 0x80, 0x05, - 0xf1, 0x6f, 0xdb, 0x5c, 0x45, 0xb1, 0x45, 0x5d, 0x6c, 0xdb, 0x52, 0x5c, 0x3e, 0xdb, 0xe7, 0x49, - 0xe4, 0x78, 0xae, 0x93, 0x66, 0xf6, 0xa7, 0x03, 0x9a, 0x5c, 0x99, 0x37, 0xf4, 0xd9, 0xde, 0x55, - 0xcc, 0x6f, 0x73, 0x9e, 0xd5, 0x3c, 0x1f, 0xf9, 0x26, 0x8f, 0xa1, 0xc1, 0x78, 0x3c, 0xda, 0x7e, - 0x14, 0x5d, 0x0e, 0x62, 0xd3, 0xd4, 0x63, 0x09, 0x23, 0xf5, 0x28, 0x8a, 0x2e, 0xbf, 0x13, 0x5b, - 0x75, 0xa6, 0x3e, 0x06, 0x31, 0xb9, 0x03, 0x10, 0x3b, 0x09, 0x0d, 0x33, 0x9b, 0x79, 0x43, 0xf3, - 0xd6, 0x46, 0x69, 0x73, 0xd1, 0xaa, 0x09, 0x4a, 0xdb, 0x1b, 0x92, 0x53, 0x58, 0xa3, 0xc3, 0xd8, - 0x77, 0x58, 0x68, 0xf7, 0xa2, 0xc4, 0x76, 0xa3, 0x30, 0x94, 0xee, 0xb4, 0x8e, 0xea, 0xd7, 0xf3, - 0xbe, 0x70, 0x99, 0xc3, 0x28, 0xd9, 0xcb, 0x25, 0xac, 0x55, 0x3a, 0x85, 0xda, 0xfa, 0xe5, 0x2c, - 0x34, 0x47, 0xfd, 0x96, 0x6c, 0x6a, 0x19, 0x8b, 0x8c, 0x7a, 0xf6, 0x44, 0xd6, 0x5a, 0xa6, 0xa1, - 0x1b, 0x79, 0xd4, 0xb3, 0x33, 0x27, 0xbd, 0xb4, 0x03, 0x9a, 0x39, 0x66, 0x79, 0x63, 0x76, 0xb3, - 0x61, 0x2d, 0x49, 0xc6, 0x99, 0x93, 0x5e, 0x1e, 0xd3, 0xcc, 0x21, 0x6f, 0x43, 0xb3, 0xf0, 0xe5, - 0x4b, 0x7a, 0x95, 0x9a, 0xb3, 0x1b, 0xb3, 0x85, 0x27, 0x1e, 0x0c, 0xe3, 0xc4, 0x5a, 0xcc, 0x25, - 0x9e, 0xd2, 0xab, 0x94, 0xbc, 0x0a, 0x73, 0xee, 0x05, 0xf3, 0x3d, 0x99, 0xb8, 0xb4, 0xec, 0xc9, - 0x03, 0xd6, 0x12, 0x4c, 0xf2, 0x1a, 0xcc, 0x65, 0x57, 0x31, 0x4d, 0xcd, 0x39, 0xd4, 0x27, 0xd3, - 0xdb, 0x21, 0xa3, 0xbe, 0xc7, 0x9b, 0x6b, 0x09, 0x2e, 0x79, 0x17, 0x96, 0x1c, 0xdf, 0xb7, 0x7b, - 0x9c, 0x6e, 0x0b, 0xc0, 0xfc, 0x74, 0xc0, 0xa2, 0xe3, 0xfb, 0xf9, 0x57, 0x4a, 0xde, 0x87, 0xba, - 0x1b, 0x05, 0x6a, 0x19, 0xc0, 0x24, 0xd6, 0xdc, 0xbe, 0x21, 0x40, 0x7b, 0x05, 0xe3, 0x38, 0xf2, - 0xd4, 0xd0, 0xe8, 0xf2, 0xe4, 0x08, 0xd6, 0x06, 0xb1, 0x0a, 0x8f, 0x8c, 0x6a, 0x03, 0x55, 0x45, - 0xf3, 0x37, 0x65, 0xaf, 0xc4, 0x70, 0xed, 0x5e, 0x65, 0x34, 0xed, 0xfa, 0xcc, 0xa5, 0xd6, 0x8a, - 0x82, 0xed, 0x65, 0x54, 0x8d, 0x62, 0xeb, 0xf7, 0x4b, 0x50, 0xd7, 0x9c, 0x87, 0xbc, 0x05, 0xab, - 0xc2, 0xcb, 0x2e, 0x9c, 0xd0, 0xf3, 0xa9, 0x1d, 0xf5, 0x7a, 0x29, 0xcd, 0x52, 0xb3, 0xb4, 0x31, - 0xbb, 0xb9, 0x68, 0x11, 0xe4, 0x3d, 0x41, 0xd6, 0x89, 0xe0, 0x70, 0x0f, 0xbb, 0xa4, 0x34, 0xb6, - 0xa3, 0x84, 0xe7, 0x2f, 0xbe, 0xd6, 0x54, 0xad, 0x1a, 0xa7, 0x9c, 0x70, 0x02, 0x5f, 0x5c, 0x70, - 0x58, 0x13, 0x1a, 0xca, 0x09, 0x1a, 0x1f, 0xf6, 0x9c, 0xdf, 0xfa, 0x1a, 0x2c, 0x4f, 0x34, 0x9b, - 0x7c, 0x09, 0x16, 0x75, 0x9f, 0x10, 0x4d, 0x69, 0x58, 0x0d, 0xcd, 0x1f, 0xd2, 0xd6, 0x6f, 0x4a, - 0x60, 0x8c, 0x67, 0xf4, 0xe9, 0xde, 0x54, 0x9a, 0xee, 0x4d, 0x6f, 0x41, 0x5d, 0x9f, 0xc9, 0xf2, - 0xf4, 0x99, 0x84, 0x5e, 0x31, 0x8d, 0x2d, 0xf4, 0xea, 0xd9, 0xeb, 0xbc, 0x1a, 0xfd, 0x79, 0x1f, - 0xee, 0x45, 0x09, 0xeb, 0xb3, 0xd0, 0xf1, 0x71, 0xae, 0xe2, 0xc4, 0x8b, 0xdc, 0x01, 0x4d, 0xb4, - 0xf6, 0x54, 0xb0, 0x3d, 0xb7, 0x95, 0xd8, 0x5e, 0x46, 0x4f, 0xa5, 0x50, 0x3e, 0x47, 0x3f, 0x98, - 0x85, 0xc6, 0x4e, 0xa7, 0x83, 0x69, 0xa0, 0x1d, 0xf6, 0x22, 0xf2, 0x2e, 0x00, 0xe6, 0x0f, 0x6c, - 0xec, 0x68, 0x60, 0x29, 0x39, 0x2d, 0xb0, 0x6a, 0x9f, 0x2a, 0x02, 0x69, 0xc3, 0x92, 0xc7, 0xd2, - 0xcc, 0x09, 0x5d, 0xca, 0xad, 0x27, 0xcc, 0xc5, 0x09, 0x6b, 0xaa, 0x38, 0xff, 0x98, 0xba, 0x59, - 0x94, 0xec, 0x4b, 0x91, 0x63, 0x94, 0x90, 0x5a, 0x9a, 0xde, 0x08, 0x95, 0xdc, 0x82, 0xb9, 0x2c, - 0x8a, 0xed, 0x4b, 0x1c, 0x81, 0x45, 0x29, 0xc4, 0xd7, 0xe7, 0xa7, 0xe4, 0x35, 0xee, 0xe0, 0xfe, - 0x20, 0x08, 0xed, 0xd0, 0x09, 0x28, 0x06, 0x5b, 0x4d, 0x0a, 0x80, 0x60, 0x74, 0x9c, 0x80, 0x92, - 0xfb, 0x50, 0x93, 0x62, 0xcc, 0xc3, 0x9d, 0xc1, 0xac, 0x14, 0xaa, 0x0a, 0x32, 0x2e, 0xa0, 0xf5, - 0x84, 0xf6, 0xec, 0x67, 0xd4, 0xb5, 0x7b, 0x8f, 0xb6, 0x71, 0x43, 0xd0, 0xb0, 0x6a, 0x09, 0xed, - 0x7d, 0x4c, 0xdd, 0xc3, 0x47, 0xdb, 0xe4, 0x1e, 0x54, 0x85, 0xb7, 0x32, 0x0f, 0x57, 0x77, 0xa5, - 0x61, 0x01, 0xa9, 0x6d, 0x9e, 0x9c, 0x1b, 0x81, 0x33, 0xb4, 0x55, 0xdb, 0x71, 0x8d, 0x2e, 0xa9, - 0xa8, 0x0a, 0x9c, 0xa1, 0xea, 0x2a, 0xd9, 0x82, 0xe6, 0x45, 0x98, 0x3e, 0xb7, 0x69, 0xcf, 0x4e, - 0xa9, 0x93, 0xb8, 0x17, 0x98, 0xcc, 0x55, 0xbf, 0x1a, 0x9c, 0x77, 0xd0, 0xeb, 0x22, 0xe7, 0xa3, - 0x4a, 0x75, 0xc1, 0xa8, 0xb6, 0x7e, 0x52, 0x86, 0xc6, 0xe1, 0x59, 0xf7, 0xa5, 0x66, 0x45, 0xc9, - 0x4d, 0x9f, 0x15, 0xbd, 0x17, 0xe5, 0x69, 0xbd, 0xd8, 0x82, 0x05, 0x31, 0x24, 0x2a, 0xc7, 0x19, - 0x2a, 0x5b, 0xe0, 0x38, 0x85, 0xbd, 0xc8, 0x52, 0x02, 0xe4, 0x3e, 0x34, 0xb4, 0xc1, 0x4f, 0xd1, - 0xbf, 0x6a, 0x56, 0xbd, 0x18, 0xf7, 0x94, 0x7c, 0x29, 0x6f, 0x28, 0x1d, 0x66, 0x38, 0xf2, 0xb5, - 0xd1, 0x46, 0xd1, 0x61, 0x46, 0xde, 0x84, 0x25, 0x29, 0x14, 0x5d, 0xd2, 0x90, 0x7d, 0x46, 0x13, - 0x1c, 0x7e, 0x25, 0xd9, 0x14, 0x92, 0x8a, 0x47, 0x56, 0x94, 0x3b, 0x00, 0x2e, 0x31, 0xe8, 0x08, - 0xad, 0xef, 0xcf, 0x41, 0xad, 0xd8, 0x30, 0xdc, 0x83, 0xaa, 0xd8, 0x72, 0x30, 0x0f, 0x47, 0x27, - 0xef, 0x26, 0x52, 0x47, 0xbb, 0x59, 0xfe, 0xbc, 0x6e, 0x9a, 0x50, 0xf1, 0x68, 0xea, 0xa2, 0xf7, - 0x55, 0x95, 0xf7, 0x71, 0x0a, 0xf9, 0x0a, 0x90, 0x38, 0x61, 0x81, 0x93, 0x5c, 0xd9, 0xb9, 0x7b, - 0x89, 0x61, 0x98, 0xb5, 0x0c, 0xc9, 0x91, 0x1a, 0xbd, 0x94, 0x7c, 0x00, 0x46, 0x48, 0x87, 0x99, - 0x9d, 0x50, 0xc7, 0xb3, 0x69, 0xd8, 0x67, 0x21, 0xc5, 0x11, 0x69, 0x2a, 0xe3, 0x07, 0x48, 0xd3, - 0x26, 0xae, 0xc9, 0xe5, 0x2d, 0xea, 0x78, 0x82, 0x43, 0xbe, 0x02, 0xf3, 0x09, 0x0f, 0x7a, 0x95, - 0xfe, 0x65, 0x7a, 0x7b, 0x4a, 0xaf, 0x2c, 0x4e, 0x96, 0x28, 0x29, 0x43, 0xde, 0x83, 0x5b, 0xaa, - 0x75, 0x71, 0x42, 0x7b, 0x6c, 0xa8, 0x37, 0x72, 0x01, 0x1b, 0xb9, 0x26, 0x05, 0x4e, 0x91, 0x5f, - 0x34, 0x75, 0x34, 0xd1, 0x56, 0xc7, 0x13, 0xed, 0x06, 0x34, 0x58, 0x6a, 0xf7, 0xf8, 0xe6, 0x02, - 0xf7, 0x74, 0x35, 0x14, 0x00, 0x96, 0x1e, 0x3a, 0x69, 0x86, 0x13, 0x70, 0x0c, 0x77, 0xe2, 0x41, - 0x7a, 0x41, 0x3d, 0xdb, 0x8b, 0x9e, 0x87, 0x76, 0x8f, 0xf9, 0x19, 0xc5, 0x35, 0xdf, 0xc3, 0x25, - 0x32, 0x35, 0x61, 0x62, 0x01, 0x5d, 0x17, 0x80, 0xfd, 0xe8, 0x79, 0x78, 0x88, 0xe2, 0x7b, 0xb9, - 0x34, 0xd9, 0x83, 0x95, 0x64, 0x10, 0x66, 0x2c, 0xa0, 0x4a, 0x95, 0xcf, 0xd2, 0xcc, 0xac, 0xa3, - 0x92, 0x15, 0xa1, 0xc4, 0x12, 0x02, 0x02, 0x6b, 0x2d, 0x27, 0xfa, 0xe7, 0x11, 0x4b, 0xb9, 0x9b, - 0x19, 0x3c, 0x40, 0x9f, 0x3b, 0x2c, 0xb3, 0x51, 0x55, 0x90, 0xe2, 0x1e, 0x78, 0x4e, 0x8e, 0xdb, - 0x62, 0xe0, 0x0c, 0xbf, 0xeb, 0xb0, 0xec, 0x8c, 0x05, 0xf4, 0x38, 0x25, 0x0f, 0xa1, 0xe6, 0x84, - 0xa1, 0xdc, 0x3d, 0x89, 0x1d, 0xef, 0x58, 0xe2, 0x43, 0x37, 0xa9, 0x3a, 0x61, 0x88, 0x5f, 0xad, - 0x1f, 0x57, 0x80, 0x4c, 0x6e, 0x68, 0xff, 0x6f, 0xfa, 0xe2, 0x0b, 0x7d, 0x63, 0xee, 0x85, 0xbe, - 0xf1, 0x25, 0x28, 0xb6, 0x3a, 0x28, 0x3e, 0x8f, 0xe2, 0x8d, 0x9c, 0xc8, 0x85, 0xc6, 0x3d, 0x64, - 0xe1, 0x8b, 0x7b, 0x48, 0xf5, 0x77, 0xe1, 0x21, 0xb5, 0xff, 0xb5, 0x87, 0xc0, 0x4b, 0x7a, 0x48, - 0xfd, 0x25, 0x3c, 0xe4, 0xbf, 0xe7, 0xa0, 0xc2, 0x0f, 0x75, 0xe4, 0x6d, 0xa8, 0xf1, 0x63, 0x9d, - 0x9e, 0xbe, 0x9b, 0xc5, 0x99, 0x4f, 0xcb, 0x00, 0xd5, 0x4f, 0xe4, 0x37, 0xf9, 0x26, 0x34, 0x11, - 0xc2, 0xcf, 0x7c, 0x02, 0x57, 0xd6, 0xd3, 0x3e, 0xc7, 0x8d, 0x9d, 0xcd, 0x1b, 0x9f, 0x68, 0xb4, - 0x2f, 0xb2, 0x39, 0xe2, 0xcb, 0x25, 0x0b, 0x43, 0x9a, 0xe0, 0x46, 0xbe, 0xa2, 0x2f, 0x97, 0x48, - 0xe6, 0xbb, 0xf9, 0xb7, 0xa0, 0xe9, 0xd3, 0x5e, 0x66, 0x63, 0x9b, 0x70, 0x4b, 0x3c, 0x37, 0x31, - 0x5f, 0x0d, 0x2e, 0xc1, 0x1b, 0x86, 0x3b, 0xe2, 0x6d, 0x58, 0x4a, 0x58, 0xff, 0x42, 0x87, 0xcc, - 0x4f, 0xee, 0xa2, 0x51, 0x24, 0xc7, 0xbc, 0x05, 0xf5, 0x38, 0x89, 0xce, 0xa9, 0xdc, 0x2a, 0x2d, - 0x5c, 0xb3, 0x55, 0x42, 0x19, 0xb1, 0x55, 0x7a, 0x0b, 0xea, 0xe7, 0x03, 0x96, 0x6f, 0xae, 0xaa, - 0xd7, 0x20, 0x50, 0x46, 0x20, 0x1e, 0xc1, 0x12, 0xf6, 0x44, 0x73, 0xbd, 0xda, 0x44, 0xbb, 0xb0, - 0xb3, 0x9a, 0xbb, 0x7d, 0x15, 0x0c, 0xd1, 0x99, 0x17, 0xa6, 0x34, 0xd1, 0xe1, 0x51, 0x58, 0x94, - 0x5d, 0x8c, 0xfa, 0x79, 0x7d, 0x12, 0x86, 0x32, 0x1a, 0xec, 0x09, 0xdc, 0x16, 0x30, 0xfa, 0xa9, - 0x86, 0xb4, 0x7b, 0x49, 0x14, 0xd8, 0x2c, 0x34, 0x1b, 0x13, 0x1a, 0x6e, 0xa2, 0xf8, 0xc1, 0xa7, - 0x85, 0x8e, 0xc3, 0x24, 0x0a, 0xda, 0x21, 0x79, 0x0c, 0x37, 0x59, 0x6a, 0x87, 0x03, 0xdf, 0xb7, - 0x9d, 0xe7, 0x4e, 0x42, 0xed, 0x94, 0x06, 0x0c, 0x67, 0x04, 0x53, 0x5c, 0xd5, 0x5a, 0x61, 0x69, - 0x67, 0xe0, 0xfb, 0x3b, 0x9c, 0xd9, 0xa5, 0x01, 0x43, 0x77, 0xbd, 0x26, 0xb8, 0x9a, 0x5f, 0x24, - 0xb8, 0x5a, 0xff, 0x59, 0x86, 0xc5, 0x11, 0x21, 0xb2, 0x0a, 0x65, 0x99, 0x13, 0x55, 0x80, 0x95, - 0x99, 0x47, 0x1e, 0x83, 0x91, 0x46, 0x83, 0xc4, 0xa5, 0x36, 0x1d, 0xc6, 0xd2, 0x52, 0x79, 0x72, - 0x42, 0x84, 0x0c, 0xff, 0x8f, 0xa1, 0xfb, 0x18, 0x8c, 0xcc, 0x49, 0xfa, 0x34, 0xd3, 0x50, 0x93, - 0x87, 0xb4, 0xa6, 0x90, 0xc9, 0x51, 0xdb, 0x40, 0x72, 0x5b, 0x45, 0x75, 0x45, 0xdf, 0x45, 0x1a, - 0xca, 0x4e, 0x5e, 0x69, 0xd9, 0x06, 0x92, 0x5b, 0x2a, 0x30, 0xfa, 0xd6, 0xc6, 0x50, 0x56, 0x72, - 0xcc, 0x3b, 0xb0, 0x90, 0xf4, 0x44, 0xd4, 0xce, 0x63, 0xd4, 0xde, 0x9c, 0x32, 0x68, 0x5a, 0xe8, - 0xce, 0x27, 0x3d, 0x0c, 0x5a, 0x81, 0x0b, 0x22, 0x8f, 0xca, 0xb3, 0xdb, 0x34, 0x9c, 0x76, 0x7a, - 0x9b, 0x4f, 0x7a, 0xfc, 0xab, 0xf5, 0xaf, 0x25, 0xa8, 0xe5, 0x15, 0xb5, 0xcf, 0x5f, 0x81, 0x7e, - 0xa7, 0xbb, 0x42, 0xb5, 0x44, 0x55, 0x26, 0x96, 0xa8, 0x35, 0x98, 0x1f, 0x84, 0xec, 0xd3, 0x81, - 0xd8, 0xf6, 0x54, 0x2d, 0xf9, 0x75, 0xcd, 0xd2, 0x35, 0x3f, 0x7d, 0xe9, 0x6a, 0xfd, 0xa0, 0x04, - 0xb5, 0xbc, 0x00, 0x48, 0xb6, 0x00, 0xb4, 0x58, 0x2a, 0x4d, 0xcc, 0xb8, 0xc6, 0x25, 0x8f, 0xa1, - 0x99, 0xc4, 0xa1, 0x1e, 0x7b, 0xc2, 0xaf, 0x64, 0x15, 0xc5, 0x8a, 0x43, 0x99, 0x83, 0xe2, 0x50, - 0x0b, 0xbe, 0xfc, 0x24, 0x3f, 0xfb, 0x82, 0x93, 0x7c, 0xeb, 0xfb, 0x25, 0xbd, 0x42, 0x46, 0x36, - 0x60, 0x8e, 0xfb, 0xe1, 0xb4, 0x16, 0x09, 0x06, 0xd9, 0x82, 0x1a, 0x6f, 0x8c, 0x90, 0x9a, 0xda, - 0x8e, 0x6a, 0x22, 0xfe, 0xbc, 0x6c, 0x13, 0xfe, 0xb9, 0x0c, 0x75, 0xad, 0xd0, 0x49, 0x5e, 0x83, - 0x6a, 0x3f, 0x89, 0x06, 0xb1, 0x7d, 0x7e, 0x35, 0xa5, 0x19, 0x0b, 0xc8, 0xdb, 0xbd, 0xe2, 0x62, - 0x4e, 0xbf, 0x6f, 0xf7, 0x06, 0xa1, 0x3b, 0x25, 0xce, 0x16, 0x9c, 0x7e, 0xff, 0x70, 0x10, 0xba, - 0x64, 0x03, 0xaa, 0xe2, 0x48, 0x4f, 0xbd, 0x91, 0xdd, 0x47, 0x4e, 0x25, 0x0f, 0xa1, 0xc1, 0x7b, - 0x94, 0xdb, 0xac, 0x4c, 0xeb, 0x14, 0x24, 0x71, 0xf8, 0xa1, 0xb4, 0x2c, 0x01, 0xb9, 0xf5, 0xb9, - 0xeb, 0x00, 0x3b, 0xb2, 0x0d, 0xf9, 0x38, 0xcc, 0xbf, 0xa8, 0xa8, 0xf2, 0x1e, 0x34, 0xe2, 0x84, - 0xa2, 0xda, 0xc9, 0xc8, 0x39, 0x63, 0x87, 0xbe, 0x93, 0x5e, 0x9c, 0x26, 0x74, 0xa7, 0xdf, 0xe7, - 0xb1, 0xc2, 0x57, 0x0f, 0xf5, 0xbf, 0xf5, 0xd3, 0x12, 0x54, 0xce, 0xa2, 0xb8, 0x43, 0xde, 0x80, - 0x2a, 0xee, 0x7d, 0x8b, 0xb1, 0x93, 0x15, 0xb9, 0xdd, 0xab, 0x76, 0x46, 0x03, 0x6b, 0x01, 0xb9, - 0xbb, 0x57, 0x64, 0x5d, 0x15, 0x88, 0xcb, 0x5a, 0xa9, 0x4f, 0x56, 0x86, 0x5f, 0x6a, 0xda, 0xf8, - 0x28, 0x14, 0xfb, 0xa9, 0x7c, 0xd8, 0x46, 0xcd, 0xd5, 0x73, 0x89, 0xdd, 0xab, 0xd6, 0x3f, 0x95, - 0x60, 0x0e, 0x2b, 0xd0, 0x85, 0xf1, 0xd2, 0x0b, 0x8c, 0x97, 0xbf, 0x88, 0xf1, 0xd9, 0xcf, 0x31, - 0x4e, 0xde, 0x81, 0xe5, 0x2c, 0x19, 0x84, 0xae, 0x93, 0x51, 0xbe, 0x86, 0xa3, 0xff, 0xca, 0x26, - 0x8f, 0x2c, 0x61, 0x4a, 0xe8, 0x29, 0xbd, 0xe2, 0x84, 0xd6, 0x07, 0x50, 0x79, 0xca, 0x7c, 0x9f, - 0xbc, 0x02, 0xf3, 0x6e, 0x14, 0x86, 0xed, 0xfd, 0x91, 0x36, 0x4b, 0x1a, 0xef, 0x90, 0xd8, 0x4d, - 0x95, 0x35, 0x0f, 0x13, 0xa4, 0xd6, 0x0e, 0xac, 0x4e, 0xab, 0x0d, 0x92, 0x2f, 0xc3, 0x62, 0x51, - 0x4b, 0x54, 0x29, 0x4e, 0x29, 0x6e, 0x14, 0xac, 0xb6, 0xd7, 0xfa, 0xc5, 0x2c, 0x98, 0x6a, 0x04, - 0xc4, 0x2f, 0x8b, 0xc2, 0xee, 0x20, 0xe0, 0x09, 0x86, 0x6c, 0xc1, 0x32, 0xae, 0x70, 0x71, 0x12, - 0xb9, 0x34, 0x4d, 0xa9, 0x67, 0x63, 0x42, 0x29, 0x6d, 0x56, 0xac, 0x25, 0xce, 0x38, 0x55, 0xf4, - 0x0e, 0x0f, 0xde, 0xe5, 0x70, 0x10, 0x70, 0x51, 0x6f, 0xe0, 0x52, 0xcf, 0x4e, 0xa2, 0xe7, 0xa9, - 0xf0, 0x00, 0x6b, 0x29, 0x1c, 0x04, 0xa7, 0x92, 0x6e, 0x45, 0xcf, 0x53, 0xf2, 0x1a, 0x34, 0xb9, - 0x2c, 0xcb, 0x68, 0xe2, 0x88, 0xac, 0x33, 0x8b, 0x82, 0x8b, 0xe1, 0x20, 0x68, 0xe7, 0xc4, 0xf1, - 0x0a, 0x7f, 0x65, 0xa2, 0xc2, 0xbf, 0x01, 0x75, 0x37, 0x0a, 0xdd, 0x41, 0x92, 0xd0, 0xd0, 0xbd, - 0xc2, 0x14, 0x5a, 0xb1, 0x74, 0x12, 0x39, 0x82, 0xd5, 0x8c, 0xf5, 0xb8, 0x7b, 0xe3, 0xa6, 0x9b, - 0x27, 0x3a, 0x3c, 0x76, 0xcf, 0xeb, 0x25, 0x77, 0x19, 0x00, 0x7c, 0x61, 0xd8, 0x13, 0xfc, 0x27, - 0x33, 0x16, 0x91, 0x38, 0x8d, 0xca, 0xdb, 0x9d, 0x0c, 0xb8, 0x8e, 0x74, 0x10, 0xc4, 0x99, 0x2a, - 0x1f, 0x36, 0xac, 0xc5, 0x64, 0xb0, 0x57, 0x10, 0xc9, 0x47, 0x85, 0x51, 0xdc, 0x37, 0xa7, 0x62, - 0x38, 0xe5, 0x0d, 0xc8, 0xa8, 0x51, 0xbe, 0x77, 0x96, 0xc3, 0x9d, 0x9b, 0xd4, 0x68, 0xbb, 0x0d, - 0x80, 0x7d, 0x9a, 0x39, 0xcc, 0xe7, 0x2b, 0x4a, 0xab, 0x0f, 0xab, 0x12, 0x97, 0xcf, 0x15, 0x16, - 0x3f, 0x4e, 0x60, 0x85, 0x2a, 0x82, 0x34, 0xc7, 0xa8, 0xca, 0xb4, 0x77, 0x47, 0xfd, 0x7c, 0x7c, - 0x96, 0x2d, 0x42, 0x47, 0x29, 0x8c, 0xa6, 0xad, 0xdf, 0x83, 0x75, 0x69, 0xc8, 0xa2, 0x7d, 0x16, - 0x85, 0x9d, 0x41, 0x70, 0xd2, 0x6b, 0x87, 0xb2, 0x5c, 0x73, 0x0f, 0xea, 0x4c, 0xfe, 0x57, 0xde, - 0x55, 0xb3, 0x40, 0x91, 0xda, 0x1e, 0x3f, 0x2c, 0x27, 0x88, 0xb3, 0xc3, 0x41, 0x20, 0xbd, 0xa0, - 0x96, 0x28, 0x4d, 0xad, 0xff, 0xba, 0x03, 0x64, 0x72, 0xd0, 0xc9, 0x63, 0x58, 0xf5, 0x82, 0x1e, - 0x93, 0xd7, 0x22, 0x21, 0xf5, 0xec, 0xd8, 0x71, 0x2f, 0xa5, 0xc7, 0xed, 0x96, 0xcd, 0x92, 0x45, - 0x04, 0xbf, 0x2b, 0xd8, 0xa7, 0x9c, 0xab, 0xa3, 0x2e, 0x59, 0x1c, 0xe7, 0xa8, 0xf2, 0x04, 0x4a, - 0xb0, 0x05, 0xea, 0x5d, 0x30, 0x25, 0xca, 0x73, 0x32, 0x27, 0x37, 0x88, 0x5e, 0x2b, 0x9c, 0xf1, - 0x86, 0xe0, 0xef, 0x3b, 0x99, 0x23, 0xed, 0xa1, 0xef, 0x8e, 0x03, 0xa5, 0x4d, 0x04, 0x56, 0x26, - 0x80, 0x82, 0x8b, 0xc0, 0xaf, 0xc1, 0xcd, 0x2c, 0xca, 0x1c, 0xdf, 0x96, 0xf0, 0x24, 0xb5, 0xfd, - 0xc8, 0xf1, 0xf8, 0x81, 0x6a, 0x2e, 0x6f, 0xea, 0x0a, 0x8a, 0xec, 0xa3, 0x84, 0x95, 0x1e, 0x45, - 0x8e, 0x87, 0x87, 0xaa, 0xd5, 0x51, 0x24, 0x15, 0xb0, 0x79, 0x34, 0xb7, 0xac, 0x43, 0x28, 0x02, - 0xbe, 0xaa, 0x4c, 0x89, 0x7d, 0x7f, 0x1a, 0x3a, 0x71, 0x7a, 0x11, 0x65, 0x1c, 0xb3, 0x80, 0x18, - 0xa1, 0x6f, 0x97, 0x73, 0xbb, 0x92, 0x79, 0x8c, 0xc7, 0x58, 0x3f, 0x72, 0x1d, 0xdf, 0x16, 0x33, - 0x95, 0xa2, 0xc3, 0x56, 0xac, 0x06, 0x12, 0x85, 0x1f, 0x60, 0xec, 0x26, 0x34, 0x88, 0x32, 0x9a, - 0x4b, 0xd5, 0x44, 0xec, 0x0a, 0xaa, 0x12, 0x7b, 0x1d, 0x96, 0x06, 0x29, 0x4d, 0x44, 0x5b, 0xcf, - 0xaf, 0x32, 0x2a, 0x8e, 0x8d, 0x15, 0x6b, 0x91, 0x93, 0x79, 0x3b, 0xb1, 0xc8, 0x4c, 0xde, 0x86, - 0x1b, 0xa2, 0xa9, 0x3e, 0x75, 0x92, 0x50, 0x01, 0x82, 0x14, 0x0f, 0x8f, 0x15, 0x8b, 0x20, 0xf3, - 0x48, 0xf0, 0x64, 0xef, 0xfe, 0x3f, 0xdc, 0xf6, 0x58, 0xca, 0xd7, 0x32, 0x94, 0x75, 0x1d, 0xf7, - 0x82, 0xda, 0x17, 0x2c, 0x93, 0x66, 0x1a, 0x08, 0xbc, 0x29, 0x44, 0x38, 0x64, 0x8f, 0x0b, 0x3c, - 0x61, 0x99, 0x30, 0xf8, 0x4d, 0x78, 0x65, 0x12, 0x1d, 0xb0, 0x34, 0x95, 0xf0, 0x45, 0x84, 0x9b, - 0x63, 0xf0, 0x63, 0x96, 0xa6, 0x02, 0xff, 0x0e, 0x98, 0xe3, 0xd3, 0xe8, 0x5e, 0x50, 0xf7, 0x92, - 0xb7, 0xb9, 0xa9, 0x0d, 0xae, 0x9a, 0xc3, 0x3d, 0xce, 0x3c, 0x4e, 0xf9, 0x8e, 0x2e, 0xcd, 0x1c, - 0x35, 0x7b, 0x6a, 0xec, 0x96, 0x10, 0x61, 0x20, 0x87, 0x1b, 0x53, 0xc3, 0xb7, 0x0e, 0xd5, 0x94, - 0xf6, 0x03, 0x1a, 0x66, 0x29, 0x5e, 0xe0, 0x55, 0xac, 0xfc, 0x5b, 0x04, 0x97, 0xa3, 0xea, 0xf1, - 0xcb, 0x2a, 0xb8, 0x1c, 0x51, 0x8c, 0xe7, 0x6c, 0x8f, 0xfa, 0x99, 0x23, 0x5c, 0x92, 0x08, 0x36, - 0x52, 0xd0, 0x0d, 0xef, 0x41, 0x5d, 0xb0, 0x45, 0x77, 0x57, 0x90, 0x2f, 0x10, 0xa2, 0x83, 0xaf, - 0xc3, 0x52, 0xf0, 0xcc, 0x75, 0x6d, 0x16, 0xc6, 0x83, 0x4c, 0x28, 0x59, 0x15, 0x33, 0xc7, 0xc9, - 0x6d, 0x4e, 0x45, 0x45, 0x9b, 0x60, 0x68, 0x72, 0x42, 0xdb, 0x0d, 0x14, 0x6c, 0xe6, 0x82, 0x42, - 0xa3, 0x92, 0x8c, 0x06, 0x59, 0xae, 0x72, 0xad, 0x90, 0x3c, 0x41, 0x32, 0xea, 0xdc, 0x80, 0x86, - 0x1f, 0x60, 0x4c, 0x09, 0xa9, 0x9b, 0xa2, 0x75, 0x7e, 0xc0, 0x03, 0x09, 0x25, 0xbe, 0x01, 0xeb, - 0xba, 0x6b, 0xa3, 0x71, 0x79, 0x1d, 0x13, 0xa4, 0x78, 0x2b, 0x57, 0xb1, 0x6e, 0x16, 0xde, 0xdd, - 0x2e, 0xf8, 0xc7, 0x9a, 0xb3, 0x09, 0xf0, 0x39, 0xcb, 0x02, 0x27, 0xe6, 0xb8, 0x5b, 0x9a, 0xb3, - 0x21, 0x6e, 0x17, 0x59, 0xc7, 0x29, 0x79, 0x13, 0x56, 0x02, 0x16, 0xda, 0x22, 0x2e, 0x0a, 0x43, - 0xeb, 0x62, 0xde, 0x02, 0x16, 0x1e, 0x71, 0x4e, 0x57, 0x59, 0xe0, 0xe2, 0xce, 0x70, 0x42, 0xfc, - 0xb6, 0x14, 0x77, 0x86, 0xa3, 0xe2, 0x0f, 0x61, 0x95, 0x6b, 0x97, 0x01, 0x55, 0xc8, 0xbf, 0x22, - 0x22, 0x3b, 0x60, 0xa1, 0x85, 0xac, 0x11, 0x80, 0x33, 0x9c, 0x04, 0xdc, 0x91, 0x00, 0x67, 0x38, - 0x06, 0x38, 0x85, 0x15, 0xe9, 0x6b, 0x76, 0xd4, 0xb3, 0x55, 0x8a, 0x36, 0xef, 0xe2, 0xca, 0xb0, - 0x31, 0xb2, 0x14, 0x4d, 0xc9, 0xf4, 0xd6, 0xb2, 0x04, 0x6b, 0xc9, 0xbf, 0x48, 0x80, 0x38, 0xa9, - 0x23, 0x99, 0xf3, 0x9e, 0x9e, 0x00, 0x8f, 0x9f, 0xb9, 0xee, 0xf4, 0xcc, 0x29, 0x80, 0x7a, 0xe6, - 0xdc, 0x98, 0x00, 0x6a, 0x99, 0xf3, 0x03, 0xb8, 0x23, 0x81, 0x7e, 0xa0, 0x4e, 0xdb, 0x23, 0x66, - 0xef, 0x23, 0xfa, 0x96, 0x10, 0x3a, 0x0a, 0xc4, 0x19, 0x50, 0x37, 0x3d, 0x55, 0x83, 0x6e, 0xbf, - 0x35, 0x55, 0x83, 0xd6, 0x86, 0x6f, 0xc1, 0x1d, 0xe1, 0x3a, 0xcf, 0xf0, 0x92, 0xc6, 0x66, 0xde, - 0x50, 0xa4, 0x6f, 0xac, 0x38, 0xa4, 0x8f, 0x4c, 0x4f, 0xe4, 0x0d, 0x14, 0x12, 0x17, 0x39, 0x6d, - 0x6f, 0xc8, 0x13, 0xf8, 0x61, 0x12, 0x05, 0xdd, 0x47, 0x64, 0x0f, 0xee, 0xbd, 0x40, 0x81, 0xc7, - 0xd2, 0x4b, 0x93, 0xa2, 0x8a, 0xf5, 0xe9, 0x2a, 0xf6, 0x59, 0x7a, 0x49, 0x0e, 0x60, 0xe3, 0x05, - 0x4a, 0x30, 0x97, 0x99, 0x3d, 0xd4, 0x72, 0x7b, 0xba, 0x16, 0x4c, 0x66, 0xd7, 0x77, 0x46, 0x55, - 0xf8, 0xfa, 0xd7, 0x75, 0x46, 0x96, 0xf9, 0xa6, 0x75, 0x46, 0x5c, 0xdc, 0xe4, 0x2a, 0x2e, 0xa6, - 0x75, 0x46, 0x5c, 0xe1, 0x48, 0x25, 0x27, 0xf0, 0xda, 0x75, 0x4a, 0x9e, 0xb1, 0x94, 0x65, 0x7c, - 0xbb, 0x19, 0x79, 0x34, 0x35, 0x19, 0xaa, 0xda, 0x98, 0xa6, 0xea, 0x63, 0x21, 0xd8, 0xe1, 0x72, - 0xa4, 0x0b, 0x6f, 0x5c, 0xa7, 0xd0, 0x63, 0xa9, 0xeb, 0x24, 0x5e, 0xae, 0xf2, 0x13, 0x54, 0xd9, - 0x9a, 0xa6, 0x72, 0x5f, 0x89, 0x0a, 0xa5, 0x87, 0x70, 0x7f, 0x42, 0x29, 0xa6, 0xdf, 0x67, 0xd4, - 0xcd, 0x3b, 0x7b, 0x39, 0x6d, 0xcc, 0x79, 0x3e, 0xff, 0x98, 0xba, 0xb2, 0xb7, 0x47, 0xf0, 0xea, - 0x74, 0x3d, 0x58, 0x97, 0x4a, 0x73, 0x55, 0x3e, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x04, 0xe5, 0xa4, - 0xb6, 0xf7, 0xe1, 0x76, 0x2f, 0x4b, 0xed, 0x50, 0x15, 0xbc, 0x02, 0x1a, 0x44, 0xc9, 0x95, 0x1d, - 0x46, 0x58, 0x9e, 0x30, 0x7f, 0x58, 0xc2, 0x7b, 0xa0, 0x9b, 0xbd, 0x2c, 0xed, 0x88, 0x32, 0x97, - 0x10, 0xe8, 0x08, 0x3e, 0x4f, 0x84, 0x1a, 0x3c, 0x63, 0xe1, 0x95, 0x2d, 0x80, 0x7f, 0x2c, 0x80, - 0xcb, 0x0a, 0x78, 0xc6, 0xc2, 0x2b, 0xac, 0x9a, 0xf0, 0x3d, 0xc5, 0x38, 0x44, 0x59, 0xfb, 0x91, - 0x00, 0xad, 0xe8, 0x20, 0x65, 0xe9, 0x21, 0xac, 0x6a, 0x30, 0x2f, 0xe8, 0x49, 0x43, 0x7f, 0x22, - 0x30, 0x86, 0xc2, 0xec, 0x07, 0x3d, 0x61, 0xe7, 0x11, 0xac, 0x8d, 0x01, 0x94, 0x99, 0x3f, 0x15, - 0x10, 0xa2, 0x41, 0x94, 0x95, 0x3d, 0xb8, 0xcb, 0x41, 0x3c, 0x94, 0xaf, 0x19, 0x91, 0x3f, 0x13, - 0xc7, 0x96, 0xf5, 0x5e, 0x96, 0xf2, 0x78, 0x9e, 0x36, 0x28, 0xef, 0x82, 0x39, 0xaa, 0x44, 0x1b, - 0x97, 0x3f, 0x17, 0xf0, 0x55, 0x0d, 0x5e, 0x0c, 0xcd, 0x37, 0x60, 0x7d, 0x0a, 0x50, 0x59, 0xfe, - 0x0b, 0x01, 0x5d, 0x1b, 0x83, 0x2a, 0xab, 0x72, 0x5c, 0x0b, 0x70, 0x31, 0x46, 0x7f, 0x29, 0x90, - 0x2b, 0x1a, 0x32, 0x1f, 0xa6, 0xf7, 0xe0, 0xd6, 0x24, 0x4c, 0x99, 0xfc, 0xb1, 0x00, 0xde, 0x18, - 0x05, 0x8e, 0x4d, 0x7e, 0x11, 0xf4, 0xe8, 0x96, 0x41, 0x6a, 0xfe, 0x44, 0xc0, 0xf8, 0xe4, 0xab, - 0x70, 0xe7, 0x2c, 0xb1, 0xa1, 0x1c, 0x81, 0x68, 0xe9, 0xe6, 0xaf, 0x8a, 0xc9, 0x9f, 0xc8, 0x33, - 0x1f, 0xc0, 0x9d, 0x29, 0x30, 0x51, 0xcf, 0xe2, 0x89, 0xd6, 0xfc, 0xa9, 0x00, 0x9b, 0x63, 0x60, - 0x94, 0x38, 0x64, 0x3e, 0xe5, 0x7b, 0xbd, 0x49, 0x0d, 0xa9, 0x7c, 0x3b, 0xf5, 0xc8, 0xfc, 0x6b, - 0x81, 0x5f, 0x1b, 0xc5, 0x77, 0x91, 0xdf, 0x7d, 0x34, 0xdd, 0xbe, 0x44, 0x63, 0xc6, 0xfd, 0x9b, - 0xa9, 0xf6, 0x05, 0x1e, 0x13, 0xee, 0x26, 0x18, 0x4a, 0x83, 0xcc, 0x24, 0xa1, 0xf9, 0xb7, 0x02, - 0xb4, 0x28, 0x40, 0x22, 0x69, 0x74, 0xf4, 0x21, 0x52, 0x99, 0x50, 0x8d, 0xeb, 0xdf, 0x15, 0xf3, - 0x58, 0xe4, 0x40, 0x39, 0xb2, 0xd2, 0xdd, 0x39, 0xcc, 0x0b, 0x14, 0x12, 0x97, 0xa4, 0xbf, 0x17, - 0x28, 0x22, 0x50, 0xfb, 0x81, 0xc0, 0xe1, 0x62, 0xf4, 0x3e, 0xbc, 0xa2, 0x81, 0x84, 0x1d, 0xcc, - 0x25, 0x9c, 0x1a, 0xa4, 0xe6, 0xcf, 0x0a, 0x97, 0x43, 0x28, 0x1a, 0xe3, 0x39, 0xe4, 0x30, 0x4b, - 0x45, 0xf6, 0x9e, 0x0e, 0x97, 0xa9, 0x28, 0x48, 0xcd, 0x9f, 0x0b, 0x0d, 0xb7, 0x26, 0x34, 0x88, - 0x2c, 0x74, 0x9c, 0xaa, 0x68, 0xe1, 0x4a, 0xd0, 0xdd, 0xf5, 0xa6, 0xff, 0x43, 0x11, 0x2d, 0x6d, - 0x6f, 0xc8, 0xbd, 0x5d, 0x6b, 0xfc, 0x8e, 0x88, 0xd5, 0x1c, 0x38, 0xd9, 0xfc, 0x5f, 0x08, 0xb8, - 0x59, 0xc0, 0xc7, 0x3a, 0xf0, 0x21, 0xdc, 0xbf, 0x4e, 0x45, 0xd1, 0x85, 0x5f, 0x0a, 0x2d, 0xb7, - 0xa7, 0x68, 0xc9, 0x3b, 0x21, 0x27, 0xed, 0x3c, 0x19, 0x64, 0x54, 0xd7, 0x12, 0xa4, 0xe6, 0x3f, - 0x16, 0x93, 0xb6, 0xcb, 0xd9, 0x39, 0xf8, 0x38, 0x55, 0xc1, 0xa7, 0xc3, 0x64, 0xf7, 0x83, 0xd4, - 0xfc, 0x55, 0x11, 0x7c, 0x05, 0x50, 0xf4, 0xff, 0x38, 0x6d, 0xfd, 0xac, 0x94, 0x1f, 0x7d, 0xb5, - 0x63, 0x3e, 0x79, 0x15, 0x9a, 0x01, 0x0b, 0xcf, 0xba, 0x27, 0xa2, 0x62, 0x90, 0x97, 0x59, 0x1a, - 0x82, 0xca, 0x45, 0x3b, 0xe8, 0x2c, 0x31, 0x8b, 0xa9, 0xcf, 0x42, 0x6a, 0x7f, 0x3a, 0xa0, 0x03, - 0x9a, 0x4b, 0x8b, 0x23, 0xf6, 0x8a, 0xe2, 0x7e, 0x9b, 0x33, 0x25, 0xe8, 0x5d, 0x30, 0x73, 0xd0, - 0x79, 0x42, 0x9d, 0x4b, 0x9a, 0xe4, 0x30, 0x79, 0xd2, 0x55, 0xfc, 0x5d, 0xc1, 0x16, 0xc0, 0xd6, - 0x67, 0x50, 0xe9, 0x46, 0x49, 0x46, 0x5e, 0x87, 0x85, 0x73, 0x2c, 0x7b, 0xa5, 0xd3, 0xeb, 0x7e, - 0x92, 0x49, 0x5e, 0x85, 0x45, 0x96, 0xe2, 0x6d, 0xaf, 0xe3, 0x73, 0xa0, 0x7c, 0x8d, 0x34, 0x4a, - 0x7c, 0xc9, 0xc2, 0xed, 0x1f, 0x96, 0xc1, 0x10, 0x6f, 0x15, 0x0f, 0x13, 0x27, 0xa0, 0xbb, 0xd1, - 0x20, 0xf4, 0xc8, 0x43, 0xa8, 0x68, 0xb7, 0x83, 0x37, 0xf4, 0x17, 0x8d, 0x28, 0xa0, 0xdd, 0x16, - 0xa0, 0x20, 0x69, 0x41, 0x6d, 0x10, 0x9e, 0x73, 0x16, 0xf5, 0x46, 0xea, 0x67, 0x05, 0x99, 0xac, - 0xc1, 0xbc, 0x78, 0x65, 0x25, 0x07, 0x43, 0x7e, 0x91, 0x4d, 0xa8, 0xb9, 0x8e, 0xef, 0x1e, 0x0e, - 0x42, 0x37, 0x9d, 0x52, 0xcd, 0x2b, 0x98, 0xe4, 0xff, 0x41, 0xbd, 0xc7, 0x1b, 0x69, 0xe3, 0x23, - 0x03, 0xf9, 0xca, 0x76, 0xa4, 0xe0, 0x8e, 0x6c, 0x7c, 0x8f, 0x40, 0xbe, 0x0e, 0x8b, 0x6e, 0x10, - 0x8b, 0xda, 0x81, 0x76, 0xf9, 0x21, 0x9f, 0xc5, 0xa2, 0xcc, 0x5e, 0x10, 0xef, 0x3b, 0x99, 0x83, - 0xb7, 0x72, 0x75, 0xb7, 0xf8, 0x68, 0xfd, 0xb0, 0x04, 0x75, 0x6d, 0x50, 0x5e, 0x34, 0x1e, 0x28, - 0x30, 0x31, 0x1e, 0x5f, 0x81, 0xb9, 0x34, 0x73, 0xe4, 0xcc, 0xe4, 0x6f, 0x71, 0xc7, 0xc7, 0xd9, - 0x12, 0x42, 0x64, 0x13, 0x66, 0x69, 0xa8, 0xe6, 0xe9, 0x3a, 0x59, 0x2e, 0xd2, 0xfa, 0x4d, 0x09, - 0xe6, 0x05, 0x87, 0xbc, 0x01, 0xb5, 0xde, 0x20, 0x74, 0x6d, 0xbc, 0xef, 0x98, 0x2c, 0xb1, 0x57, - 0x39, 0x73, 0x9f, 0xa6, 0xee, 0x44, 0x99, 0xb5, 0xfc, 0x79, 0x65, 0x56, 0xbd, 0xfe, 0x3c, 0xfb, - 0xa2, 0xfa, 0xf3, 0x1b, 0x30, 0x87, 0x03, 0x2e, 0xdf, 0x19, 0x2e, 0x4f, 0xb4, 0xdc, 0x12, 0xfc, - 0xc2, 0x15, 0xe7, 0x5e, 0xe4, 0x8a, 0xdf, 0x82, 0x06, 0x56, 0xe7, 0x59, 0xd8, 0xe7, 0x5d, 0x20, - 0x0f, 0x61, 0xb1, 0x2f, 0xbf, 0x45, 0xa9, 0x77, 0xb2, 0x97, 0x8d, 0xbe, 0x06, 0x68, 0x3d, 0x81, - 0xba, 0x52, 0xd0, 0xa5, 0x19, 0x79, 0x0f, 0x9a, 0x23, 0x78, 0x15, 0x55, 0xf2, 0xd6, 0x5a, 0xb7, - 0x65, 0x2d, 0xea, 0x8a, 0xd2, 0xd6, 0xf7, 0x4b, 0x30, 0x2f, 0x1e, 0xb6, 0x92, 0x77, 0xb4, 0x56, - 0xe4, 0x4f, 0x04, 0xf3, 0xce, 0x6a, 0xf6, 0x8a, 0xc6, 0x74, 0x69, 0x96, 0xbe, 0x64, 0x0d, 0xdc, - 0x84, 0x85, 0x67, 0x34, 0xc1, 0x07, 0x92, 0x22, 0x2a, 0xd4, 0x67, 0xeb, 0x4d, 0xa8, 0xf1, 0xb6, - 0x88, 0xc7, 0x81, 0x9f, 0x7b, 0xa5, 0xd3, 0xfa, 0xa3, 0x12, 0x2c, 0xc8, 0xa7, 0xb8, 0xe4, 0x01, - 0x40, 0x9c, 0x44, 0x9f, 0x8c, 0x74, 0x7a, 0xa9, 0x80, 0x88, 0x67, 0x92, 0x35, 0x2e, 0x22, 0xae, - 0x78, 0x1e, 0xc3, 0x5a, 0x9f, 0x86, 0x34, 0x71, 0xf8, 0x49, 0x40, 0xd6, 0x0e, 0xc4, 0xab, 0xaa, - 0x32, 0xbe, 0xaa, 0x5a, 0xcd, 0xb9, 0xa2, 0x82, 0x20, 0x9e, 0x57, 0xbd, 0x5c, 0x7e, 0x79, 0x1d, - 0x9a, 0xa3, 0x0f, 0x7e, 0xc9, 0xaa, 0xaa, 0xb3, 0x8b, 0x6a, 0xa6, 0xf8, 0xd8, 0xfa, 0x83, 0x59, - 0xf1, 0xf6, 0x1f, 0xaf, 0x1e, 0x97, 0x61, 0x91, 0xff, 0xe6, 0xef, 0x58, 0x8c, 0x19, 0x45, 0xca, - 0x2f, 0x16, 0x8d, 0x92, 0x22, 0xe5, 0xf7, 0x71, 0x46, 0x99, 0xac, 0xc0, 0x12, 0x27, 0x69, 0x37, - 0x51, 0xc6, 0x2c, 0x69, 0x40, 0x15, 0xb5, 0x45, 0x71, 0xc7, 0xa8, 0x90, 0x45, 0xa8, 0xf1, 0x2f, - 0xbc, 0xc4, 0x30, 0xe6, 0x72, 0x25, 0x78, 0x8c, 0xdf, 0xe9, 0xf7, 0x8d, 0x79, 0x25, 0xff, 0x51, - 0xc4, 0x42, 0x63, 0x41, 0x7d, 0x3d, 0x65, 0xbe, 0x6f, 0x54, 0xc9, 0x1a, 0x10, 0xfe, 0x35, 0xfa, - 0xf2, 0xd7, 0xa8, 0x11, 0x13, 0x56, 0x75, 0xba, 0x7a, 0x9b, 0x69, 0x00, 0x21, 0xd0, 0xe4, 0x9c, - 0xe2, 0x7e, 0xce, 0xa8, 0x93, 0x75, 0x58, 0x43, 0xda, 0xc4, 0x83, 0x1d, 0xa3, 0xa1, 0xec, 0xf1, - 0x14, 0x6e, 0x2c, 0x92, 0x26, 0x00, 0xff, 0x12, 0x31, 0x65, 0x34, 0xd5, 0xb7, 0x98, 0x69, 0x63, - 0x89, 0x2c, 0x41, 0xbd, 0xf8, 0xde, 0x36, 0x0c, 0xd5, 0xc0, 0xd1, 0x31, 0x37, 0x96, 0xd5, 0xc8, - 0x68, 0x6f, 0x60, 0x8d, 0x55, 0xf2, 0x0a, 0x98, 0x12, 0x3d, 0x71, 0xb5, 0x61, 0xdc, 0xd8, 0xfa, - 0x1a, 0x34, 0xf4, 0x97, 0x9e, 0xdc, 0xd6, 0xa9, 0x93, 0xa6, 0x67, 0x17, 0x49, 0x34, 0xe8, 0x5f, - 0x18, 0x33, 0x7c, 0x28, 0x73, 0x3b, 0x46, 0x89, 0x54, 0xa1, 0xf2, 0xc4, 0x49, 0x2f, 0x8c, 0xf2, - 0xd6, 0x37, 0x60, 0x69, 0xec, 0x85, 0x2f, 0x67, 0x76, 0x4e, 0x3a, 0x07, 0xc6, 0x0c, 0xff, 0x77, - 0xb8, 0xd3, 0x3d, 0x33, 0x4a, 0x64, 0x15, 0x8c, 0x27, 0xed, 0x0f, 0x9f, 0xd8, 0x7b, 0x27, 0xc7, - 0xa7, 0xd6, 0x41, 0xb7, 0xdb, 0x3e, 0xe9, 0x18, 0xe5, 0xad, 0x07, 0x00, 0xc5, 0x63, 0x34, 0x52, - 0x83, 0x39, 0xac, 0xe4, 0x08, 0xe0, 0x19, 0x7b, 0xfa, 0xb1, 0x51, 0x22, 0x75, 0x58, 0x90, 0x4b, - 0xbb, 0x51, 0xde, 0x7a, 0x04, 0x4b, 0xf2, 0xf8, 0xc6, 0xfb, 0xf6, 0x94, 0x85, 0x7c, 0xa9, 0x21, - 0xed, 0xce, 0xc7, 0x3b, 0x47, 0xed, 0x7d, 0xbb, 0xdd, 0xd9, 0x3f, 0xf8, 0x9e, 0xfd, 0xb4, 0xdd, - 0xd9, 0x17, 0x1a, 0x9e, 0x74, 0xba, 0xdf, 0x35, 0x4a, 0x5b, 0xe7, 0xb0, 0x3a, 0xed, 0x11, 0x28, - 0xb9, 0x0d, 0x37, 0x15, 0x72, 0xbf, 0xdd, 0x3d, 0xdb, 0xe9, 0xec, 0x1d, 0xd8, 0xc7, 0x07, 0x67, - 0x56, 0x7b, 0xcf, 0x98, 0x21, 0xf3, 0x50, 0x3e, 0x7a, 0xdb, 0x28, 0xe1, 0xef, 0xb6, 0x51, 0x26, - 0x00, 0xf3, 0x7b, 0x27, 0xdd, 0x76, 0xe7, 0xc0, 0x98, 0xe5, 0x7e, 0xd4, 0xee, 0x74, 0x0e, 0x2c, - 0xfb, 0xd4, 0x3a, 0xd9, 0xff, 0xce, 0xde, 0x99, 0x51, 0xd9, 0x7a, 0xbb, 0x78, 0xce, 0x8a, 0x5d, - 0x59, 0x05, 0xa3, 0x1d, 0x3e, 0x73, 0x7c, 0xe6, 0xe5, 0x34, 0x63, 0x86, 0xf7, 0xe5, 0x44, 0xe4, - 0x53, 0xa3, 0xb4, 0xf5, 0x9d, 0xe2, 0xad, 0x25, 0x42, 0x6e, 0xc2, 0x8a, 0xfe, 0x2d, 0xe1, 0xc6, - 0x0c, 0xef, 0xa1, 0xce, 0x10, 0x65, 0x14, 0x31, 0xa4, 0x3a, 0xfd, 0x2c, 0x8a, 0x9f, 0x1a, 0xe5, - 0xad, 0x5f, 0x95, 0xa0, 0xaa, 0x1e, 0xf7, 0x14, 0x91, 0x14, 0xd2, 0x04, 0x7d, 0x7c, 0x86, 0xdc, - 0x80, 0x65, 0x8c, 0x09, 0xda, 0xcb, 0x4e, 0x06, 0x99, 0x24, 0x97, 0x94, 0x2f, 0x59, 0xac, 0x7f, - 0xa1, 0xd1, 0xcb, 0xc4, 0x80, 0x86, 0x08, 0x3c, 0xf1, 0x44, 0xc3, 0x98, 0xe5, 0x66, 0x31, 0xee, - 0xc2, 0x8c, 0xe5, 0xd4, 0x0a, 0xb9, 0x05, 0x37, 0x46, 0xd4, 0xe6, 0xac, 0x39, 0x72, 0x07, 0x6e, - 0x29, 0xc0, 0x24, 0x7b, 0x7e, 0x6b, 0x03, 0x1a, 0xfa, 0xa3, 0x22, 0x65, 0x91, 0xbb, 0x97, 0x68, - 0xf2, 0xd6, 0xd7, 0x61, 0x79, 0xe2, 0x01, 0x03, 0x9f, 0x98, 0x76, 0x47, 0x8c, 0xe9, 0x71, 0xbb, - 0x63, 0x1f, 0xef, 0x7c, 0xcf, 0x28, 0x71, 0xec, 0xee, 0xd1, 0xc9, 0xc9, 0xb1, 0x7d, 0xd8, 0x3e, - 0x3a, 0x3b, 0xb0, 0x8c, 0xf2, 0xd6, 0xd6, 0x18, 0x16, 0x1d, 0x94, 0x3b, 0xda, 0xc9, 0xde, 0xce, - 0x91, 0x31, 0xc3, 0xe7, 0xf5, 0xc3, 0xa3, 0x93, 0xdd, 0x9d, 0x23, 0xa3, 0xb4, 0xb5, 0x0b, 0xcb, - 0x13, 0xd7, 0xb6, 0x3c, 0x12, 0x0e, 0xa3, 0xc4, 0xa5, 0x82, 0x24, 0x1c, 0x6b, 0x67, 0x90, 0x45, - 0x46, 0x89, 0x87, 0x3b, 0xb2, 0x44, 0x42, 0x61, 0x61, 0xdf, 0x28, 0x6f, 0x7d, 0x0b, 0x96, 0xc6, - 0x36, 0x4f, 0x3c, 0x74, 0x0e, 0x23, 0xdf, 0x8f, 0x9e, 0x73, 0x09, 0x8c, 0xa4, 0xd3, 0x84, 0xba, - 0xd4, 0xe3, 0x9f, 0x25, 0x1e, 0xe5, 0x7b, 0x78, 0xb1, 0x96, 0x59, 0xd1, 0x73, 0xa3, 0xbc, 0x75, - 0x02, 0xc6, 0xf8, 0x86, 0x85, 0x2c, 0xc0, 0x6c, 0x3b, 0xcc, 0x8c, 0x19, 0xde, 0xf0, 0x43, 0x3f, - 0x72, 0x32, 0x11, 0x17, 0xfb, 0xd4, 0x65, 0x81, 0xe3, 0x1b, 0x65, 0x9e, 0x48, 0xf6, 0x9d, 0x8c, - 0x9e, 0xb1, 0x80, 0x8a, 0x24, 0xb8, 0x3f, 0x10, 0xf7, 0x7d, 0x46, 0x85, 0xc7, 0xcc, 0xd8, 0xf6, - 0x85, 0x77, 0x81, 0x9f, 0x1a, 0x44, 0xf7, 0xd1, 0x5a, 0x6a, 0x94, 0x70, 0x28, 0xf8, 0xaa, 0x96, - 0x1a, 0xe5, 0xdd, 0x2f, 0xff, 0xfa, 0xb7, 0x77, 0x4b, 0xff, 0xf2, 0xdb, 0xbb, 0xa5, 0x7f, 0xff, - 0xed, 0xdd, 0xd2, 0x8f, 0xfe, 0xe3, 0xee, 0x0c, 0xdc, 0x70, 0xa3, 0xe0, 0x01, 0x5f, 0xf1, 0x5c, - 0x27, 0x7e, 0x90, 0x31, 0xef, 0x1c, 0xd7, 0x80, 0xd3, 0xd2, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x87, 0x6c, 0x8b, 0x38, 0x16, 0x36, 0x00, 0x00, + // 5175 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7b, 0x4b, 0x73, 0x1c, 0xc9, + 0x71, 0x3f, 0x67, 0x30, 0x00, 0x66, 0x72, 0x06, 0x83, 0x46, 0x01, 0x24, 0x9b, 0xe0, 0x92, 0x04, + 0x47, 0xfb, 0x80, 0xf0, 0xd7, 0x92, 0xbb, 0x20, 0xb5, 0x0f, 0xe9, 0xbf, 0xd2, 0xe2, 0xb9, 0x9c, + 0x25, 0x30, 0x80, 0x7a, 0xa0, 0x95, 0x0e, 0x8e, 0xe8, 0x68, 0x74, 0xd7, 0x0c, 0x6a, 0xd1, 0x8f, + 0xd9, 0xae, 0x1e, 0x12, 0xd8, 0x93, 0xce, 0x3e, 0x39, 0xac, 0xb0, 0x2c, 0x3f, 0x65, 0xcb, 0x2f, + 0xc9, 0x92, 0x75, 0xf0, 0x27, 0xf0, 0x51, 0x47, 0x9f, 0x75, 0x70, 0x38, 0xe4, 0x93, 0xbf, 0x81, + 0xc3, 0x27, 0x47, 0x65, 0x55, 0x75, 0xd7, 0x3c, 0xc0, 0xe5, 0x86, 0x75, 0xf0, 0x09, 0xd3, 0x99, + 0xf9, 0xcb, 0xac, 0xca, 0xca, 0xcc, 0x7a, 0x02, 0x9a, 0xf4, 0x82, 0xfa, 0xc3, 0x2c, 0x49, 0x1f, + 0x0c, 0xd2, 0x24, 0x4b, 0x48, 0x25, 0x63, 0x83, 0xd3, 0x55, 0x8b, 0x5e, 0x0c, 0x52, 0xca, 0x39, + 0x4b, 0x62, 0x49, 0x5f, 0x6d, 0x70, 0xff, 0x8c, 0x46, 0x9e, 0xfa, 0x5a, 0xe9, 0x27, 0xfd, 0x04, + 0x7f, 0x3e, 0x14, 0xbf, 0x24, 0xb5, 0xf5, 0xf3, 0x1a, 0x54, 0xf7, 0x94, 0x3a, 0xf2, 0x2a, 0x94, + 0xb3, 0x81, 0x5d, 0x5a, 0x2b, 0xad, 0x37, 0x37, 0x9b, 0x0f, 0x84, 0xd6, 0x07, 0x82, 0x77, 0x72, + 0x39, 0xa0, 0xdb, 0x95, 0x5f, 0xff, 0xdb, 0xbd, 0x6b, 0x4e, 0x39, 0x1b, 0x90, 0x0d, 0xa8, 0x66, + 0xa7, 0xa1, 0xcb, 0x7d, 0x2f, 0xb6, 0xcb, 0x6b, 0xa5, 0xf5, 0xfa, 0xe6, 0xa2, 0x94, 0x3d, 0xf1, + 0x4e, 0x43, 0xda, 0xf5, 0xbd, 0xd8, 0x99, 0xcf, 0x4e, 0x43, 0xf1, 0x43, 0xc8, 0xb2, 0xe0, 0x42, + 0xca, 0xce, 0x98, 0xb2, 0xed, 0x38, 0xa0, 0x17, 0x52, 0x96, 0x05, 0xf8, 0x83, 0xbc, 0x09, 0x35, + 0x4e, 0x43, 0xea, 0x67, 0x2c, 0x89, 0xed, 0x8a, 0x29, 0xdc, 0xd5, 0x64, 0xa7, 0x90, 0x20, 0x8f, + 0xa0, 0xee, 0xf5, 0xfb, 0x29, 0xed, 0x7b, 0x08, 0x98, 0x45, 0xc0, 0x92, 0x04, 0x6c, 0x15, 0x0c, + 0xc7, 0x94, 0x22, 0x77, 0xa1, 0x92, 0x25, 0x83, 0x8e, 0x3d, 0x87, 0xd2, 0xa0, 0xda, 0x9d, 0x0c, + 0x3a, 0x0e, 0xd2, 0xc9, 0x7d, 0x98, 0x0d, 0x59, 0xc4, 0x32, 0x7b, 0x1e, 0x05, 0xea, 0x52, 0xe0, + 0x40, 0x90, 0x1c, 0xc9, 0x21, 0x3b, 0xb0, 0x44, 0x2f, 0xfc, 0x33, 0x2f, 0xee, 0x53, 0x37, 0xa5, + 0x3e, 0x65, 0xcf, 0x68, 0x6a, 0x57, 0x51, 0xfc, 0x86, 0xf6, 0x99, 0x64, 0x3b, 0x8a, 0xeb, 0x58, + 0x74, 0x8c, 0x22, 0xda, 0xf1, 0x69, 0xc2, 0x62, 0xbb, 0x66, 0xb6, 0xe3, 0xe3, 0x84, 0xc5, 0x0e, + 0xd2, 0xc9, 0x3d, 0xa8, 0xeb, 0x41, 0x76, 0x59, 0x60, 0xc3, 0x5a, 0x69, 0xbd, 0xe6, 0x80, 0x26, + 0xb5, 0x03, 0xa1, 0xe0, 0x9c, 0x85, 0xa1, 0x5d, 0x37, 0x15, 0x3c, 0x65, 0x61, 0xe8, 0x20, 0x9d, + 0x7c, 0x00, 0x8b, 0x79, 0x2b, 0x39, 0x8d, 0x03, 0x9a, 0xda, 0x0d, 0x14, 0x5d, 0x19, 0x6d, 0x63, + 0x17, 0x79, 0x4e, 0x93, 0x8e, 0x7c, 0x93, 0xb7, 0x00, 0x8e, 0xd3, 0xe4, 0x53, 0x35, 0x18, 0x0b, + 0x88, 0xb4, 0x24, 0xb2, 0xa0, 0x3b, 0x86, 0x0c, 0xf9, 0x18, 0x56, 0x06, 0x5e, 0x9a, 0x31, 0xf1, + 0xe1, 0x66, 0x22, 0x12, 0xe4, 0xa8, 0x37, 0x11, 0x6b, 0x2b, 0xac, 0x96, 0x28, 0x42, 0x85, 0x0c, + 0x26, 0x68, 0xa2, 0x73, 0x3c, 0x49, 0x33, 0x7b, 0xd1, 0xec, 0x5c, 0x37, 0x49, 0x33, 0x07, 0xe9, + 0xe4, 0x55, 0x98, 0x7b, 0xce, 0xe2, 0x20, 0x79, 0x6e, 0x5b, 0x28, 0xd1, 0x90, 0x12, 0xdf, 0x43, + 0x9a, 0xa3, 0x78, 0xa4, 0x03, 0xf7, 0x7b, 0x2c, 0xa6, 0x6e, 0x3f, 0xf5, 0x58, 0x4c, 0x03, 0x97, + 0x9f, 0x0d, 0x7b, 0x3d, 0xd1, 0xac, 0x2c, 0xa5, 0x5e, 0xe4, 0xfa, 0xc9, 0x30, 0xce, 0xec, 0xa5, + 0xb5, 0xd2, 0x7a, 0x45, 0x05, 0xf7, 0x1d, 0x21, 0xfe, 0x91, 0x94, 0xee, 0x4a, 0xe1, 0x2e, 0xca, + 0xee, 0x08, 0x51, 0xf2, 0x31, 0xdc, 0x9b, 0xaa, 0xef, 0xd4, 0xcb, 0xfc, 0x33, 0x97, 0xb3, 0xcf, + 0xa9, 0x4d, 0x0c, 0x6d, 0xb7, 0x27, 0xb5, 0x6d, 0x0b, 0xc9, 0x2e, 0xfb, 0x9c, 0x8a, 0x1e, 0xd0, + 0x8b, 0x81, 0x17, 0x07, 0xf6, 0xb2, 0xd9, 0x83, 0x3d, 0xa4, 0x39, 0x8a, 0x47, 0xde, 0x80, 0x79, + 0xf9, 0x6b, 0xd3, 0x5e, 0x41, 0xb1, 0x05, 0x53, 0x6c, 0xd3, 0xd1, 0x5c, 0x31, 0xda, 0xa7, 0x69, + 0xe2, 0x05, 0xbe, 0xc7, 0x33, 0xf7, 0xb3, 0x21, 0x4d, 0x2f, 0xed, 0xeb, 0xe6, 0x68, 0x6f, 0x6b, + 0xe6, 0x77, 0x04, 0xcf, 0x69, 0x9e, 0x8e, 0x7c, 0x93, 0xc7, 0xd0, 0x60, 0x22, 0x1f, 0xdd, 0x30, + 0x49, 0xce, 0x87, 0x03, 0xdb, 0x36, 0x73, 0x09, 0x33, 0xf5, 0x20, 0x49, 0xce, 0xbf, 0x3b, 0x70, + 0xea, 0x4c, 0x7f, 0x0c, 0x07, 0xe4, 0x0e, 0xc0, 0xc0, 0x4b, 0x69, 0x9c, 0xb9, 0x2c, 0xb8, 0xb0, + 0x6f, 0xad, 0x95, 0xd6, 0x17, 0x9c, 0x9a, 0xa4, 0xb4, 0x83, 0x0b, 0x72, 0x0c, 0x37, 0xe8, 0xc5, + 0x20, 0xf4, 0x58, 0xec, 0xf6, 0x92, 0xd4, 0xf5, 0x93, 0x38, 0x56, 0xe1, 0xb4, 0x8a, 0xea, 0x57, + 0xf3, 0xbe, 0x08, 0x99, 0xfd, 0x24, 0xdd, 0xc9, 0x25, 0x9c, 0x15, 0x3a, 0x85, 0xda, 0xfa, 0xe5, + 0x0c, 0x34, 0x47, 0xe3, 0x96, 0xac, 0x1b, 0x15, 0x8b, 0x8c, 0x46, 0xf6, 0x44, 0xd5, 0x5a, 0xa2, + 0xb1, 0x9f, 0x04, 0x34, 0x70, 0x33, 0x8f, 0x9f, 0xbb, 0x11, 0xcd, 0x3c, 0xbb, 0xbc, 0x36, 0xb3, + 0xde, 0x70, 0x16, 0x15, 0xe3, 0xc4, 0xe3, 0xe7, 0x87, 0x34, 0xf3, 0xc8, 0xdb, 0xd0, 0x2c, 0x62, + 0xf9, 0x9c, 0x5e, 0x72, 0x7b, 0x66, 0x6d, 0xa6, 0x88, 0xc4, 0xbd, 0x8b, 0x41, 0xea, 0x2c, 0xe4, + 0x12, 0x4f, 0xe9, 0x25, 0x27, 0xaf, 0xc2, 0xac, 0x7f, 0xc6, 0xc2, 0x40, 0x15, 0x2e, 0xa3, 0x7a, + 0x8a, 0x84, 0x75, 0x24, 0x93, 0xbc, 0x06, 0xb3, 0xd9, 0xe5, 0x80, 0x72, 0x7b, 0x16, 0xf5, 0xa9, + 0xf2, 0xb6, 0xcf, 0x68, 0x18, 0x88, 0xe6, 0x3a, 0x92, 0x4b, 0xde, 0x85, 0x45, 0x2f, 0x0c, 0xdd, + 0x9e, 0xa0, 0xbb, 0x12, 0x30, 0x37, 0x1d, 0xb0, 0xe0, 0x85, 0x61, 0xfe, 0xc5, 0xc9, 0x07, 0x50, + 0xf7, 0x93, 0x48, 0x4f, 0x03, 0x58, 0xc4, 0x9a, 0x9b, 0xd7, 0x25, 0x68, 0xa7, 0x60, 0x1c, 0x26, + 0x81, 0x76, 0x8d, 0x29, 0x4f, 0x0e, 0xe0, 0xc6, 0x70, 0xa0, 0xd3, 0x23, 0xa3, 0x86, 0xa3, 0xaa, + 0x68, 0xfe, 0xa6, 0xea, 0x95, 0x74, 0xd7, 0xf6, 0x65, 0x46, 0x79, 0x37, 0x64, 0x3e, 0x75, 0x96, + 0x35, 0x6c, 0x27, 0xa3, 0xda, 0x8b, 0xad, 0xdf, 0x2f, 0x41, 0xdd, 0x08, 0x1e, 0xf2, 0x16, 0xac, + 0xc8, 0x28, 0x3b, 0xf3, 0xe2, 0x20, 0xa4, 0x6e, 0xd2, 0xeb, 0x71, 0x9a, 0x71, 0xbb, 0xb4, 0x36, + 0xb3, 0xbe, 0xe0, 0x10, 0xe4, 0x3d, 0x41, 0xd6, 0x91, 0xe4, 0x88, 0x08, 0x3b, 0xa7, 0x74, 0xe0, + 0x26, 0xa9, 0xa8, 0x5f, 0x62, 0xae, 0xa9, 0x3a, 0x35, 0x41, 0x39, 0x12, 0x04, 0x31, 0xb9, 0xa0, + 0x5b, 0x53, 0x1a, 0xab, 0x01, 0x1a, 0x77, 0x7b, 0xce, 0x6f, 0xbd, 0x07, 0x4b, 0x13, 0xcd, 0x26, + 0x5f, 0x81, 0x05, 0x33, 0x26, 0x64, 0x53, 0x1a, 0x4e, 0xc3, 0x88, 0x07, 0xde, 0xfa, 0x4d, 0x09, + 0xac, 0xf1, 0x8a, 0x3e, 0x3d, 0x9a, 0x4a, 0xd3, 0xa3, 0xe9, 0x2d, 0xa8, 0x9b, 0x23, 0x59, 0x9e, + 0x3e, 0x92, 0xd0, 0x2b, 0x86, 0xb1, 0x85, 0x51, 0x3d, 0x73, 0x55, 0x54, 0x63, 0x3c, 0xef, 0xc2, + 0xbd, 0x24, 0x65, 0x7d, 0x16, 0x7b, 0x21, 0x8e, 0xd5, 0x20, 0x0d, 0x12, 0x7f, 0x48, 0x53, 0xa3, + 0x3d, 0x15, 0x6c, 0xcf, 0x6d, 0x2d, 0xb6, 0x93, 0xd1, 0x63, 0x25, 0x94, 0x8f, 0xd1, 0x0f, 0x67, + 0xa0, 0xb1, 0xd5, 0xe9, 0x60, 0x19, 0x68, 0xc7, 0xbd, 0x84, 0xbc, 0x0b, 0x80, 0xf5, 0x03, 0x1b, + 0x3b, 0x9a, 0x58, 0x5a, 0xce, 0x48, 0xac, 0xda, 0x67, 0x9a, 0x40, 0xda, 0xb0, 0x18, 0x30, 0x9e, + 0x79, 0xb1, 0x4f, 0x85, 0xf5, 0x94, 0xf9, 0x38, 0x60, 0x4d, 0x9d, 0xe7, 0x9f, 0x50, 0x3f, 0x4b, + 0xd2, 0x5d, 0x25, 0x72, 0x88, 0x12, 0x4a, 0x4b, 0x33, 0x18, 0xa1, 0x92, 0x5b, 0x30, 0x9b, 0x25, + 0x03, 0xf7, 0x1c, 0x3d, 0xb0, 0xa0, 0x84, 0xc4, 0xfc, 0xfc, 0x94, 0xbc, 0x26, 0x02, 0x3c, 0x1c, + 0x46, 0xb1, 0x1b, 0x7b, 0x11, 0xc5, 0x64, 0xab, 0x29, 0x01, 0x90, 0x8c, 0x8e, 0x17, 0x51, 0x72, + 0x1f, 0x6a, 0x4a, 0x8c, 0x05, 0xb8, 0x32, 0x98, 0x51, 0x42, 0x55, 0x49, 0xc6, 0x09, 0xb4, 0x9e, + 0xd2, 0x9e, 0xfb, 0x8c, 0xfa, 0x6e, 0xef, 0xd1, 0x26, 0x2e, 0x08, 0x1a, 0x4e, 0x2d, 0xa5, 0xbd, + 0x4f, 0xa8, 0xbf, 0xff, 0x68, 0x93, 0xdc, 0x83, 0xaa, 0x8c, 0x56, 0x16, 0xe0, 0xec, 0xae, 0x35, + 0xcc, 0x23, 0xb5, 0x2d, 0x8a, 0x73, 0x23, 0xf2, 0x2e, 0x5c, 0xdd, 0x76, 0x9c, 0xa3, 0x4b, 0x3a, + 0xab, 0x22, 0xef, 0x42, 0x77, 0x95, 0x6c, 0x40, 0xf3, 0x2c, 0xe6, 0xcf, 0x5d, 0xda, 0x73, 0x39, + 0xf5, 0x52, 0xff, 0x0c, 0x8b, 0xb9, 0xee, 0x57, 0x43, 0xf0, 0xf6, 0x7a, 0x5d, 0xe4, 0x7c, 0x5c, + 0xa9, 0xce, 0x5b, 0xd5, 0xd6, 0x6f, 0xca, 0xd0, 0xd8, 0x3f, 0xe9, 0xbe, 0xd4, 0xa8, 0x68, 0xb9, + 0xe9, 0xa3, 0x62, 0xf6, 0xa2, 0x3c, 0xad, 0x17, 0x1b, 0x30, 0x2f, 0x5d, 0xa2, 0x6b, 0x9c, 0xa5, + 0xab, 0x05, 0xfa, 0x29, 0xee, 0x25, 0x8e, 0x16, 0x20, 0xf7, 0xa1, 0x61, 0x38, 0x9f, 0x63, 0x7c, + 0xd5, 0x9c, 0x7a, 0xe1, 0x77, 0x4e, 0xbe, 0x92, 0x37, 0x94, 0x5e, 0x64, 0xe8, 0xf9, 0xda, 0x68, + 0xa3, 0xe8, 0x45, 0x46, 0xde, 0x84, 0x45, 0x25, 0x94, 0x9c, 0xd3, 0x98, 0x7d, 0x4e, 0x53, 0x74, + 0xbf, 0x96, 0x6c, 0x4a, 0x49, 0xcd, 0x23, 0xcb, 0x3a, 0x1c, 0x00, 0xa7, 0x18, 0x19, 0x08, 0xef, + 0x69, 0x43, 0xbd, 0x61, 0xec, 0xa3, 0x43, 0x9b, 0x9b, 0xcb, 0x6a, 0xa1, 0xe0, 0x7b, 0xa1, 0x97, + 0xee, 0x0f, 0x63, 0xbf, 0xcb, 0xfa, 0x23, 0xd6, 0x05, 0xad, 0xf5, 0x83, 0x59, 0xa8, 0x15, 0x4b, + 0x8d, 0x7b, 0x50, 0x95, 0x8b, 0x15, 0x16, 0xa0, 0x5f, 0x73, 0x07, 0x21, 0x75, 0xd4, 0x41, 0xe5, + 0x2f, 0x72, 0x90, 0x0d, 0x95, 0x80, 0x72, 0x1f, 0xe3, 0xb6, 0xaa, 0xe3, 0x56, 0x50, 0xc8, 0xd7, + 0x80, 0x0c, 0x52, 0x16, 0x79, 0xe9, 0xa5, 0x9b, 0x07, 0xa6, 0x74, 0xe0, 0x8c, 0x63, 0x29, 0x8e, + 0xd2, 0x18, 0x70, 0xf2, 0x21, 0x58, 0x31, 0xbd, 0xc8, 0xdc, 0x94, 0x7a, 0x81, 0x4b, 0xe3, 0x3e, + 0x8b, 0x29, 0xfa, 0xb2, 0xa9, 0x8d, 0xef, 0x21, 0xcd, 0x18, 0xf2, 0xa6, 0x90, 0x77, 0xa8, 0x17, + 0x48, 0x0e, 0xf9, 0x1a, 0xcc, 0xa5, 0xa2, 0x5c, 0xe8, 0x89, 0x43, 0x15, 0xc6, 0xa7, 0xf4, 0xd2, + 0x11, 0x64, 0x85, 0x52, 0x32, 0xe4, 0x7d, 0xb8, 0xa5, 0x5b, 0x37, 0x48, 0x69, 0x8f, 0x5d, 0x98, + 0x8d, 0x9c, 0xc7, 0x46, 0xde, 0x50, 0x02, 0xc7, 0xc8, 0x2f, 0x9a, 0x3a, 0x5a, 0xa2, 0xab, 0xe3, + 0x25, 0x7a, 0x0d, 0x1a, 0x8c, 0xbb, 0x3d, 0xb1, 0x2c, 0xc1, 0xd5, 0x60, 0x0d, 0x05, 0x80, 0xf1, + 0x7d, 0x8f, 0x67, 0x38, 0x00, 0x87, 0x70, 0x67, 0x30, 0xe4, 0x67, 0x34, 0x70, 0x83, 0xe4, 0x79, + 0xec, 0xf6, 0x58, 0x98, 0x51, 0x5c, 0x2d, 0x04, 0x38, 0xb9, 0x72, 0x1b, 0x26, 0xa6, 0xde, 0x55, + 0x09, 0xd8, 0x4d, 0x9e, 0xc7, 0xfb, 0x28, 0xbe, 0x93, 0x4b, 0x93, 0x1d, 0x58, 0x4e, 0x87, 0x71, + 0xc6, 0x22, 0xaa, 0x55, 0x85, 0x8c, 0x67, 0x76, 0x1d, 0x95, 0xa8, 0x00, 0x71, 0xa4, 0x80, 0xc4, + 0x3a, 0x4b, 0xa9, 0xf9, 0x79, 0xc0, 0xb8, 0x08, 0x50, 0x4b, 0xa4, 0xf6, 0x73, 0x8f, 0x65, 0x2e, + 0xaa, 0x8a, 0x38, 0xae, 0x9e, 0x67, 0x95, 0xdf, 0x16, 0x22, 0xef, 0xe2, 0x7b, 0x1e, 0xcb, 0x4e, + 0x58, 0x44, 0x0f, 0x39, 0x79, 0x08, 0x35, 0x2f, 0x8e, 0xd5, 0xba, 0x4b, 0xae, 0x95, 0xc7, 0x4a, + 0x26, 0x86, 0x49, 0xd5, 0x8b, 0x63, 0xfc, 0x6a, 0xfd, 0xa4, 0x02, 0x64, 0x72, 0x29, 0xfc, 0x7f, + 0x33, 0x16, 0x5f, 0x18, 0x1b, 0xb3, 0x2f, 0x8c, 0x8d, 0xaf, 0x40, 0xb1, 0x48, 0x42, 0xf1, 0x39, + 0x14, 0x6f, 0xe4, 0x44, 0x21, 0x34, 0x1e, 0x21, 0xf3, 0x5f, 0x3e, 0x42, 0xaa, 0xbf, 0x8b, 0x08, + 0xa9, 0xfd, 0xaf, 0x23, 0x04, 0x5e, 0x32, 0x42, 0xea, 0x2f, 0x11, 0x21, 0xff, 0x3d, 0x0b, 0x15, + 0xb1, 0x1d, 0x24, 0x6f, 0x43, 0x4d, 0x6c, 0x08, 0xcd, 0xc2, 0xdf, 0x2c, 0x76, 0x8b, 0x46, 0x05, + 0xa8, 0x7e, 0xaa, 0xbe, 0xc9, 0xb7, 0xa0, 0x89, 0x10, 0xb1, 0x5b, 0x94, 0xb8, 0xb2, 0x39, 0x61, + 0x08, 0xdc, 0xd8, 0xae, 0xbe, 0xf1, 0xa9, 0x41, 0xfb, 0x32, 0xcb, 0x2a, 0x31, 0xd1, 0xb2, 0x38, + 0xa6, 0x29, 0x6e, 0x01, 0x2a, 0xe6, 0x44, 0x8b, 0x64, 0xb1, 0x0f, 0x78, 0x0b, 0x9a, 0x21, 0xed, + 0x65, 0x2e, 0xb6, 0x09, 0x17, 0xd3, 0xb3, 0x13, 0xe3, 0xd5, 0x10, 0x12, 0xa2, 0x61, 0xb8, 0x96, + 0xde, 0x84, 0xc5, 0x94, 0xf5, 0xcf, 0x4c, 0xc8, 0xdc, 0xe4, 0xfa, 0x1b, 0x45, 0x72, 0xcc, 0x5b, + 0x50, 0x1f, 0xa4, 0xc9, 0x29, 0x55, 0x8b, 0xac, 0xf9, 0x2b, 0x16, 0x59, 0x28, 0x23, 0x17, 0x59, + 0x6f, 0x41, 0xfd, 0x74, 0xc8, 0xf2, 0x65, 0x59, 0xf5, 0x0a, 0x04, 0xca, 0x48, 0xc4, 0x23, 0x58, + 0xc4, 0x9e, 0x18, 0xa1, 0x57, 0x9b, 0x68, 0x17, 0x76, 0xd6, 0x08, 0xb7, 0xaf, 0x83, 0x25, 0x3b, + 0xf3, 0xc2, 0x92, 0x26, 0x3b, 0x3c, 0x0a, 0x4b, 0xb2, 0xb3, 0xd1, 0x38, 0xaf, 0x4f, 0xc2, 0x50, + 0xc6, 0x80, 0x3d, 0x81, 0xdb, 0x12, 0x46, 0x3f, 0x33, 0x90, 0x6e, 0x2f, 0x4d, 0x22, 0x97, 0xc5, + 0x76, 0x63, 0x42, 0xc3, 0x4d, 0x14, 0xdf, 0xfb, 0xac, 0xd0, 0xb1, 0x9f, 0x26, 0x51, 0x3b, 0x26, + 0x8f, 0xe1, 0x26, 0xe3, 0x6e, 0x3c, 0x0c, 0x43, 0xd7, 0x7b, 0xee, 0xa5, 0xd4, 0xe5, 0x34, 0x62, + 0x38, 0x22, 0x58, 0xe2, 0xaa, 0xce, 0x32, 0xe3, 0x9d, 0x61, 0x18, 0x6e, 0x09, 0x66, 0x97, 0x46, + 0x0c, 0xc3, 0xf5, 0x8a, 0xe4, 0x6a, 0x7e, 0x99, 0xe4, 0x6a, 0xfd, 0x67, 0x19, 0x16, 0x46, 0x84, + 0xc8, 0x0a, 0x94, 0x55, 0x4d, 0xd4, 0x09, 0x56, 0x66, 0x01, 0x79, 0x0c, 0x16, 0x4f, 0x86, 0xa9, + 0x4f, 0x5d, 0x7a, 0x31, 0x50, 0x96, 0xca, 0x93, 0x03, 0x22, 0x65, 0xc4, 0x6f, 0x4c, 0xdd, 0xc7, + 0x60, 0x65, 0x5e, 0xda, 0xa7, 0x99, 0x81, 0x9a, 0xdc, 0xde, 0x35, 0xa5, 0x4c, 0x8e, 0xda, 0x04, + 0x92, 0xdb, 0x2a, 0xce, 0x65, 0xcc, 0xf5, 0xa7, 0xa5, 0xed, 0xe4, 0x67, 0x34, 0x9b, 0x40, 0x72, + 0x4b, 0x05, 0xc6, 0x5c, 0x14, 0x59, 0xda, 0x4a, 0x8e, 0x79, 0x07, 0xe6, 0xd3, 0x9e, 0xcc, 0xda, + 0x39, 0xcc, 0xda, 0x9b, 0x53, 0x9c, 0x66, 0xa4, 0xee, 0x5c, 0xda, 0xc3, 0xa4, 0x95, 0xb8, 0x28, + 0x09, 0xa8, 0xda, 0xf5, 0x4d, 0xc3, 0x19, 0xfb, 0xbe, 0xb9, 0xb4, 0x27, 0xbe, 0x5a, 0x3f, 0x2c, + 0x43, 0x2d, 0x3f, 0x8b, 0xfb, 0xe2, 0x19, 0xe8, 0x77, 0xba, 0x9e, 0xd4, 0x53, 0x54, 0x65, 0x62, + 0x8a, 0xba, 0x01, 0x73, 0xc3, 0x98, 0x7d, 0x36, 0x94, 0xcb, 0x9e, 0xaa, 0xa3, 0xbe, 0xae, 0x98, + 0xba, 0xe6, 0xae, 0x98, 0xba, 0xde, 0x83, 0x66, 0x2f, 0xe3, 0xb2, 0xea, 0xba, 0x2c, 0xee, 0x25, + 0xea, 0x54, 0x6f, 0x6c, 0xe5, 0x8c, 0x8d, 0x6a, 0xf4, 0x32, 0x9e, 0x7f, 0xb5, 0x7e, 0x58, 0x82, + 0x5a, 0x7e, 0xe8, 0x48, 0x36, 0x00, 0x8c, 0x2c, 0x2c, 0x4d, 0xc4, 0x8a, 0xc1, 0x25, 0x8f, 0xa1, + 0x99, 0x0e, 0x62, 0x33, 0x6b, 0x65, 0x44, 0xaa, 0x93, 0x1b, 0x67, 0x10, 0xab, 0xea, 0x35, 0x88, + 0x8d, 0xb4, 0xcd, 0x4f, 0x0f, 0x66, 0x5e, 0x70, 0x7a, 0xd0, 0xfa, 0x41, 0xc9, 0x3c, 0x95, 0x23, + 0x6b, 0x30, 0x2b, 0x22, 0x78, 0x5a, 0x8b, 0x24, 0x83, 0x6c, 0x40, 0x4d, 0x34, 0x46, 0x4a, 0x4d, + 0x6d, 0x47, 0x35, 0x95, 0x3f, 0x5e, 0xb6, 0x09, 0xff, 0x52, 0x86, 0xba, 0x71, 0xb8, 0x4a, 0x5e, + 0x83, 0x6a, 0x3f, 0x4d, 0x86, 0x03, 0xf7, 0xf4, 0x72, 0x4a, 0x33, 0xe6, 0x91, 0xb7, 0x7d, 0x29, + 0xc4, 0xbc, 0x7e, 0x5f, 0xae, 0xd5, 0x27, 0x33, 0x74, 0xde, 0xeb, 0xf7, 0xc5, 0xd2, 0x9c, 0xac, + 0x41, 0x55, 0x1e, 0x23, 0xd0, 0x60, 0x64, 0xdd, 0x92, 0x53, 0xc9, 0x43, 0x68, 0x88, 0x1e, 0xe5, + 0x36, 0x2b, 0xd3, 0x3a, 0x05, 0xe9, 0x20, 0xfe, 0x48, 0x59, 0x56, 0x80, 0xdc, 0xfa, 0xec, 0x55, + 0x80, 0x2d, 0xd5, 0x86, 0xdc, 0x0f, 0x73, 0x2f, 0x3a, 0xc8, 0x79, 0x1f, 0x1a, 0x83, 0x94, 0xa2, + 0xda, 0xc9, 0x9c, 0x3b, 0x61, 0xfb, 0xa1, 0xc7, 0xcf, 0x8e, 0x53, 0xba, 0xd5, 0xef, 0x8b, 0x2c, + 0x13, 0xf3, 0x8e, 0xfe, 0xdd, 0xfa, 0x69, 0x09, 0x2a, 0x27, 0xc9, 0xa0, 0x43, 0xde, 0x80, 0x2a, + 0xae, 0x9a, 0x0b, 0xdf, 0xa9, 0x53, 0xc0, 0xed, 0xcb, 0x76, 0x46, 0x23, 0x67, 0x1e, 0xb9, 0xdb, + 0x97, 0x64, 0x55, 0x1f, 0x4a, 0x97, 0x8d, 0xe3, 0x45, 0x75, 0x1a, 0xfd, 0x52, 0xc3, 0x26, 0xbc, + 0x50, 0xac, 0xc4, 0x72, 0xb7, 0x8d, 0x9a, 0xab, 0xe7, 0x12, 0xdb, 0x97, 0xad, 0x7f, 0x2e, 0xc1, + 0x2c, 0x9e, 0x7a, 0x17, 0xc6, 0x4b, 0x2f, 0x30, 0x5e, 0xfe, 0x32, 0xc6, 0x67, 0xbe, 0xc0, 0x38, + 0x79, 0x07, 0x96, 0xb2, 0x74, 0x18, 0xfb, 0x5e, 0x46, 0xc5, 0xec, 0x8f, 0xf1, 0xab, 0x9a, 0x3c, + 0x32, 0xf9, 0x69, 0xa1, 0xa7, 0xf4, 0x52, 0x10, 0x5a, 0x1f, 0x42, 0xe5, 0x29, 0x0b, 0x43, 0xf2, + 0x0a, 0xcc, 0xf9, 0x49, 0x1c, 0xb7, 0x77, 0x47, 0xda, 0xac, 0x68, 0xa2, 0x43, 0x72, 0x1d, 0x56, + 0x36, 0x22, 0x4c, 0x92, 0x5a, 0x5b, 0xb0, 0x32, 0xed, 0x3c, 0x92, 0x7c, 0x15, 0x16, 0x8a, 0xf3, + 0x4b, 0x5d, 0x1c, 0xb5, 0xe2, 0x46, 0xc1, 0x6a, 0x07, 0xad, 0x5f, 0xcc, 0x80, 0xad, 0x3d, 0x20, + 0xff, 0xb2, 0x24, 0xee, 0x0e, 0x23, 0x51, 0x9a, 0xc8, 0x06, 0x2c, 0xe1, 0xdc, 0x38, 0x48, 0x13, + 0x9f, 0x72, 0x4e, 0x03, 0x17, 0x0b, 0x4a, 0x69, 0xbd, 0xe2, 0x2c, 0x0a, 0xc6, 0xb1, 0xa6, 0x77, + 0x44, 0xf2, 0x2e, 0xc5, 0xc3, 0x48, 0x88, 0x06, 0x43, 0x9f, 0x06, 0x6e, 0x9a, 0x3c, 0xe7, 0x32, + 0x02, 0x9c, 0xc5, 0x78, 0x18, 0x1d, 0x2b, 0xba, 0x93, 0x3c, 0xe7, 0xe4, 0x35, 0x68, 0x0a, 0x59, + 0x96, 0xd1, 0xd4, 0x93, 0x55, 0x67, 0x06, 0x05, 0x17, 0xe2, 0x61, 0xd4, 0xce, 0x89, 0xe3, 0xb7, + 0x0a, 0x95, 0x89, 0x5b, 0x85, 0x35, 0xa8, 0xfb, 0x49, 0xec, 0x0f, 0xd3, 0x94, 0xc6, 0xfe, 0x25, + 0x16, 0xdf, 0x8a, 0x63, 0x92, 0xc8, 0x01, 0xac, 0x64, 0xac, 0x27, 0xc2, 0x1b, 0x97, 0xeb, 0xa2, + 0xd0, 0xe1, 0x56, 0x7f, 0xce, 0x3c, 0xe6, 0x57, 0x09, 0x20, 0xa6, 0x94, 0x1d, 0xc9, 0x7f, 0x72, + 0xcd, 0x21, 0x0a, 0x67, 0x50, 0x45, 0xbb, 0xd3, 0xa1, 0xd0, 0xc1, 0x87, 0xd1, 0x20, 0xd3, 0x47, + 0x96, 0x0d, 0x67, 0x21, 0x1d, 0xee, 0x14, 0x44, 0xf2, 0x71, 0x61, 0x14, 0x57, 0xdc, 0x5c, 0xba, + 0x53, 0xdd, 0xba, 0x8c, 0x1a, 0x15, 0xab, 0x6e, 0xe5, 0xee, 0xdc, 0xa4, 0x41, 0xdb, 0x6e, 0x00, + 0xec, 0xd2, 0xcc, 0x63, 0x21, 0x16, 0xfa, 0x3e, 0xac, 0x28, 0x5c, 0x3e, 0x56, 0x78, 0xe0, 0x72, + 0x04, 0xcb, 0x54, 0x13, 0x94, 0x39, 0x46, 0x75, 0xa5, 0xbd, 0x3b, 0x1a, 0xe7, 0xe3, 0xa3, 0xec, + 0x10, 0x3a, 0x4a, 0x61, 0x94, 0xb7, 0x7e, 0x0f, 0x56, 0x95, 0x21, 0x87, 0xf6, 0x59, 0x12, 0x77, + 0x86, 0xd1, 0x51, 0xaf, 0x1d, 0xab, 0x23, 0xa2, 0x7b, 0x50, 0x67, 0xea, 0xb7, 0x8e, 0xae, 0x9a, + 0x03, 0x9a, 0xd4, 0x0e, 0xc4, 0x36, 0x3b, 0x45, 0x9c, 0x1b, 0x0f, 0x23, 0x15, 0x05, 0xb5, 0x54, + 0x6b, 0x6a, 0xfd, 0xd7, 0x1d, 0x20, 0x93, 0x4e, 0x27, 0x8f, 0x61, 0x25, 0x88, 0x7a, 0x4c, 0x5d, + 0xc5, 0xc4, 0x34, 0x70, 0x07, 0x9e, 0x7f, 0xae, 0x22, 0x6e, 0xbb, 0x6c, 0x97, 0x1c, 0x22, 0xf9, + 0x5d, 0xc9, 0x3e, 0x16, 0x5c, 0x13, 0x75, 0xce, 0x06, 0x83, 0x1c, 0x55, 0x9e, 0x40, 0x49, 0xb6, + 0x44, 0xbd, 0x0b, 0xb6, 0x42, 0x05, 0x5e, 0xe6, 0xe5, 0x06, 0x31, 0x6a, 0x65, 0x30, 0x5e, 0x97, + 0xfc, 0x5d, 0x2f, 0xf3, 0x94, 0x3d, 0x8c, 0xdd, 0x71, 0xa0, 0xb2, 0x89, 0xc0, 0xca, 0x04, 0x50, + 0x72, 0x11, 0xf8, 0x1e, 0xdc, 0xcc, 0x92, 0xcc, 0x0b, 0x5d, 0x05, 0x4f, 0xb9, 0x1b, 0x26, 0x5e, + 0x20, 0xb6, 0x62, 0xb3, 0x79, 0x53, 0x97, 0x51, 0x64, 0x17, 0x25, 0x1c, 0x7e, 0x90, 0x78, 0x01, + 0x6e, 0xc7, 0x56, 0x46, 0x91, 0x54, 0xc2, 0xe6, 0xd0, 0xdc, 0x92, 0x09, 0xa1, 0x08, 0xf8, 0xba, + 0x36, 0x25, 0x77, 0x0c, 0x3c, 0xf6, 0x06, 0xfc, 0x2c, 0xc9, 0x04, 0x66, 0x1e, 0x31, 0x52, 0xdf, + 0xb6, 0xe0, 0x76, 0x15, 0xf3, 0x10, 0x37, 0xc0, 0x61, 0xe2, 0x7b, 0xa1, 0x2b, 0x47, 0x8a, 0x63, + 0xc0, 0x56, 0x9c, 0x06, 0x12, 0x65, 0x1c, 0x60, 0xee, 0xa6, 0x34, 0x4a, 0x32, 0x9a, 0x4b, 0xd5, + 0x64, 0xee, 0x4a, 0xaa, 0x16, 0x7b, 0x1d, 0x16, 0x87, 0x9c, 0xa6, 0xb2, 0xad, 0xa7, 0x97, 0x19, + 0x95, 0x1b, 0xce, 0x8a, 0xb3, 0x20, 0xc8, 0xa2, 0x9d, 0x78, 0xb0, 0x4d, 0xde, 0x86, 0xeb, 0xb2, + 0xa9, 0x21, 0xf5, 0xd2, 0x58, 0x03, 0x22, 0x8e, 0xdb, 0xce, 0x8a, 0x43, 0x90, 0x79, 0x20, 0x79, + 0xaa, 0x77, 0xff, 0x1f, 0x6e, 0x07, 0x8c, 0x8b, 0xb9, 0x0c, 0x65, 0x7d, 0xcf, 0x3f, 0xa3, 0xee, + 0x19, 0xcb, 0x94, 0x99, 0x06, 0x02, 0x6f, 0x4a, 0x11, 0x01, 0xd9, 0x11, 0x02, 0x4f, 0x58, 0x26, + 0x0d, 0x7e, 0x0b, 0x5e, 0x99, 0x44, 0x47, 0x8c, 0x73, 0x05, 0x5f, 0x40, 0xb8, 0x3d, 0x06, 0x3f, + 0x64, 0x9c, 0x4b, 0xfc, 0x3b, 0x60, 0x8f, 0x0f, 0xa3, 0x7f, 0x46, 0xfd, 0x73, 0xd1, 0xe6, 0xa6, + 0xe1, 0x5c, 0x3d, 0x86, 0x3b, 0x82, 0x79, 0xc8, 0xc5, 0x5a, 0x90, 0x67, 0x9e, 0x1e, 0x3d, 0xed, + 0xbb, 0x45, 0x44, 0x58, 0xc8, 0x11, 0xc6, 0xb4, 0xfb, 0x56, 0xa1, 0xca, 0x69, 0x3f, 0xa2, 0x71, + 0xc6, 0xf1, 0xd2, 0xb0, 0xe2, 0xe4, 0xdf, 0x32, 0xb9, 0x3c, 0x7d, 0x07, 0xb0, 0xa4, 0x93, 0xcb, + 0x93, 0x17, 0x00, 0x82, 0x1d, 0xd0, 0x30, 0xf3, 0x64, 0x48, 0x12, 0xc9, 0x46, 0x0a, 0x86, 0xe1, + 0x3d, 0xa8, 0x4b, 0xb6, 0xec, 0xee, 0x32, 0xf2, 0x25, 0x42, 0x76, 0xf0, 0x75, 0x58, 0x8c, 0x9e, + 0xf9, 0xbe, 0xcb, 0xe2, 0xc1, 0x30, 0x93, 0x4a, 0x56, 0xe4, 0xc8, 0x09, 0x72, 0x5b, 0x50, 0x51, + 0xd1, 0x3a, 0x58, 0x86, 0x9c, 0xd4, 0x76, 0x1d, 0x05, 0x9b, 0xb9, 0xa0, 0xd4, 0xa8, 0x25, 0x93, + 0x61, 0x96, 0xab, 0xbc, 0x51, 0x48, 0x1e, 0x21, 0x19, 0x75, 0xae, 0x41, 0x23, 0x8c, 0x30, 0xa7, + 0xa4, 0xd4, 0x4d, 0xd9, 0xba, 0x30, 0x12, 0x89, 0x84, 0x12, 0xdf, 0x84, 0x55, 0x33, 0xb4, 0xd1, + 0xb8, 0xba, 0x02, 0x8a, 0x38, 0xde, 0x04, 0x56, 0x9c, 0x9b, 0x45, 0x74, 0xb7, 0x0b, 0xfe, 0xa1, + 0x11, 0x6c, 0x12, 0x7c, 0xca, 0xb2, 0xc8, 0x1b, 0x08, 0xdc, 0x2d, 0x23, 0xd8, 0x10, 0xb7, 0x8d, + 0xac, 0x43, 0x4e, 0xde, 0x84, 0xe5, 0x88, 0xc5, 0xae, 0xcc, 0x8b, 0xc2, 0xd0, 0xaa, 0x1c, 0xb7, + 0x88, 0xc5, 0x07, 0x82, 0xd3, 0xd5, 0x16, 0x84, 0xb8, 0x77, 0x31, 0x21, 0x7e, 0x5b, 0x89, 0x7b, + 0x17, 0xa3, 0xe2, 0x0f, 0x61, 0x45, 0x68, 0x57, 0x09, 0x55, 0xc8, 0xbf, 0x22, 0x33, 0x3b, 0x62, + 0xb1, 0x83, 0xac, 0x11, 0x80, 0x77, 0x31, 0x09, 0xb8, 0xa3, 0x00, 0xde, 0xc5, 0x18, 0xe0, 0x18, + 0x96, 0x55, 0xac, 0xb9, 0x49, 0xcf, 0xd5, 0x25, 0xda, 0xbe, 0x8b, 0x33, 0xc3, 0xda, 0xc8, 0x54, + 0x34, 0xa5, 0xd2, 0x3b, 0x4b, 0x0a, 0x6c, 0x14, 0xff, 0xa2, 0x00, 0xe2, 0xa0, 0x8e, 0x54, 0xce, + 0x7b, 0x66, 0x01, 0x3c, 0x7c, 0xe6, 0xfb, 0xd3, 0x2b, 0xa7, 0x04, 0x9a, 0x95, 0x73, 0x6d, 0x02, + 0x68, 0x54, 0xce, 0x0f, 0xe1, 0x8e, 0x02, 0x86, 0x91, 0xde, 0xa7, 0x8f, 0x98, 0xbd, 0x8f, 0xe8, + 0x5b, 0x52, 0xe8, 0x20, 0x92, 0xbb, 0x47, 0xd3, 0xf4, 0x54, 0x0d, 0xa6, 0xfd, 0xd6, 0x54, 0x0d, + 0x46, 0x1b, 0xbe, 0x0d, 0x77, 0x64, 0xe8, 0x3c, 0xc3, 0x8b, 0x21, 0x97, 0x05, 0x17, 0xb2, 0x7c, + 0xe3, 0x59, 0x05, 0x7f, 0x64, 0x07, 0xb2, 0x6e, 0xa0, 0x90, 0xbc, 0x3c, 0x6a, 0x07, 0x17, 0xa2, + 0x80, 0xef, 0xa7, 0x49, 0xd4, 0x7d, 0x44, 0x76, 0xe0, 0xde, 0x0b, 0x14, 0x04, 0x8c, 0x9f, 0xdb, + 0x14, 0x55, 0xac, 0x4e, 0x57, 0xb1, 0xcb, 0xf8, 0x39, 0xd9, 0x83, 0xb5, 0x17, 0x28, 0xc1, 0x5a, + 0x66, 0xf7, 0x50, 0xcb, 0xed, 0xe9, 0x5a, 0xb0, 0x98, 0x5d, 0xdd, 0x19, 0x7d, 0x36, 0xd8, 0xbf, + 0xaa, 0x33, 0xea, 0x80, 0x70, 0x5a, 0x67, 0xe4, 0x65, 0x51, 0xae, 0xe2, 0x6c, 0x5a, 0x67, 0xe4, + 0xb5, 0x91, 0x52, 0x72, 0x04, 0xaf, 0x5d, 0xa5, 0xe4, 0x19, 0xe3, 0x2c, 0x13, 0xcb, 0xcd, 0x24, + 0xa0, 0xdc, 0x66, 0xa8, 0x6a, 0x6d, 0x9a, 0xaa, 0x4f, 0xa4, 0x60, 0x47, 0xc8, 0x91, 0x2e, 0xbc, + 0x71, 0x95, 0xc2, 0x80, 0x71, 0xdf, 0x4b, 0x83, 0x5c, 0xe5, 0xa7, 0xa8, 0xb2, 0x35, 0x4d, 0xe5, + 0xae, 0x16, 0x95, 0x4a, 0xf7, 0xe1, 0xfe, 0x84, 0x52, 0x2c, 0xbf, 0xcf, 0xa8, 0x9f, 0x77, 0xf6, + 0x7c, 0x9a, 0xcf, 0x45, 0x3d, 0xff, 0x84, 0xfa, 0xaa, 0xb7, 0x07, 0xf0, 0xea, 0x74, 0x3d, 0x78, + 0xa2, 0xc5, 0x73, 0x55, 0x21, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x08, 0xe5, 0x94, 0xb6, 0x0f, 0xe0, + 0x76, 0x2f, 0xe3, 0x6e, 0xac, 0x8f, 0xca, 0x22, 0x1a, 0x25, 0xe9, 0xa5, 0x1b, 0x27, 0x78, 0xb0, + 0x61, 0xff, 0xa8, 0x84, 0x77, 0x4f, 0x37, 0x7b, 0x19, 0xef, 0xc8, 0x03, 0x32, 0x29, 0xd0, 0x91, + 0x7c, 0x51, 0x08, 0x0d, 0x78, 0xc6, 0xe2, 0x4b, 0x57, 0x02, 0xff, 0x58, 0x02, 0x97, 0x34, 0xf0, + 0x84, 0xc5, 0x97, 0x78, 0xde, 0x22, 0xd6, 0x14, 0xe3, 0x10, 0x6d, 0xed, 0xc7, 0x12, 0xb4, 0x6c, + 0x82, 0xb4, 0xa5, 0x87, 0xb0, 0x62, 0xc0, 0x82, 0xa8, 0xa7, 0x0c, 0xfd, 0x89, 0xc4, 0x58, 0x1a, + 0xb3, 0x1b, 0xf5, 0xa4, 0x9d, 0x47, 0x70, 0x63, 0x0c, 0xa0, 0xcd, 0xfc, 0xa9, 0x84, 0x10, 0x03, + 0xa2, 0xad, 0xec, 0xc0, 0x5d, 0x01, 0x12, 0xa9, 0x7c, 0x85, 0x47, 0xfe, 0x4c, 0x6e, 0x5b, 0x56, + 0x7b, 0x19, 0x17, 0xf9, 0x3c, 0xcd, 0x29, 0xef, 0x82, 0x3d, 0xaa, 0xc4, 0xf0, 0xcb, 0x9f, 0x4b, + 0xf8, 0x8a, 0x01, 0x2f, 0x5c, 0xf3, 0x4d, 0x58, 0x9d, 0x02, 0xd4, 0x96, 0xff, 0x42, 0x42, 0x6f, + 0x8c, 0x41, 0xb5, 0x55, 0xe5, 0xd7, 0x02, 0x5c, 0xf8, 0xe8, 0x2f, 0x25, 0x72, 0xd9, 0x40, 0xe6, + 0x6e, 0x7a, 0x1f, 0x6e, 0x4d, 0xc2, 0xb4, 0xc9, 0x9f, 0x48, 0xe0, 0xf5, 0x51, 0xe0, 0xd8, 0xe0, + 0x17, 0x49, 0x8f, 0x61, 0x19, 0x71, 0xfb, 0xaf, 0x24, 0x4c, 0x0c, 0xbe, 0x4e, 0x77, 0xc1, 0x92, + 0x0b, 0xca, 0x11, 0x88, 0x51, 0x6e, 0xfe, 0xba, 0x18, 0xfc, 0x89, 0x3a, 0xf3, 0x21, 0xdc, 0x99, + 0x02, 0x93, 0x27, 0x61, 0xa2, 0xd0, 0xda, 0x3f, 0x95, 0x60, 0x7b, 0x0c, 0x8c, 0x12, 0xfb, 0x2c, + 0xa4, 0x62, 0xad, 0x37, 0xa9, 0x81, 0xab, 0xf7, 0x5a, 0x8f, 0xec, 0xbf, 0x91, 0xf8, 0x1b, 0xa3, + 0xf8, 0x2e, 0xf2, 0xbb, 0x8f, 0xa6, 0xdb, 0x57, 0x68, 0xac, 0xb8, 0x7f, 0x3b, 0xd5, 0xbe, 0xc4, + 0x63, 0xc1, 0x5d, 0x07, 0x4b, 0x6b, 0x50, 0x95, 0x24, 0xb6, 0xff, 0x4e, 0x82, 0x16, 0x24, 0x48, + 0x16, 0x8d, 0x8e, 0xe9, 0x22, 0x5d, 0x09, 0xb5, 0x5f, 0xff, 0xbe, 0x18, 0xc7, 0xa2, 0x06, 0x2a, + 0xcf, 0xaa, 0x70, 0x17, 0xb0, 0x20, 0xd2, 0x48, 0x9c, 0x92, 0xfe, 0x41, 0xa2, 0x88, 0x44, 0xed, + 0x46, 0x12, 0x87, 0x93, 0xd1, 0x07, 0xf0, 0x8a, 0x01, 0x92, 0x76, 0xb0, 0x96, 0x08, 0x6a, 0xc4, + 0xed, 0x9f, 0x15, 0x21, 0x87, 0x50, 0x34, 0x26, 0x6a, 0xc8, 0x7e, 0xc6, 0x65, 0xf5, 0x9e, 0x0e, + 0x57, 0xa5, 0x28, 0xe2, 0xf6, 0xcf, 0xa5, 0x86, 0x5b, 0x13, 0x1a, 0x64, 0x15, 0x3a, 0xe4, 0x3a, + 0x5b, 0x84, 0x12, 0x0c, 0x77, 0xb3, 0xe9, 0xff, 0x58, 0x64, 0x4b, 0x3b, 0xb8, 0x10, 0xd1, 0x6e, + 0x34, 0x7e, 0x4b, 0xe6, 0x6a, 0x0e, 0x9c, 0x6c, 0xfe, 0x2f, 0x24, 0xdc, 0x2e, 0xe0, 0x63, 0x1d, + 0xf8, 0x08, 0xee, 0x5f, 0xa5, 0xa2, 0xe8, 0xc2, 0x2f, 0xa5, 0x96, 0xdb, 0x53, 0xb4, 0xe4, 0x9d, + 0x50, 0x83, 0x76, 0x9a, 0x0e, 0x33, 0x6a, 0x6a, 0x89, 0xb8, 0xfd, 0x4f, 0xc5, 0xa0, 0x6d, 0x0b, + 0x76, 0x0e, 0x3e, 0xe4, 0x3a, 0xf9, 0x4c, 0x98, 0xea, 0x7e, 0xc4, 0xed, 0x5f, 0x15, 0xc9, 0x57, + 0x00, 0x65, 0xff, 0x0f, 0x79, 0xeb, 0x67, 0xa5, 0x7c, 0xeb, 0x6b, 0x6c, 0xf3, 0xc9, 0xab, 0xd0, + 0x8c, 0x58, 0x7c, 0xd2, 0x3d, 0x92, 0x27, 0x06, 0xf9, 0x31, 0x4b, 0x43, 0x52, 0x85, 0x68, 0x07, + 0x83, 0x65, 0xc0, 0x06, 0x34, 0x64, 0x31, 0x75, 0x3f, 0x1b, 0xd2, 0x21, 0xcd, 0xa5, 0xe5, 0x16, + 0x7b, 0x59, 0x73, 0xbf, 0x23, 0x98, 0x0a, 0xf4, 0x2e, 0xd8, 0x39, 0xe8, 0x34, 0xa5, 0xde, 0x39, + 0x4d, 0x73, 0x98, 0xda, 0xe9, 0x6a, 0xfe, 0xb6, 0x64, 0x4b, 0x60, 0xeb, 0x73, 0xa8, 0x74, 0x93, + 0x34, 0x23, 0xaf, 0xc3, 0xfc, 0x29, 0x1e, 0x7b, 0xf1, 0xe9, 0xe7, 0x7e, 0x8a, 0x49, 0x5e, 0x85, + 0x05, 0xc6, 0xf1, 0x9e, 0xd8, 0x0b, 0x05, 0x50, 0xbd, 0x80, 0x1a, 0x25, 0xbe, 0xe4, 0xc1, 0xed, + 0x1f, 0x96, 0xc1, 0x92, 0xef, 0x23, 0xf7, 0x53, 0x2f, 0xa2, 0xdb, 0xc9, 0x30, 0x0e, 0xc8, 0x43, + 0xa8, 0x18, 0xf7, 0x8a, 0xd7, 0xcd, 0x57, 0x94, 0x28, 0x60, 0xdc, 0x33, 0xa0, 0x20, 0x69, 0x41, + 0x6d, 0x18, 0x9f, 0x0a, 0x16, 0x0d, 0x46, 0xce, 0xcf, 0x0a, 0x32, 0xb9, 0x01, 0x73, 0xf2, 0x65, + 0x97, 0x72, 0x86, 0xfa, 0x22, 0xeb, 0x50, 0xf3, 0xbd, 0xd0, 0xdf, 0x1f, 0xc6, 0x3e, 0x9f, 0x72, + 0x9a, 0x57, 0x30, 0xc9, 0xff, 0x83, 0x7a, 0x4f, 0x34, 0xd2, 0xc5, 0xe7, 0x09, 0xea, 0x65, 0xef, + 0xc8, 0x81, 0x3b, 0xb2, 0xf1, 0x25, 0x03, 0xf9, 0x06, 0x2c, 0xf8, 0xd1, 0x40, 0x9e, 0x1d, 0x18, + 0xd7, 0x26, 0xea, 0x29, 0x2e, 0xca, 0xec, 0x44, 0x83, 0x5d, 0x2f, 0xf3, 0xf0, 0x3e, 0xaf, 0xee, + 0x17, 0x1f, 0xad, 0x1f, 0x95, 0xa0, 0x6e, 0x38, 0xe5, 0x45, 0xfe, 0x40, 0x81, 0x09, 0x7f, 0x7c, + 0x0d, 0x66, 0x79, 0xe6, 0xa9, 0x91, 0xc9, 0xdf, 0xff, 0x8e, 0xfb, 0xd9, 0x91, 0x42, 0x64, 0x1d, + 0x66, 0x68, 0xac, 0xc7, 0xe9, 0x2a, 0x59, 0x21, 0xd2, 0xfa, 0x4d, 0x09, 0xe6, 0x24, 0x87, 0xbc, + 0x01, 0xb5, 0xde, 0x30, 0xf6, 0x5d, 0xbc, 0x29, 0x99, 0x3c, 0x62, 0xaf, 0x0a, 0xe6, 0x2e, 0xe5, + 0xfe, 0xc4, 0x31, 0x6b, 0xf9, 0x8b, 0x8e, 0x59, 0xcd, 0xf3, 0xe7, 0x99, 0x17, 0x9d, 0x3f, 0xbf, + 0x01, 0xb3, 0xe8, 0x70, 0xf5, 0xb6, 0x71, 0x69, 0xa2, 0xe5, 0x8e, 0xe4, 0x17, 0xa1, 0x38, 0xfb, + 0xa2, 0x50, 0xfc, 0x36, 0x34, 0xf0, 0x74, 0x9e, 0xc5, 0x7d, 0xd1, 0x05, 0xf2, 0x10, 0x16, 0xfa, + 0xea, 0x5b, 0x1e, 0xf5, 0x4e, 0xf6, 0xb2, 0xd1, 0x37, 0x00, 0xad, 0x27, 0x50, 0xd7, 0x0a, 0xba, + 0x34, 0x23, 0xef, 0x43, 0x73, 0x04, 0xaf, 0xb3, 0x4a, 0x5d, 0xf3, 0x98, 0xb6, 0x9c, 0x05, 0x53, + 0x11, 0x6f, 0xfd, 0xa0, 0x04, 0x73, 0xf2, 0x31, 0x2d, 0x79, 0xc7, 0x68, 0x45, 0xfe, 0x2c, 0x31, + 0xef, 0xac, 0x61, 0xaf, 0x68, 0x4c, 0x97, 0x66, 0xfc, 0x25, 0xcf, 0xc0, 0x6d, 0x98, 0x7f, 0x46, + 0x53, 0x7c, 0x94, 0x29, 0xb3, 0x42, 0x7f, 0xb6, 0xde, 0x84, 0x9a, 0x68, 0x8b, 0x7c, 0x90, 0xf8, + 0x85, 0x57, 0x3a, 0xad, 0x3f, 0x2a, 0xc1, 0xbc, 0x7a, 0xfe, 0x4b, 0x1e, 0x00, 0x0c, 0xd2, 0xe4, + 0xd3, 0x91, 0x4e, 0x2f, 0x16, 0x10, 0xf9, 0x34, 0xb3, 0x26, 0x44, 0xe4, 0x15, 0xcf, 0x63, 0xb8, + 0xd1, 0xa7, 0x31, 0x4d, 0x3d, 0xb1, 0x13, 0x50, 0x67, 0x07, 0xf2, 0x25, 0x57, 0x19, 0x5f, 0x72, + 0xad, 0xe4, 0x5c, 0x79, 0x82, 0x20, 0x9f, 0x74, 0xbd, 0x5c, 0x7d, 0x79, 0x1d, 0x9a, 0xa3, 0x8f, + 0x8c, 0xc9, 0x8a, 0x3e, 0x67, 0x97, 0xa7, 0x99, 0xf2, 0x63, 0xe3, 0x0f, 0x66, 0xe4, 0xff, 0x1b, + 0xe0, 0xa5, 0xe5, 0x12, 0x2c, 0x88, 0xbf, 0xf9, 0x0b, 0x18, 0xeb, 0x9a, 0x26, 0xe5, 0x57, 0x92, + 0x56, 0x49, 0x93, 0xf2, 0xfb, 0x38, 0xab, 0x4c, 0x96, 0x61, 0x51, 0x90, 0x8c, 0x9b, 0x28, 0x6b, + 0x86, 0x34, 0xa0, 0x8a, 0xda, 0x92, 0x41, 0xc7, 0xaa, 0x90, 0x05, 0xa8, 0x89, 0x2f, 0xbc, 0xc4, + 0xb0, 0x66, 0x73, 0x25, 0xb8, 0x8d, 0xdf, 0xea, 0xf7, 0xad, 0x39, 0x2d, 0xff, 0x71, 0xc2, 0x62, + 0x6b, 0x5e, 0x7f, 0x3d, 0x65, 0x61, 0x68, 0x55, 0xc9, 0x0d, 0x20, 0xe2, 0x6b, 0xf4, 0xb5, 0xb1, + 0x55, 0x23, 0x36, 0xac, 0x98, 0x74, 0xfd, 0x1e, 0xd4, 0x02, 0x42, 0xa0, 0x29, 0x38, 0xc5, 0xfd, + 0x9c, 0x55, 0x27, 0xab, 0x70, 0x03, 0x69, 0x13, 0x4f, 0x7d, 0xac, 0x86, 0xb6, 0x27, 0x4a, 0xb8, + 0xb5, 0x40, 0x9a, 0x00, 0xe2, 0x4b, 0xe6, 0x94, 0xd5, 0xd4, 0xdf, 0x72, 0xa4, 0xad, 0x45, 0xb2, + 0x08, 0xf5, 0xe2, 0x7b, 0xd3, 0xb2, 0x74, 0x03, 0x47, 0x7d, 0x6e, 0x2d, 0x69, 0xcf, 0x18, 0xef, + 0x6e, 0xad, 0x15, 0xf2, 0x0a, 0xd8, 0x0a, 0x3d, 0x71, 0xb5, 0x61, 0x5d, 0xdf, 0x78, 0x0f, 0x1a, + 0xe6, 0xeb, 0x52, 0x61, 0xeb, 0xd8, 0xe3, 0xfc, 0xe4, 0x2c, 0x4d, 0x86, 0xfd, 0x33, 0xeb, 0x9a, + 0x70, 0x65, 0x6e, 0xc7, 0x2a, 0x91, 0x2a, 0x54, 0x9e, 0x78, 0xfc, 0xcc, 0x2a, 0x6f, 0x7c, 0x13, + 0x16, 0xc7, 0x5e, 0x15, 0x0b, 0x66, 0xe7, 0xa8, 0xb3, 0x67, 0x5d, 0x13, 0xbf, 0xf6, 0xb7, 0xba, + 0x27, 0x56, 0x89, 0xac, 0x80, 0xf5, 0xa4, 0xfd, 0xd1, 0x13, 0x77, 0xe7, 0xe8, 0xf0, 0xd8, 0xd9, + 0xeb, 0x76, 0xdb, 0x47, 0x1d, 0xab, 0xbc, 0xf1, 0x00, 0xa0, 0x78, 0xc6, 0x46, 0x6a, 0x30, 0x8b, + 0x27, 0x39, 0x12, 0x78, 0xc2, 0x9e, 0x7e, 0x62, 0x95, 0x48, 0x1d, 0xe6, 0xd5, 0xd4, 0x6e, 0x95, + 0x37, 0x1e, 0xc1, 0xa2, 0xda, 0xbe, 0x89, 0xbe, 0x3d, 0x65, 0xb1, 0x98, 0x6a, 0x48, 0xbb, 0xf3, + 0xc9, 0xd6, 0x41, 0x7b, 0xd7, 0x6d, 0x77, 0x76, 0xf7, 0xbe, 0xef, 0x3e, 0x6d, 0x77, 0x76, 0xa5, + 0x86, 0x27, 0x9d, 0xee, 0xf7, 0xac, 0xd2, 0xc6, 0x29, 0xac, 0x4c, 0x7b, 0x78, 0x4a, 0x6e, 0xc3, + 0x4d, 0x8d, 0xdc, 0x6d, 0x77, 0x4f, 0xb6, 0x3a, 0x3b, 0x7b, 0xee, 0xe1, 0xde, 0x89, 0xd3, 0xde, + 0xb1, 0xae, 0x91, 0x39, 0x28, 0x1f, 0xbc, 0x6d, 0x95, 0xf0, 0xef, 0xa6, 0x55, 0x26, 0x00, 0x73, + 0x3b, 0x47, 0xdd, 0x76, 0x67, 0xcf, 0x9a, 0x11, 0x71, 0xd4, 0xee, 0x74, 0xf6, 0x1c, 0xf7, 0xd8, + 0x39, 0xda, 0xfd, 0xee, 0xce, 0x89, 0x55, 0xd9, 0x78, 0xbb, 0x78, 0x42, 0x8b, 0x5d, 0x59, 0x01, + 0xab, 0x1d, 0x3f, 0xf3, 0x42, 0x16, 0xe4, 0x34, 0xeb, 0x9a, 0xe8, 0xcb, 0x91, 0xac, 0xa7, 0x56, + 0x69, 0xe3, 0xbb, 0xc5, 0xfb, 0x4e, 0x84, 0xdc, 0x84, 0x65, 0xf3, 0x5b, 0xc1, 0xad, 0x6b, 0xa2, + 0x87, 0x26, 0x43, 0x1e, 0xa3, 0x48, 0x97, 0x9a, 0xf4, 0x93, 0x64, 0xf0, 0xd4, 0x2a, 0x6f, 0xfc, + 0xaa, 0x04, 0x55, 0xfd, 0x2c, 0xa8, 0xc8, 0xa4, 0x98, 0xa6, 0x18, 0xe3, 0xd7, 0xc8, 0x75, 0x58, + 0xc2, 0x9c, 0xa0, 0xbd, 0xec, 0x68, 0x98, 0x29, 0x72, 0x49, 0xc7, 0x92, 0xc3, 0xfa, 0x67, 0x06, + 0xbd, 0x4c, 0x2c, 0x68, 0xc8, 0xc4, 0x93, 0x8f, 0x3b, 0xac, 0x19, 0x61, 0x16, 0xf3, 0x2e, 0xce, + 0x58, 0x4e, 0xad, 0x90, 0x5b, 0x70, 0x7d, 0x44, 0x6d, 0xce, 0x9a, 0x25, 0x77, 0xe0, 0x96, 0x06, + 0x4c, 0xb2, 0xe7, 0x36, 0xd6, 0xa0, 0x61, 0x3e, 0x47, 0xd2, 0x16, 0x45, 0x78, 0xc9, 0x26, 0x6f, + 0x7c, 0x03, 0x96, 0x26, 0x9e, 0x3e, 0x88, 0x81, 0x69, 0x77, 0xa4, 0x4f, 0x0f, 0xdb, 0x1d, 0xf7, + 0x70, 0xeb, 0xfb, 0x56, 0x49, 0x60, 0xb7, 0x0f, 0x8e, 0x8e, 0x0e, 0xdd, 0xfd, 0xf6, 0xc1, 0xc9, + 0x9e, 0x63, 0x95, 0x37, 0x36, 0xc6, 0xb0, 0x18, 0xa0, 0x22, 0xd0, 0x8e, 0x76, 0xb6, 0x0e, 0xac, + 0x6b, 0x62, 0x5c, 0x3f, 0x3a, 0x38, 0xda, 0xde, 0x3a, 0xb0, 0x4a, 0x1b, 0xdb, 0xb0, 0x34, 0x71, + 0x6d, 0x2b, 0x32, 0x61, 0x3f, 0x49, 0x7d, 0x2a, 0x49, 0x32, 0xb0, 0xb6, 0x86, 0x59, 0x62, 0x95, + 0x44, 0xba, 0x23, 0x4b, 0x16, 0x14, 0x16, 0xf7, 0xad, 0xf2, 0xc6, 0xb7, 0x61, 0x71, 0x6c, 0xf1, + 0x24, 0x52, 0x67, 0x3f, 0x09, 0xc3, 0xe4, 0xb9, 0x90, 0xc0, 0x4c, 0x3a, 0x4e, 0xa9, 0x4f, 0x03, + 0xf1, 0x59, 0x12, 0x59, 0xbe, 0x83, 0x17, 0x6b, 0x99, 0x93, 0x3c, 0xb7, 0xca, 0x1b, 0x47, 0x60, + 0x8d, 0x2f, 0x58, 0xc8, 0x3c, 0xcc, 0xb4, 0xe3, 0xcc, 0xba, 0x26, 0x1a, 0xbe, 0x1f, 0x26, 0x5e, + 0x26, 0xf3, 0x62, 0x97, 0xfa, 0x2c, 0xf2, 0x42, 0xab, 0x2c, 0x0a, 0xc9, 0xae, 0x97, 0xd1, 0x13, + 0x16, 0x51, 0x59, 0x04, 0x77, 0x87, 0xf2, 0xbe, 0xcf, 0xaa, 0x88, 0x9c, 0x19, 0x5b, 0xbe, 0x88, + 0x2e, 0x88, 0x5d, 0x83, 0xec, 0x3e, 0x5a, 0xe3, 0x56, 0x09, 0x5d, 0x21, 0x66, 0x35, 0x6e, 0x95, + 0xb7, 0xbf, 0xfa, 0xeb, 0xdf, 0xde, 0x2d, 0xfd, 0xeb, 0x6f, 0xef, 0x96, 0xfe, 0xfd, 0xb7, 0x77, + 0x4b, 0x3f, 0xfe, 0x8f, 0xbb, 0xd7, 0xe0, 0xba, 0x9f, 0x44, 0x0f, 0xc4, 0x8c, 0xe7, 0x7b, 0x83, + 0x07, 0x19, 0x0b, 0x4e, 0x71, 0x0e, 0x38, 0x2e, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xda, + 0xf0, 0x81, 0x40, 0x8a, 0x36, 0x00, 0x00, } diff --git a/go-tipb/expression.pb.go b/go-tipb/expression.pb.go index ec4ae9fb..de482d56 100644 --- a/go-tipb/expression.pb.go +++ b/go-tipb/expression.pb.go @@ -627,7 +627,10 @@ const ( ScalarFuncSig_IfVectorFloat32 ScalarFuncSig = 5161 ScalarFuncSig_CaseWhenVectorFloat32 ScalarFuncSig = 5162 // fts - ScalarFuncSig_FTSMatchWord ScalarFuncSig = 5201 + ScalarFuncSig_FTSMatchWord ScalarFuncSig = 5201 + ScalarFuncSig_FTSMatchExpression ScalarFuncSig = 5202 + ScalarFuncSig_FTSMatchPrefix ScalarFuncSig = 5203 + ScalarFuncSig_FTSMatchRegexp ScalarFuncSig = 5204 // time ScalarFuncSig_DateFormatSig ScalarFuncSig = 6001 ScalarFuncSig_DateLiteral ScalarFuncSig = 6002 @@ -1265,6 +1268,9 @@ var ScalarFuncSig_name = map[int32]string{ 5161: "IfVectorFloat32", 5162: "CaseWhenVectorFloat32", 5201: "FTSMatchWord", + 5202: "FTSMatchExpression", + 5203: "FTSMatchPrefix", + 5204: "FTSMatchRegexp", 6001: "DateFormatSig", 6002: "DateLiteral", 6003: "DateDiff", @@ -1899,6 +1905,9 @@ var ScalarFuncSig_value = map[string]int32{ "IfVectorFloat32": 5161, "CaseWhenVectorFloat32": 5162, "FTSMatchWord": 5201, + "FTSMatchExpression": 5202, + "FTSMatchPrefix": 5203, + "FTSMatchRegexp": 5204, "DateFormatSig": 6001, "DateLiteral": 6002, "DateDiff": 6003, @@ -3579,7 +3588,7 @@ var ( func init() { proto.RegisterFile("expression.proto", fileDescriptorExpression) } var fileDescriptorExpression = []byte{ - // 5853 bytes of a gzipped FileDescriptorProto + // 5880 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x7b, 0x67, 0x78, 0x24, 0xc5, 0xb9, 0x2e, 0xb3, 0x81, 0xdd, 0xed, 0x4d, 0x45, 0xb3, 0x8b, 0x86, 0x35, 0x5e, 0x49, 0xc8, 0xf7, 0x4a, 0xc6, 0xf7, 0x6a, 0x16, 0x81, 0x47, 0xfe, 0x71, 0xd2, 0xac, 0x12, 0xe3, 0x23, 0x69, 0xb5, @@ -3643,7 +3652,7 @@ var fileDescriptorExpression = []byte{ 0xf0, 0xa0, 0xc0, 0x3d, 0x01, 0x85, 0x5d, 0xcd, 0x94, 0xbe, 0x61, 0xe1, 0x96, 0x39, 0xbb, 0x0a, 0x7e, 0x06, 0xb9, 0x53, 0x64, 0x57, 0x37, 0x53, 0x16, 0x06, 0x9d, 0x12, 0xbb, 0xa6, 0x99, 0x3a, 0x8a, 0xfc, 0x62, 0xe0, 0xd8, 0xb5, 0x08, 0x31, 0xe8, 0xe8, 0xf6, 0x75, 0x08, 0x31, 0x2c, 0xa6, - 0x64, 0xf3, 0x7a, 0xe8, 0xd7, 0x57, 0x1a, 0x76, 0xee, 0xf0, 0x21, 0x57, 0x4f, 0x58, 0xcb, 0x63, + 0x64, 0xf3, 0x7a, 0xe8, 0xd7, 0x57, 0x1a, 0x76, 0xee, 0xf0, 0x21, 0x6f, 0x4c, 0x58, 0xcb, 0x63, 0x6b, 0x8f, 0xbd, 0xd2, 0x5a, 0x3a, 0xe6, 0x85, 0x55, 0x5e, 0x70, 0x27, 0x5d, 0x5e, 0x64, 0xfb, 0x50, 0x71, 0xf6, 0x38, 0xa1, 0xc8, 0x7a, 0x22, 0x13, 0x66, 0x3d, 0xc1, 0x12, 0x54, 0x9c, 0x06, 0x19, 0xe5, 0x4e, 0x99, 0xcd, 0xb3, 0xf7, 0xb7, 0x56, 0x1a, 0x48, 0xd5, 0xfb, 0x7c, 0x7b, 0x95, @@ -3831,119 +3840,121 @@ var fileDescriptorExpression = []byte{ 0x44, 0x1e, 0xac, 0x76, 0xa1, 0x1a, 0xe6, 0x30, 0x32, 0x87, 0x97, 0xab, 0x3a, 0xec, 0x56, 0xeb, 0xa0, 0xb9, 0x8c, 0x8d, 0xca, 0xd5, 0x88, 0x2c, 0xb7, 0xbb, 0x71, 0xb6, 0xd7, 0xa0, 0x77, 0xd9, 0xc9, 0x38, 0x7a, 0xad, 0x1c, 0x32, 0xb5, 0x0d, 0x8d, 0xcb, 0xae, 0xeb, 0xa0, 0xb9, 0xd6, 0x9f, - 0xcf, 0x0d, 0xd1, 0xd2, 0x7a, 0x24, 0x6d, 0x2c, 0x1f, 0xea, 0xc0, 0x41, 0xd2, 0x11, 0xbc, 0xdf, - 0x0f, 0x2a, 0x0e, 0x66, 0xeb, 0xbb, 0x9d, 0xb4, 0xa6, 0x11, 0x36, 0xe8, 0x0a, 0x1e, 0xd0, 0xd6, - 0xb8, 0x53, 0x6d, 0xf1, 0x78, 0xaf, 0x3b, 0x39, 0xc9, 0xde, 0xeb, 0xd4, 0x77, 0xd5, 0x54, 0xf5, - 0x80, 0xde, 0xef, 0xa4, 0xf1, 0xa2, 0xa6, 0x9c, 0x49, 0x46, 0xf0, 0x41, 0x27, 0x0e, 0x6f, 0xaa, - 0xfe, 0x1b, 0x84, 0x1f, 0x76, 0xda, 0x5f, 0xb5, 0x92, 0x5a, 0xa8, 0xff, 0x1a, 0xf1, 0x47, 0x70, - 0x5a, 0xb7, 0x31, 0x82, 0x8f, 0xe1, 0x54, 0x0a, 0x66, 0x59, 0x7d, 0xd2, 0x49, 0x23, 0xa2, 0x16, - 0xd3, 0x78, 0xbc, 0x4f, 0x3b, 0x69, 0xfd, 0xd2, 0xae, 0x0c, 0xfc, 0x59, 0x27, 0xed, 0x71, 0xa8, - 0x7b, 0xec, 0x73, 0x3c, 0x1e, 0xe1, 0xd7, 0x02, 0xf6, 0x45, 0x27, 0x6e, 0x8f, 0x5d, 0xaf, 0x26, - 0x38, 0xfb, 0xb2, 0x53, 0x1e, 0x14, 0x0b, 0xbe, 0x57, 0x64, 0x7f, 0x47, 0x82, 0x86, 0xdc, 0x42, - 0xe0, 0x2b, 0xe4, 0xd8, 0x14, 0xed, 0x2c, 0x87, 0x7c, 0x4f, 0x4c, 0xb1, 0xe3, 0x52, 0xb8, 0x50, - 0xa7, 0xe7, 0x61, 0xa7, 0xc2, 0xd9, 0xf1, 0x29, 0x5c, 0xd0, 0xfb, 0x9b, 0x69, 0x4c, 0x33, 0x41, - 0x89, 0x9d, 0x90, 0xc2, 0xf5, 0xbf, 0x04, 0xfc, 0x9a, 0x20, 0xec, 0xc4, 0x14, 0x6e, 0x80, 0x9c, - 0x19, 0x98, 0x9c, 0x04, 0x93, 0x5e, 0x67, 0x66, 0xc3, 0xa4, 0xf4, 0x79, 0x32, 0x7c, 0x02, 0x38, - 0x92, 0xf3, 0xa3, 0xd9, 0x29, 0xf5, 0xf6, 0x7f, 0x70, 0x27, 0x60, 0xa7, 0xa6, 0x68, 0x44, 0x48, - 0x44, 0x3e, 0x87, 0x68, 0x83, 0x7e, 0x5a, 0x8a, 0xca, 0x43, 0x43, 0x7e, 0x4d, 0x00, 0x3d, 0x1d, - 0x71, 0x08, 0xed, 0x75, 0x66, 0xd8, 0x19, 0x88, 0x43, 0x2d, 0xe5, 0xe7, 0xcc, 0x14, 0x75, 0x1f, - 0x8f, 0x67, 0xa5, 0x28, 0x57, 0xf4, 0x18, 0x73, 0x7b, 0x76, 0x8a, 0xea, 0x31, 0x0a, 0x6b, 0xd7, - 0xe7, 0x80, 0xd3, 0x00, 0x17, 0xb2, 0x92, 0xd8, 0xb9, 0x29, 0xec, 0x6f, 0x67, 0x42, 0x4a, 0x2c, - 0xee, 0xf1, 0xc2, 0x2a, 0x3b, 0x2f, 0x45, 0x4b, 0x57, 0x04, 0xf4, 0x6b, 0x82, 0xf0, 0xf3, 0x53, - 0x91, 0x53, 0x02, 0x46, 0xe2, 0xfb, 0xe0, 0xaf, 0x10, 0x1a, 0xaa, 0x75, 0x94, 0xa7, 0x1f, 0x34, - 0xa2, 0xb8, 0x63, 0xbb, 0x00, 0xb4, 0xb1, 0x04, 0x5f, 0x98, 0x92, 0x87, 0x80, 0x8a, 0x29, 0xde, - 0x8b, 0xd0, 0xe5, 0xb1, 0x7c, 0x0f, 0xdc, 0x6e, 0x01, 0xff, 0xb1, 0x7c, 0x0f, 0xa9, 0x84, 0xc2, - 0xa9, 0x54, 0xf5, 0xb0, 0x5c, 0x9c, 0xa2, 0xa2, 0x6a, 0x94, 0xa8, 0xf1, 0xb9, 0x04, 0xc2, 0x4c, - 0xb1, 0x48, 0x4e, 0x04, 0xb6, 0xe7, 0xc5, 0xfa, 0xd7, 0x9f, 0x14, 0x55, 0x5c, 0x5c, 0xa8, 0x5e, - 0x28, 0x97, 0x21, 0x5c, 0xa6, 0x58, 0x44, 0xb1, 0x39, 0x02, 0x45, 0x87, 0x89, 0x7d, 0xb9, 0x36, - 0xd2, 0x27, 0x80, 0xba, 0xbf, 0x2b, 0x52, 0x54, 0xf7, 0x51, 0x91, 0xf2, 0x76, 0x25, 0xb2, 0xa7, - 0xbc, 0x49, 0x0c, 0xbe, 0xb6, 0x1a, 0x76, 0xe6, 0x70, 0x52, 0xf7, 0xb6, 0xcd, 0xb0, 0xab, 0x0b, - 0x95, 0xbf, 0xed, 0x31, 0x76, 0x4a, 0x2c, 0x17, 0x3c, 0x4d, 0x81, 0x38, 0x47, 0xbd, 0xed, 0x44, - 0x59, 0xd4, 0x05, 0xca, 0xd3, 0x2e, 0x30, 0xc8, 0xd5, 0x26, 0xe6, 0xca, 0xcf, 0x55, 0x60, 0x10, - 0x17, 0x2a, 0xbb, 0xab, 0xc1, 0x20, 0x57, 0x9b, 0x98, 0x95, 0x9f, 0x6b, 0xb4, 0xd1, 0xec, 0xfc, - 0x5c, 0x0b, 0x72, 0x51, 0x91, 0xf2, 0x76, 0x9d, 0xac, 0x2e, 0xe9, 0x2d, 0x92, 0x9f, 0xeb, 0x0d, - 0xbb, 0x39, 0xf2, 0xf3, 0x43, 0xc3, 0x6e, 0x56, 0x7e, 0x7e, 0x14, 0x63, 0x17, 0xcd, 0xcf, 0x8f, - 0x35, 0x85, 0xc6, 0xfc, 0xfc, 0x04, 0xf9, 0xa9, 0x0b, 0x94, 0xa7, 0x9f, 0x22, 0xc8, 0x98, 0xe7, - 0x4e, 0x9b, 0xea, 0x52, 0x45, 0xcc, 0x7e, 0x06, 0x8b, 0x98, 0x88, 0x36, 0x32, 0x3f, 0x9f, 0x0d, - 0xf7, 0xf2, 0x02, 0xfb, 0x45, 0x4a, 0xfe, 0x9c, 0xcc, 0xdb, 0xc4, 0x03, 0x91, 0xff, 0x1e, 0xfb, - 0x65, 0x0a, 0xdf, 0xe6, 0x9c, 0xa3, 0x91, 0x3d, 0xf6, 0x2b, 0xd3, 0xc4, 0x6c, 0xf8, 0x35, 0xb4, - 0x47, 0x78, 0xe0, 0xfa, 0xc5, 0x4c, 0xb1, 0xc8, 0x7e, 0x83, 0x09, 0x2f, 0xdb, 0x58, 0xfa, 0x7e, - 0x8b, 0xc9, 0xb1, 0xb1, 0xe6, 0x04, 0x82, 0x07, 0xec, 0x06, 0xa8, 0xe7, 0x78, 0x21, 0xef, 0xc3, - 0xfc, 0xc6, 0x94, 0x3c, 0xd3, 0x55, 0x78, 0x9e, 0x56, 0x3a, 0x76, 0x53, 0x4a, 0x9f, 0x4e, 0xc1, - 0x87, 0x3c, 0xde, 0x9c, 0xa2, 0x85, 0x31, 0xef, 0xf7, 0x3a, 0x33, 0x21, 0xbb, 0x45, 0xea, 0xab, - 0x55, 0x31, 0x64, 0xb7, 0x62, 0x09, 0x50, 0x53, 0x4a, 0xcf, 0xb3, 0xdb, 0x30, 0x48, 0x11, 0x50, - 0x4d, 0xb1, 0xdb, 0xb1, 0x2c, 0x1a, 0xe7, 0x98, 0xd8, 0x77, 0xc0, 0x81, 0xc1, 0xe4, 0x0d, 0xfa, - 0x9d, 0x29, 0xbd, 0x8a, 0x03, 0xd4, 0xf3, 0xfc, 0x2e, 0x74, 0x65, 0xd0, 0x09, 0x05, 0x2d, 0x6d, - 0x77, 0xc3, 0x5b, 0x4e, 0x04, 0x44, 0x4d, 0xc8, 0xe4, 0xfc, 0x4e, 0x96, 0x47, 0x14, 0xa3, 0x6a, - 0x64, 0xbf, 0x6f, 0xc0, 0xf5, 0x58, 0xde, 0x83, 0x40, 0xb4, 0x51, 0xd6, 0xc3, 0x00, 0x52, 0xbb, - 0x67, 0xc1, 0xc4, 0x8b, 0xed, 0xc1, 0xd2, 0xa4, 0x4e, 0x77, 0xc6, 0xf7, 0xbd, 0x31, 0x54, 0x7b, - 0xbe, 0x4f, 0x4f, 0x3c, 0xd2, 0x8b, 0xbe, 0xaa, 0xd8, 0xfd, 0xd1, 0xf9, 0xa5, 0x6e, 0xa1, 0x3d, - 0xc1, 0x1e, 0x88, 0x2e, 0x31, 0xea, 0xc5, 0xa7, 0xb6, 0xa4, 0x7f, 0x88, 0x5a, 0x64, 0x3d, 0xfd, - 0x8d, 0xff, 0x8f, 0x48, 0x40, 0x1d, 0x26, 0x2f, 0x0f, 0xa6, 0x68, 0x73, 0xa0, 0x30, 0x4d, 0x51, - 0xe9, 0x3f, 0x14, 0x9d, 0xf1, 0x5a, 0x86, 0x6f, 0xb6, 0x7a, 0x12, 0xcc, 0xe2, 0xfa, 0x70, 0xb4, - 0xd6, 0xeb, 0x5c, 0x1f, 0x89, 0x4e, 0xf7, 0x38, 0xd7, 0x47, 0xa3, 0x16, 0x75, 0xae, 0x8f, 0xc9, - 0xc1, 0x32, 0x30, 0x79, 0x79, 0x1c, 0x5c, 0x15, 0xd6, 0xc0, 0xf5, 0x89, 0xe8, 0xec, 0x8b, 0x72, - 0x7d, 0x12, 0xe5, 0x4f, 0x43, 0x83, 0x7a, 0x7c, 0x2a, 0xa5, 0x2f, 0xee, 0xd5, 0x3b, 0xe9, 0xe9, - 0x78, 0x8d, 0x61, 0x0a, 0x3c, 0xa3, 0x17, 0x8d, 0x3a, 0x5d, 0x9c, 0x15, 0x9e, 0x95, 0xef, 0x2f, - 0x43, 0x0a, 0xe0, 0x73, 0x51, 0xe5, 0xac, 0x67, 0x3e, 0x6b, 0x3c, 0x1f, 0x4d, 0x92, 0x66, 0x04, - 0x8b, 0x17, 0xa2, 0x2b, 0xa3, 0x96, 0x68, 0xb3, 0x17, 0x63, 0x9d, 0x8c, 0x6d, 0x92, 0xd8, 0xde, - 0x58, 0x27, 0xf5, 0x57, 0x0b, 0x4f, 0xb0, 0x97, 0x62, 0xb1, 0x94, 0x00, 0xb1, 0x5e, 0x8e, 0xc5, - 0xd2, 0xdb, 0x2a, 0x15, 0xeb, 0x15, 0xfd, 0xf2, 0x68, 0xe8, 0xe7, 0x9f, 0xd1, 0xcf, 0x7a, 0xa1, - 0x00, 0x7c, 0x35, 0xaa, 0x1c, 0xe9, 0xe7, 0x6b, 0xd1, 0xc2, 0x8d, 0xf5, 0xf3, 0xf5, 0xe8, 0x1b, - 0xb2, 0xb1, 0x9f, 0x6f, 0xc4, 0x0a, 0x2f, 0xde, 0xcf, 0x37, 0x63, 0x85, 0x17, 0xe9, 0xe7, 0x5b, - 0xb1, 0x58, 0xd1, 0x7e, 0xbe, 0x1d, 0x8b, 0xd5, 0xd0, 0xcf, 0xbf, 0xa4, 0xe8, 0x8c, 0xd7, 0x30, - 0x0f, 0xa9, 0x24, 0x54, 0xbc, 0xbf, 0x46, 0xbb, 0x46, 0xee, 0x14, 0xfe, 0x4e, 0x34, 0x0f, 0xf8, - 0x0e, 0xe1, 0x09, 0xf6, 0x2e, 0xa6, 0x6f, 0x04, 0x44, 0xfc, 0xbf, 0x45, 0x29, 0x13, 0xa2, 0x63, - 0xbf, 0x17, 0x9d, 0xa6, 0x0a, 0x54, 0xee, 0xdf, 0x8f, 0x86, 0xd5, 0x1f, 0x33, 0x3c, 0xc1, 0x3e, - 0x88, 0x75, 0x5f, 0xe2, 0x08, 0xf2, 0x61, 0x2c, 0x67, 0x52, 0xa0, 0xe3, 0x7c, 0x14, 0x2d, 0xc3, - 0x48, 0x1f, 0x3e, 0x8e, 0xd6, 0xac, 0xee, 0xc3, 0x27, 0xe8, 0x43, 0x04, 0x84, 0xfb, 0x4f, 0xa3, - 0xe5, 0x15, 0xed, 0xc3, 0x67, 0xd1, 0xe9, 0x1b, 0xef, 0xc3, 0xe7, 0xd1, 0xb0, 0x91, 0x3e, 0x7c, - 0x11, 0x2b, 0xd5, 0x48, 0x1f, 0xbe, 0x8c, 0xd5, 0x77, 0xbc, 0x0f, 0x7f, 0x4f, 0xd9, 0x07, 0x5b, - 0x5f, 0x9d, 0xb3, 0x26, 0xcc, 0xea, 0x79, 0xec, 0x3a, 0x3a, 0x8f, 0xcf, 0xae, 0x0d, 0xa3, 0x70, - 0xdc, 0x3a, 0x3a, 0x63, 0xcd, 0x51, 0x23, 0x46, 0xe3, 0xf8, 0x75, 0x76, 0x9b, 0xb5, 0x76, 0xee, - 0x5a, 0x31, 0x4a, 0x27, 0xac, 0x23, 0x2e, 0x73, 0xce, 0x43, 0xa3, 0x73, 0x22, 0xb8, 0xcc, 0x9e, - 0x8f, 0x46, 0xe1, 0x24, 0x70, 0x99, 0x63, 0x5e, 0x1a, 0x8d, 0x93, 0xc1, 0x65, 0xee, 0xf9, 0x69, - 0x94, 0x4e, 0x59, 0xa7, 0x3e, 0x06, 0xaa, 0x9b, 0xfa, 0x27, 0xd3, 0xf6, 0x62, 0x6b, 0xfe, 0x7a, - 0xd7, 0x63, 0x4f, 0xa5, 0xe9, 0x94, 0x91, 0xc9, 0xf5, 0x64, 0xb3, 0xec, 0xe9, 0x34, 0x3e, 0x54, - 0x4f, 0x39, 0x01, 0x7b, 0x26, 0x8d, 0x0f, 0x17, 0x53, 0x4e, 0x20, 0x2d, 0xc6, 0xf2, 0xfd, 0xdf, - 0x62, 0xcf, 0xa6, 0xe9, 0xbd, 0xac, 0x7e, 0x21, 0xfe, 0x5c, 0x5a, 0x7e, 0x66, 0xa0, 0xc6, 0x91, - 0x39, 0xf6, 0x7c, 0x9a, 0xde, 0x94, 0x6a, 0x0f, 0xc1, 0x5e, 0x80, 0xff, 0xbe, 0xb2, 0x60, 0x2f, - 0xa6, 0x69, 0x75, 0xec, 0x9b, 0xae, 0xfa, 0x81, 0xc8, 0x71, 0x71, 0x18, 0xbd, 0xd5, 0xf6, 0xc6, - 0xb1, 0xc3, 0x09, 0x7b, 0x29, 0x8e, 0x7d, 0x93, 0xb0, 0x97, 0x11, 0x02, 0xff, 0x48, 0x41, 0x15, - 0xf1, 0x4a, 0x1a, 0x5f, 0x01, 0xa8, 0x29, 0x17, 0x99, 0x34, 0x6d, 0xcb, 0xd1, 0x56, 0xb5, 0xf4, - 0xaa, 0xd2, 0xf0, 0x8a, 0x59, 0x2f, 0xc7, 0x05, 0x7b, 0x0d, 0x84, 0xd5, 0x3a, 0xfd, 0x7a, 0x1a, - 0xaf, 0x58, 0x34, 0x68, 0x8b, 0x30, 0xe8, 0x17, 0x9c, 0x32, 0x67, 0x6f, 0xa4, 0xf1, 0x3b, 0xed, - 0xc0, 0xaf, 0xac, 0x77, 0x42, 0x9e, 0x3e, 0x9c, 0xbd, 0x09, 0x27, 0x47, 0xf0, 0xe9, 0xac, 0x87, - 0x3d, 0xc4, 0x5b, 0xba, 0x9d, 0x13, 0x01, 0xb5, 0xdf, 0x4e, 0xcb, 0xcf, 0x61, 0x21, 0x0f, 0x04, - 0xd2, 0xf2, 0x97, 0xb4, 0xfc, 0x1c, 0x46, 0x00, 0xfb, 0x6b, 0x5a, 0xde, 0x95, 0xab, 0x6b, 0x5a, - 0xf6, 0x4e, 0x5a, 0x7e, 0x81, 0x0b, 0x45, 0xc0, 0xde, 0xc5, 0xf3, 0x60, 0x3e, 0x70, 0x2b, 0xec, - 0x6f, 0x69, 0xf9, 0x93, 0xbb, 0x49, 0xe9, 0xe3, 0xbd, 0xb4, 0xfc, 0x09, 0xf9, 0xa4, 0x60, 0xef, - 0xc3, 0x9d, 0x1a, 0xa8, 0x0f, 0xd2, 0xb8, 0xfb, 0xf0, 0x0b, 0x8e, 0xc0, 0x8e, 0x20, 0x84, 0xf6, - 0x87, 0x11, 0xf4, 0x30, 0x83, 0x7e, 0x84, 0x7c, 0x44, 0x74, 0xd9, 0xc7, 0x11, 0x04, 0x7a, 0xec, - 0x13, 0x49, 0xc1, 0xdf, 0xcc, 0x03, 0xf6, 0xa9, 0xa4, 0x50, 0x75, 0x8a, 0x30, 0xff, 0x4c, 0x52, - 0xa8, 0x3a, 0x45, 0xf6, 0x39, 0x06, 0x93, 0x76, 0x7c, 0x94, 0xc5, 0x2f, 0x40, 0x68, 0x43, 0x01, - 0xaf, 0xd0, 0x2f, 0xd1, 0xbf, 0x0d, 0x05, 0xf3, 0xb3, 0x3f, 0x8c, 0xf4, 0x86, 0xa0, 0xc8, 0x8e, - 0xed, 0x26, 0xd7, 0xb8, 0x05, 0x65, 0xc7, 0xe1, 0x79, 0x14, 0x3d, 0x3d, 0xbe, 0x1b, 0x1f, 0x47, - 0x79, 0x95, 0x3b, 0x82, 0x9d, 0xd0, 0x8d, 0x1f, 0x1d, 0xc8, 0xdb, 0x64, 0x76, 0x62, 0xb7, 0xfc, - 0x4a, 0xb2, 0x89, 0x07, 0x21, 0x6e, 0xc1, 0xd9, 0x49, 0x4a, 0x0e, 0x84, 0x9d, 0xdc, 0x8d, 0x0b, - 0x7c, 0xb7, 0x34, 0x25, 0xb3, 0x74, 0x8a, 0x74, 0x4b, 0x6d, 0x76, 0x6a, 0x37, 0xbe, 0xc3, 0x68, - 0xf6, 0xa7, 0x75, 0xe3, 0x47, 0x19, 0xc4, 0xfe, 0x74, 0x68, 0xe5, 0xaa, 0x14, 0xe1, 0x8c, 0x6e, - 0xf9, 0xbf, 0x08, 0x41, 0xa1, 0x52, 0x65, 0x67, 0x76, 0xab, 0x25, 0x25, 0x04, 0xf7, 0x7a, 0x3e, - 0xcf, 0x8a, 0x0b, 0xea, 0x29, 0x3d, 0xbb, 0x5b, 0xad, 0x7d, 0x11, 0x0b, 0x76, 0x4e, 0x1c, 0x94, - 0x89, 0x3d, 0x37, 0x0e, 0x66, 0xbd, 0x22, 0x9f, 0x66, 0xe7, 0x81, 0x63, 0xde, 0x57, 0x95, 0x75, - 0xbe, 0x6c, 0x06, 0x6e, 0x05, 0x7b, 0xbe, 0xef, 0xa3, 0x77, 0xd4, 0x94, 0x7e, 0x7f, 0x60, 0xda, - 0xd2, 0xe5, 0x05, 0xe8, 0xc7, 0x98, 0x77, 0x04, 0x9f, 0x66, 0x17, 0x42, 0x36, 0x56, 0xad, 0x72, - 0x59, 0x56, 0x17, 0x49, 0x19, 0xb5, 0xd9, 0x96, 0x6e, 0x2a, 0xc8, 0xfa, 0x5c, 0x65, 0x17, 0x77, - 0xcb, 0x1f, 0x56, 0x6c, 0x56, 0xca, 0x97, 0x74, 0x53, 0xe5, 0x9b, 0x1f, 0x87, 0x9a, 0x23, 0x66, - 0xb7, 0x7d, 0x90, 0xd5, 0xa4, 0xe1, 0x9e, 0x4a, 0x35, 0xf6, 0xf3, 0xf0, 0xcb, 0xba, 0x69, 0x42, - 0xca, 0x1f, 0x7d, 0x6a, 0x8b, 0xcb, 0xbb, 0x69, 0x19, 0x07, 0xd6, 0xa8, 0x7e, 0x85, 0xee, 0xaa, - 0xeb, 0x39, 0xc1, 0x0c, 0xbb, 0xb2, 0xdb, 0xcc, 0x2a, 0x09, 0x6c, 0xfd, 0x47, 0xc1, 0xb0, 0x8b, - 0xde, 0x36, 0xa7, 0x63, 0x88, 0xb6, 0x77, 0x47, 0x7f, 0xae, 0x0a, 0x68, 0x47, 0xb7, 0xf9, 0xa9, - 0x29, 0xda, 0x3b, 0xbb, 0x0f, 0xe1, 0xd6, 0xca, 0x86, 0xff, 0x65, 0xc2, 0x7f, 0x46, 0xf8, 0x95, - 0x6a, 0x99, 0x0b, 0x8e, 0xbb, 0x84, 0x7d, 0xec, 0xe5, 0x58, 0x1b, 0x9c, 0x32, 0x9a, 0x09, 0x52, - 0x18, 0x71, 0x02, 0xe1, 0x3a, 0xe5, 0x43, 0x81, 0xcc, 0x8b, 0x20, 0x5d, 0x40, 0xe6, 0x93, 0x49, - 0x2f, 0x2f, 0xd6, 0xaa, 0x68, 0x2e, 0x58, 0xff, 0xf5, 0xdd, 0x7b, 0xd7, 0x26, 0x1e, 0xdc, 0xbb, - 0x36, 0xf1, 0xc2, 0xde, 0xb5, 0x89, 0x2d, 0x2f, 0xad, 0xdd, 0xc7, 0x5a, 0x5d, 0xf0, 0x2b, 0x9d, - 0x55, 0xd7, 0x2b, 0x15, 0x9c, 0x6a, 0xa7, 0x70, 0x8b, 0x13, 0xf8, 0x8f, 0xa5, 0x91, 0xc4, 0xff, - 0x06, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x52, 0xb7, 0x86, 0xdf, 0x37, 0x00, 0x00, + 0xcf, 0x0d, 0xd1, 0xd2, 0x7a, 0x24, 0x6d, 0x2c, 0x1f, 0x42, 0x9e, 0x35, 0xd4, 0x67, 0x7e, 0xe5, + 0xc4, 0xfe, 0xd4, 0x41, 0xeb, 0x84, 0x16, 0x8c, 0x04, 0x7c, 0xd2, 0x9d, 0x66, 0x0f, 0xc7, 0x40, + 0xf9, 0x9a, 0x63, 0x8f, 0x74, 0xe0, 0x2c, 0xea, 0x08, 0xde, 0xef, 0x07, 0x15, 0x07, 0x13, 0xfe, + 0xdd, 0x4e, 0x5a, 0x16, 0x09, 0x1b, 0x74, 0x05, 0x0f, 0x68, 0x77, 0xdd, 0xa9, 0x76, 0x89, 0xbc, + 0xd7, 0x9d, 0x9c, 0x64, 0xef, 0x75, 0xea, 0xeb, 0x6e, 0x9a, 0x38, 0x80, 0xde, 0xef, 0x24, 0x2a, + 0xd4, 0x94, 0x93, 0xd1, 0x08, 0x3e, 0xe8, 0xc4, 0xf9, 0x4f, 0x4d, 0xa1, 0x06, 0xe1, 0x87, 0x9d, + 0xf6, 0x57, 0xad, 0xa4, 0x16, 0xea, 0xbf, 0x46, 0xfc, 0x11, 0x9c, 0xd6, 0x6d, 0x8c, 0xe0, 0x63, + 0x38, 0x95, 0x82, 0x59, 0x56, 0x9f, 0x74, 0xd2, 0xa0, 0xaa, 0xf5, 0x38, 0x1e, 0xef, 0xd3, 0x4e, + 0x5a, 0x02, 0xb5, 0x2b, 0x03, 0x7f, 0xd6, 0x49, 0xdb, 0x24, 0xea, 0x1e, 0xfb, 0x1c, 0x8f, 0x47, + 0xf8, 0xb5, 0x80, 0x7d, 0xd1, 0x89, 0x0b, 0x68, 0xd7, 0xab, 0x09, 0xce, 0xbe, 0xec, 0x94, 0x67, + 0xcd, 0x82, 0xef, 0x15, 0xd9, 0xdf, 0x91, 0xa0, 0x21, 0xb7, 0x10, 0xf8, 0x0a, 0x39, 0x36, 0x45, + 0x9b, 0xd3, 0x21, 0xdf, 0x13, 0x53, 0xec, 0xb8, 0x14, 0xee, 0xe4, 0xe9, 0x79, 0xd8, 0xa9, 0x70, + 0x76, 0x7c, 0x0a, 0x77, 0xfc, 0xfe, 0x66, 0x2a, 0x8b, 0x4c, 0x50, 0x62, 0x27, 0xa4, 0xf0, 0x05, + 0x41, 0x02, 0x7e, 0x4d, 0x10, 0x76, 0x62, 0x0a, 0x97, 0x48, 0xce, 0x0c, 0x4c, 0x4e, 0x82, 0x49, + 0xaf, 0x33, 0xb3, 0x61, 0x52, 0xfa, 0x3c, 0x19, 0x3e, 0x01, 0x1c, 0xc9, 0xf9, 0xd1, 0xec, 0x94, + 0x7a, 0xfb, 0x3f, 0xb8, 0x13, 0xb0, 0x53, 0x53, 0x34, 0x22, 0x24, 0x22, 0x9f, 0x43, 0xb4, 0xc7, + 0x3f, 0x2d, 0x45, 0x15, 0xa6, 0x21, 0xbf, 0x26, 0x80, 0x9e, 0x8e, 0x38, 0x84, 0xf6, 0x3a, 0x33, + 0xec, 0x0c, 0xc4, 0xa1, 0x96, 0xf2, 0x73, 0x66, 0x8a, 0xba, 0x8f, 0xc7, 0xb3, 0x52, 0x94, 0x2b, + 0x7a, 0x8c, 0xb9, 0x3d, 0x3b, 0x45, 0x25, 0x1d, 0x85, 0xb5, 0xeb, 0x73, 0xc0, 0x69, 0x80, 0x0b, + 0x59, 0x49, 0xec, 0xdc, 0x14, 0xb6, 0xc8, 0x33, 0x21, 0x25, 0x16, 0x57, 0x81, 0x61, 0x95, 0x9d, + 0x97, 0xa2, 0xd5, 0x2f, 0x02, 0xfa, 0x35, 0x41, 0xf8, 0xf9, 0xa9, 0xc8, 0x41, 0x03, 0x23, 0xf1, + 0x7d, 0xf0, 0x57, 0x08, 0x0d, 0xd5, 0x3a, 0xca, 0xd3, 0x0f, 0x1a, 0x51, 0x5c, 0xd3, 0x5d, 0x00, + 0xda, 0x58, 0xc5, 0x2f, 0x4c, 0xc9, 0x73, 0x44, 0xc5, 0x14, 0xef, 0x45, 0xe8, 0xf2, 0x58, 0xbe, + 0x07, 0x6e, 0xb7, 0x80, 0xff, 0x58, 0xbe, 0x87, 0x54, 0x42, 0xe1, 0x54, 0xaa, 0x7a, 0x58, 0x2e, + 0x4e, 0x51, 0x51, 0x35, 0x4a, 0xd4, 0xf8, 0x5c, 0x02, 0x61, 0xa6, 0x58, 0x24, 0x27, 0x02, 0x3b, + 0xfc, 0x62, 0xfd, 0x03, 0x52, 0x8a, 0x2a, 0x2e, 0x2e, 0x54, 0xef, 0xa4, 0xcb, 0x10, 0x2e, 0x53, + 0x2c, 0xa2, 0xd8, 0x1c, 0x81, 0xa2, 0xc3, 0xda, 0x70, 0xb9, 0x36, 0xd2, 0x87, 0x88, 0xba, 0xbf, + 0x2b, 0x52, 0x54, 0xf7, 0x51, 0x91, 0xf2, 0x76, 0x25, 0xb2, 0xa7, 0xbc, 0x49, 0x0c, 0xbe, 0xb6, + 0x1a, 0x76, 0xe6, 0x7c, 0x53, 0xf7, 0xb6, 0xcd, 0xb0, 0xab, 0x0b, 0x95, 0xbf, 0xed, 0x31, 0x76, + 0x4a, 0x2c, 0xd7, 0x4c, 0x4d, 0x81, 0x38, 0x47, 0xbd, 0xed, 0x44, 0x59, 0xd4, 0x05, 0xca, 0xd3, + 0x2e, 0x30, 0xc8, 0xd5, 0x26, 0xe6, 0xca, 0xcf, 0x55, 0x60, 0x10, 0x17, 0x2a, 0xbb, 0xab, 0xc1, + 0x20, 0x57, 0x9b, 0x98, 0x95, 0x9f, 0x6b, 0xb4, 0xd1, 0xec, 0xfc, 0x5c, 0x0b, 0x72, 0x51, 0x91, + 0xf2, 0x76, 0x9d, 0xac, 0x2e, 0xe9, 0x2d, 0x92, 0x9f, 0xeb, 0x0d, 0xbb, 0x39, 0xf2, 0xf3, 0x43, + 0xc3, 0x6e, 0x56, 0x7e, 0x7e, 0x14, 0x63, 0x17, 0xcd, 0xcf, 0x8f, 0x35, 0x85, 0xc6, 0xfc, 0xfc, + 0x04, 0xf9, 0xa9, 0x0b, 0x94, 0xa7, 0x9f, 0x22, 0xc8, 0x98, 0xe7, 0x4e, 0x9b, 0xea, 0x52, 0x45, + 0xcc, 0x7e, 0x06, 0x8b, 0x98, 0x88, 0xf6, 0x42, 0x3f, 0x9f, 0x0d, 0xf7, 0xf2, 0x02, 0xfb, 0x45, + 0x4a, 0xfe, 0x22, 0xcd, 0xdb, 0xc4, 0x03, 0x91, 0xff, 0x1e, 0xfb, 0x65, 0x0a, 0x9f, 0xf7, 0x9c, + 0xa3, 0x91, 0x3d, 0xf6, 0x2b, 0xd3, 0xc4, 0x6c, 0xf8, 0x35, 0xb4, 0x47, 0x78, 0xe0, 0xfa, 0xc5, + 0x4c, 0xb1, 0xc8, 0x7e, 0x83, 0x09, 0x2f, 0xdb, 0x58, 0xfa, 0x7e, 0x8b, 0xc9, 0xb1, 0xb1, 0xe6, + 0x04, 0x82, 0x07, 0xec, 0x06, 0xa8, 0xe7, 0x78, 0x21, 0xef, 0xc3, 0xfc, 0xc6, 0x94, 0x3c, 0x16, + 0x56, 0x78, 0x9e, 0x56, 0x3a, 0x76, 0x53, 0x4a, 0x1f, 0x70, 0xc1, 0x87, 0x3c, 0xde, 0x9c, 0xa2, + 0x85, 0x31, 0xef, 0xf7, 0x3a, 0x33, 0x21, 0xbb, 0x45, 0xea, 0xab, 0x55, 0x31, 0x64, 0xb7, 0x62, + 0x09, 0x50, 0x53, 0x4a, 0xcf, 0xb3, 0xdb, 0x30, 0x48, 0x11, 0x50, 0x4d, 0xb1, 0xdb, 0xb1, 0x2c, + 0x1a, 0xe7, 0x98, 0xd8, 0x77, 0xc0, 0x81, 0xc1, 0xe4, 0x25, 0xfc, 0x9d, 0x29, 0xbd, 0x8a, 0x03, + 0xd4, 0xf3, 0xfc, 0x2e, 0x74, 0x65, 0xd0, 0x09, 0x05, 0x2d, 0x6d, 0x77, 0xc3, 0x5b, 0x4e, 0x04, + 0x44, 0x4d, 0xc8, 0xe4, 0xfc, 0x4e, 0x96, 0x47, 0x14, 0xa3, 0x6a, 0x64, 0xbf, 0x6f, 0xc0, 0xf5, + 0x58, 0xde, 0x83, 0x40, 0xb4, 0xd7, 0xd6, 0xc3, 0x00, 0x52, 0xbb, 0x67, 0xc1, 0xc4, 0x8b, 0xed, + 0xc1, 0xd2, 0xa4, 0x0e, 0x88, 0xc6, 0xf7, 0xbd, 0x31, 0x54, 0x7b, 0xbe, 0x4f, 0x4f, 0x3c, 0xd2, + 0x8b, 0xbe, 0xaa, 0xd8, 0xfd, 0xd1, 0xf9, 0xa5, 0x2e, 0xb2, 0x3d, 0xc1, 0x1e, 0x88, 0x2e, 0x31, + 0xea, 0xc5, 0xa7, 0x76, 0xb5, 0x7f, 0x88, 0x5a, 0x64, 0x3d, 0xfd, 0x33, 0x81, 0x3f, 0x22, 0x01, + 0x75, 0x98, 0xbc, 0x3c, 0x98, 0xa2, 0xfd, 0x85, 0xc2, 0x34, 0x45, 0xa5, 0xff, 0x50, 0x74, 0xc6, + 0x6b, 0x19, 0x3e, 0xfb, 0xea, 0x49, 0x30, 0x8b, 0xeb, 0xc3, 0xd1, 0x5a, 0xaf, 0x73, 0x7d, 0x24, + 0x3a, 0xdd, 0xe3, 0x5c, 0x1f, 0x8d, 0x5a, 0xd4, 0xb9, 0x3e, 0x26, 0x07, 0xcb, 0xc0, 0xe4, 0xe5, + 0x71, 0x70, 0x55, 0x58, 0x03, 0xd7, 0x27, 0xa2, 0xb3, 0x2f, 0xca, 0xf5, 0x49, 0x94, 0x3f, 0x0d, + 0x0d, 0xea, 0xf1, 0xa9, 0x94, 0xbe, 0xfb, 0x57, 0xef, 0xa4, 0xa7, 0xe3, 0x35, 0x86, 0x29, 0xf0, + 0x8c, 0x5e, 0x34, 0xea, 0x74, 0x71, 0xdc, 0x78, 0x56, 0xbe, 0xbf, 0x0c, 0x29, 0x80, 0xcf, 0x45, + 0x95, 0xb3, 0x9e, 0xf9, 0x32, 0xf2, 0x7c, 0x34, 0x49, 0x9a, 0x11, 0x2c, 0x5e, 0x88, 0xae, 0x8c, + 0x5a, 0xa2, 0xcd, 0x5e, 0x8c, 0x75, 0x32, 0xb6, 0x49, 0x62, 0x7b, 0x63, 0x9d, 0xd4, 0x1f, 0x3e, + 0x3c, 0xc1, 0x5e, 0x8a, 0xc5, 0x52, 0x02, 0xc4, 0x7a, 0x39, 0x16, 0x4b, 0x6f, 0xab, 0x54, 0xac, + 0x57, 0xf4, 0xcb, 0xa3, 0xa1, 0x9f, 0x7f, 0x46, 0x3f, 0xeb, 0x85, 0x02, 0xf0, 0xd5, 0xa8, 0x72, + 0xa4, 0x9f, 0xaf, 0x45, 0x0b, 0x37, 0xd6, 0xcf, 0xd7, 0xa3, 0x6f, 0xc8, 0xc6, 0x7e, 0xbe, 0x11, + 0x2b, 0xbc, 0x78, 0x3f, 0xdf, 0x8c, 0x15, 0x5e, 0xa4, 0x9f, 0x6f, 0xc5, 0x62, 0x45, 0xfb, 0xf9, + 0x76, 0x2c, 0x56, 0x43, 0x3f, 0xff, 0x92, 0xa2, 0x63, 0x62, 0xc3, 0x3c, 0xa4, 0x92, 0x50, 0xf1, + 0xfe, 0x1a, 0xed, 0x1a, 0xb9, 0x53, 0xf8, 0x3b, 0xd1, 0x3c, 0xe0, 0x53, 0x86, 0x27, 0xd8, 0xbb, + 0x98, 0xbe, 0x11, 0x10, 0xf1, 0xff, 0x16, 0xa5, 0x4c, 0x88, 0x8e, 0xfd, 0x5e, 0x74, 0x9a, 0x2a, + 0x50, 0xb9, 0x7f, 0x3f, 0x1a, 0x56, 0x7f, 0x0f, 0xf1, 0x04, 0xfb, 0x20, 0xd6, 0x7d, 0x89, 0x23, + 0xc8, 0x87, 0xb1, 0x9c, 0x49, 0x81, 0x8e, 0xf3, 0x51, 0xb4, 0x0c, 0x23, 0x7d, 0xf8, 0x38, 0x5a, + 0xb3, 0xba, 0x0f, 0x9f, 0xa0, 0x0f, 0x11, 0x10, 0xee, 0x3f, 0x8d, 0x96, 0x57, 0xb4, 0x0f, 0x9f, + 0x45, 0xa7, 0x6f, 0xbc, 0x0f, 0x9f, 0x47, 0xc3, 0x46, 0xfa, 0xf0, 0x45, 0xac, 0x54, 0x23, 0x7d, + 0xf8, 0x32, 0x56, 0xdf, 0xf1, 0x3e, 0xfc, 0x3d, 0x65, 0x1f, 0x6c, 0x7d, 0x75, 0xce, 0x9a, 0x30, + 0xab, 0xe7, 0xb1, 0xeb, 0xe8, 0x48, 0x3f, 0xbb, 0x36, 0x8c, 0xc2, 0x71, 0xeb, 0xe8, 0x98, 0x36, + 0x47, 0x8d, 0x18, 0x8d, 0xe3, 0xd7, 0xd9, 0x6d, 0xd6, 0xda, 0xb9, 0x6b, 0xc5, 0x28, 0x9d, 0xb0, + 0x8e, 0xb8, 0xcc, 0x39, 0x0f, 0x8d, 0xce, 0x89, 0xe0, 0x32, 0x7b, 0x3e, 0x1a, 0x85, 0x93, 0xc0, + 0x65, 0x8e, 0x79, 0x69, 0x34, 0x4e, 0x06, 0x97, 0xb9, 0xe7, 0xa7, 0x51, 0x3a, 0x65, 0x9d, 0xfa, + 0x9e, 0xa8, 0x2e, 0xfb, 0x9f, 0x4c, 0xdb, 0x8b, 0xad, 0xf9, 0xeb, 0x5d, 0x8f, 0x3d, 0x95, 0xa6, + 0x53, 0x46, 0x26, 0xd7, 0x93, 0xcd, 0xb2, 0xa7, 0xd3, 0xf8, 0xd6, 0x3d, 0xe5, 0x04, 0xec, 0x99, + 0x34, 0xbe, 0x7d, 0x4c, 0x39, 0x81, 0xb4, 0x18, 0xcb, 0xf7, 0x7f, 0x8b, 0x3d, 0x9b, 0xa6, 0xf7, + 0xb2, 0xfa, 0x91, 0xf9, 0x73, 0x69, 0xf9, 0xa5, 0x82, 0x1a, 0x47, 0xe6, 0xd8, 0xf3, 0x69, 0x7a, + 0x53, 0xaa, 0x3d, 0x04, 0x7b, 0x01, 0xfe, 0xfb, 0xca, 0x82, 0xbd, 0x98, 0xa6, 0xd5, 0xb1, 0x6f, + 0xba, 0xea, 0x07, 0x22, 0xc7, 0xc5, 0x61, 0xf4, 0x56, 0xdb, 0x1b, 0xc7, 0x0e, 0x27, 0xec, 0xa5, + 0x38, 0xf6, 0x4d, 0xc2, 0x5e, 0x46, 0x08, 0xfc, 0x2f, 0x06, 0x55, 0xc4, 0x2b, 0x69, 0x7c, 0x48, + 0xa0, 0xa6, 0x5c, 0x64, 0xd2, 0xb4, 0x2d, 0x47, 0x5b, 0xd5, 0xd2, 0xab, 0x4a, 0xc3, 0x2b, 0x66, + 0xbd, 0x1c, 0x17, 0xec, 0x35, 0x10, 0x56, 0xeb, 0xf4, 0xeb, 0x69, 0xbc, 0x62, 0xd1, 0xa0, 0x2d, + 0xc2, 0xa0, 0x5f, 0x70, 0xca, 0x9c, 0xbd, 0x91, 0xc6, 0x4f, 0xbd, 0x03, 0xbf, 0xb2, 0xde, 0x09, + 0x79, 0xfa, 0x70, 0xf6, 0x26, 0x9c, 0x1c, 0xc1, 0xa7, 0xb3, 0x1e, 0xf6, 0x10, 0x6f, 0xe9, 0x76, + 0x4e, 0x04, 0xd4, 0x7e, 0x3b, 0x2d, 0xbf, 0xa8, 0x85, 0x3c, 0x10, 0x48, 0xcb, 0x5f, 0xd2, 0xf2, + 0x8b, 0x1a, 0x01, 0xec, 0xaf, 0x69, 0x79, 0xdd, 0xae, 0x6e, 0x7a, 0xd9, 0x3b, 0x69, 0xf9, 0x11, + 0x2f, 0x14, 0x01, 0x7b, 0x17, 0xcf, 0x83, 0xf9, 0xc0, 0xad, 0xb0, 0xbf, 0xa5, 0xe5, 0xaf, 0xf6, + 0x26, 0xa5, 0x8f, 0xf7, 0xd2, 0xf2, 0x57, 0xe8, 0x93, 0x82, 0xbd, 0x0f, 0x77, 0x6a, 0xa0, 0x3e, + 0x48, 0xe3, 0xfa, 0xc4, 0x2f, 0x38, 0x02, 0x3b, 0x82, 0x10, 0xda, 0x1f, 0x46, 0xd0, 0xc3, 0x0c, + 0xfa, 0x11, 0xf2, 0x11, 0xd1, 0x65, 0x1f, 0x47, 0x10, 0xe8, 0xb1, 0x4f, 0x24, 0x05, 0x7f, 0x33, + 0x0f, 0xd8, 0xa7, 0x92, 0x42, 0xd5, 0x29, 0xc2, 0xfc, 0x33, 0x49, 0xa1, 0xea, 0x14, 0xd9, 0xe7, + 0x18, 0x4c, 0xda, 0xf1, 0x51, 0x16, 0xbf, 0x00, 0xa1, 0x0d, 0x05, 0xbc, 0x42, 0xbf, 0x44, 0xff, + 0x36, 0x14, 0xcc, 0x2f, 0x07, 0x31, 0xd2, 0x1b, 0x82, 0x22, 0x3b, 0xb6, 0x9b, 0x5c, 0xe3, 0x22, + 0x95, 0x1d, 0x87, 0xe7, 0x51, 0xf4, 0xf4, 0xf8, 0x6e, 0x7c, 0x5f, 0xe5, 0x55, 0xee, 0x08, 0x76, + 0x42, 0x37, 0x7e, 0xb7, 0x20, 0x2f, 0xa4, 0xd9, 0x89, 0xdd, 0xf2, 0x43, 0xcb, 0x26, 0x1e, 0x84, + 0xb8, 0x48, 0x67, 0x27, 0x29, 0x39, 0x10, 0x76, 0x72, 0x37, 0xbe, 0x01, 0xb8, 0xa5, 0x29, 0x99, + 0xa5, 0x53, 0xa4, 0x5b, 0x6a, 0xb3, 0x53, 0xbb, 0xf1, 0x29, 0x47, 0xb3, 0x3f, 0xad, 0x1b, 0xbf, + 0xeb, 0x20, 0xf6, 0xa7, 0x43, 0x2b, 0x57, 0xa5, 0x08, 0x67, 0x74, 0xcb, 0x7f, 0x67, 0x08, 0x0a, + 0x95, 0x2a, 0x3b, 0xb3, 0x5b, 0x2d, 0x29, 0x21, 0xb8, 0xd7, 0xf3, 0x79, 0x56, 0x5c, 0x50, 0x4f, + 0xe9, 0xd9, 0xdd, 0x6a, 0xed, 0x8b, 0x58, 0xb0, 0x73, 0xe2, 0xa0, 0x4c, 0xec, 0xb9, 0x71, 0x30, + 0xeb, 0x15, 0xf9, 0x34, 0x3b, 0x0f, 0x1c, 0xf3, 0xbe, 0xaa, 0xac, 0xf3, 0x65, 0x33, 0x70, 0x2b, + 0xd8, 0xf3, 0x7d, 0x1f, 0xbd, 0xa3, 0xa6, 0xf4, 0xfb, 0x03, 0xd3, 0x96, 0x2e, 0x2f, 0x40, 0x3f, + 0xc6, 0xbc, 0x23, 0xf8, 0x34, 0xbb, 0x10, 0xb2, 0xb1, 0x6a, 0x95, 0xcb, 0xb2, 0xba, 0x48, 0xca, + 0xa8, 0xcd, 0xb6, 0x74, 0x53, 0x41, 0xd6, 0xe7, 0x2a, 0xbb, 0xb8, 0x5b, 0xfe, 0x36, 0x63, 0xb3, + 0x52, 0xbe, 0xa4, 0x9b, 0x2a, 0xdf, 0xfc, 0xbe, 0xd4, 0x1c, 0x31, 0xbb, 0xed, 0x83, 0xac, 0x26, + 0x0d, 0xf7, 0x54, 0xaa, 0xb1, 0x5f, 0x98, 0x5f, 0xd6, 0x4d, 0x13, 0x52, 0xfe, 0x6e, 0x54, 0x5b, + 0x5c, 0xde, 0x4d, 0xcb, 0x38, 0xb0, 0x46, 0xf5, 0x2b, 0x74, 0x57, 0x5d, 0xcf, 0x09, 0x66, 0xd8, + 0x95, 0xdd, 0x66, 0x56, 0x49, 0x60, 0xeb, 0x3f, 0x0a, 0x86, 0x5d, 0xf4, 0xb6, 0x39, 0x1d, 0x43, + 0xb4, 0xbd, 0x3b, 0xfa, 0x8b, 0x57, 0x40, 0x3b, 0xba, 0xcd, 0xaf, 0x55, 0xd1, 0xde, 0xd9, 0x7d, + 0x08, 0xb7, 0x56, 0x36, 0xfc, 0x3b, 0x14, 0xfe, 0xb9, 0xc2, 0xaf, 0x54, 0xcb, 0x5c, 0x70, 0xdc, + 0x25, 0xec, 0x63, 0x2f, 0xc7, 0xda, 0xe0, 0x94, 0xd1, 0x4c, 0x90, 0xc2, 0x88, 0x13, 0x08, 0xd7, + 0x29, 0x1f, 0x0a, 0x64, 0x5e, 0x04, 0xe9, 0x02, 0x32, 0x9f, 0x4c, 0x7a, 0x79, 0xb1, 0x56, 0x45, + 0x73, 0xc1, 0xfa, 0xaf, 0xef, 0xde, 0xbb, 0x36, 0xf1, 0xe0, 0xde, 0xb5, 0x89, 0x17, 0xf6, 0xae, + 0x4d, 0x6c, 0x79, 0x69, 0xed, 0x3e, 0xd6, 0xea, 0x82, 0x5f, 0xe9, 0xac, 0xba, 0x5e, 0xa9, 0xe0, + 0x54, 0x3b, 0x85, 0x5b, 0x9c, 0xc0, 0x3f, 0x3d, 0x8d, 0x24, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, + 0x95, 0x44, 0x8f, 0x32, 0x22, 0x38, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index 04915b16..032d35ab 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -175,6 +175,9 @@ message FTSQueryInfo { // For QueryType == TopK optional uint32 top_k = 10; + + // Distinguish match_word, match_expression, match_prefix, match_regexp + optional ScalarFuncSig query_func = 20 [(gogoproto.nullable) = false]; } message TableScan { @@ -267,6 +270,7 @@ message IndexScan { optional bool desc = 4 [(gogoproto.nullable) = false]; optional bool unique = 5; // check whether it is a unique index. repeated int64 primary_column_ids = 6; + optional FTSQueryInfo fts_query_info = 7; // only used by TiFlash } message Selection { diff --git a/proto/expression.proto b/proto/expression.proto index 6b06683b..c6369c29 100644 --- a/proto/expression.proto +++ b/proto/expression.proto @@ -537,6 +537,9 @@ enum ScalarFuncSig { /*fts*/ FTSMatchWord = 5201; + FTSMatchExpression = 5202; + FTSMatchPrefix = 5203; + FTSMatchRegexp = 5204; /*time*/ DateFormatSig = 6001; diff --git a/scripts/proto.lock b/scripts/proto.lock index 4fcabbbb..a9d250c9 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -1627,6 +1627,18 @@ "name": "top_k", "type": "uint32", "optional": true + }, + { + "id": 20, + "name": "query_func", + "type": "ScalarFuncSig", + "optional": true, + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] } ] }, @@ -2072,6 +2084,12 @@ "name": "primary_column_ids", "type": "int64", "is_repeated": true + }, + { + "id": 7, + "name": "fts_query_info", + "type": "FTSQueryInfo", + "optional": true } ] }, @@ -5249,6 +5267,18 @@ "name": "FTSMatchWord", "integer": 5201 }, + { + "name": "FTSMatchExpression", + "integer": 5202 + }, + { + "name": "FTSMatchPrefix", + "integer": 5203 + }, + { + "name": "FTSMatchRegexp", + "integer": 5204 + }, { "name": "DateFormatSig", "integer": 6001 From 08c804a77fef294063415ccd4475f7959beadfa1 Mon Sep 17 00:00:00 2001 From: Wenxuan Date: Tue, 20 May 2025 15:34:10 +0800 Subject: [PATCH 5/8] fts: Rename for good (#366) Signed-off-by: Wish (cherry picked from commit c8b140052244bb008412abdae1d301f71d68f834) --- go-tipb/executor.pb.go | 672 +++++++++++++++++++++-------------------- proto/executor.proto | 10 +- 2 files changed, 345 insertions(+), 337 deletions(-) diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index ead9873c..ced81fd2 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -336,20 +336,20 @@ func (ANNQueryType) EnumDescriptor() ([]byte, []int) { return fileDescriptorExec type FTSQueryType int32 const ( - FTSQueryType_FTSQueryTypeInvalid FTSQueryType = 0 - FTSQueryType_FTSQueryTypeFilter FTSQueryType = 1 - FTSQueryType_FTSQueryTypeTopK FTSQueryType = 2 + FTSQueryType_FTSQueryTypeInvalid FTSQueryType = 0 + FTSQueryType_FTSQueryTypeNoScore FTSQueryType = 1 + FTSQueryType_FTSQueryTypeWithScore FTSQueryType = 2 ) var FTSQueryType_name = map[int32]string{ 0: "FTSQueryTypeInvalid", - 1: "FTSQueryTypeFilter", - 2: "FTSQueryTypeTopK", + 1: "FTSQueryTypeNoScore", + 2: "FTSQueryTypeWithScore", } var FTSQueryType_value = map[string]int32{ - "FTSQueryTypeInvalid": 0, - "FTSQueryTypeFilter": 1, - "FTSQueryTypeTopK": 2, + "FTSQueryTypeInvalid": 0, + "FTSQueryTypeNoScore": 1, + "FTSQueryTypeWithScore": 2, } func (x FTSQueryType) Enum() *FTSQueryType { @@ -1137,7 +1137,11 @@ type FTSQueryInfo struct { ColumnNames []string `protobuf:"bytes,4,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` QueryTokenizer string `protobuf:"bytes,6,opt,name=query_tokenizer,json=queryTokenizer" json:"query_tokenizer"` - // For QueryType == TopK + // For QueryType == WithScore, a top_k can be optionally specified. + // If top_k is specified, it means the TableScan is safe to return at most *top* k results + // because upper executors will have a TopK anyway. + // If not specified (optional, or top_k is very large), then all results will be returned. + // This option is not supported for QueryType == NoScore. TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` // Distinguish match_word, match_expression, match_prefix, match_regexp QueryFunc ScalarFuncSig `protobuf:"varint,20,opt,name=query_func,json=queryFunc,enum=tipb.ScalarFuncSig" json:"query_func"` @@ -15091,329 +15095,329 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 5175 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7b, 0x4b, 0x73, 0x1c, 0xc9, - 0x71, 0x3f, 0x67, 0x30, 0x00, 0x66, 0x72, 0x06, 0x83, 0x46, 0x01, 0x24, 0x9b, 0xe0, 0x92, 0x04, - 0x47, 0xfb, 0x80, 0xf0, 0xd7, 0x92, 0xbb, 0x20, 0xb5, 0x0f, 0xe9, 0xbf, 0xd2, 0xe2, 0xb9, 0x9c, - 0x25, 0x30, 0x80, 0x7a, 0xa0, 0x95, 0x0e, 0x8e, 0xe8, 0x68, 0x74, 0xd7, 0x0c, 0x6a, 0xd1, 0x8f, - 0xd9, 0xae, 0x1e, 0x12, 0xd8, 0x93, 0xce, 0x3e, 0x39, 0xac, 0xb0, 0x2c, 0x3f, 0x65, 0xcb, 0x2f, - 0xc9, 0x92, 0x75, 0xf0, 0x27, 0xf0, 0x51, 0x47, 0x9f, 0x75, 0x70, 0x38, 0xe4, 0x93, 0xbf, 0x81, - 0xc3, 0x27, 0x47, 0x65, 0x55, 0x75, 0xd7, 0x3c, 0xc0, 0xe5, 0x86, 0x75, 0xf0, 0x09, 0xd3, 0x99, - 0xf9, 0xcb, 0xac, 0xca, 0xca, 0xcc, 0x7a, 0x02, 0x9a, 0xf4, 0x82, 0xfa, 0xc3, 0x2c, 0x49, 0x1f, - 0x0c, 0xd2, 0x24, 0x4b, 0x48, 0x25, 0x63, 0x83, 0xd3, 0x55, 0x8b, 0x5e, 0x0c, 0x52, 0xca, 0x39, - 0x4b, 0x62, 0x49, 0x5f, 0x6d, 0x70, 0xff, 0x8c, 0x46, 0x9e, 0xfa, 0x5a, 0xe9, 0x27, 0xfd, 0x04, - 0x7f, 0x3e, 0x14, 0xbf, 0x24, 0xb5, 0xf5, 0xf3, 0x1a, 0x54, 0xf7, 0x94, 0x3a, 0xf2, 0x2a, 0x94, - 0xb3, 0x81, 0x5d, 0x5a, 0x2b, 0xad, 0x37, 0x37, 0x9b, 0x0f, 0x84, 0xd6, 0x07, 0x82, 0x77, 0x72, - 0x39, 0xa0, 0xdb, 0x95, 0x5f, 0xff, 0xdb, 0xbd, 0x6b, 0x4e, 0x39, 0x1b, 0x90, 0x0d, 0xa8, 0x66, - 0xa7, 0xa1, 0xcb, 0x7d, 0x2f, 0xb6, 0xcb, 0x6b, 0xa5, 0xf5, 0xfa, 0xe6, 0xa2, 0x94, 0x3d, 0xf1, - 0x4e, 0x43, 0xda, 0xf5, 0xbd, 0xd8, 0x99, 0xcf, 0x4e, 0x43, 0xf1, 0x43, 0xc8, 0xb2, 0xe0, 0x42, - 0xca, 0xce, 0x98, 0xb2, 0xed, 0x38, 0xa0, 0x17, 0x52, 0x96, 0x05, 0xf8, 0x83, 0xbc, 0x09, 0x35, - 0x4e, 0x43, 0xea, 0x67, 0x2c, 0x89, 0xed, 0x8a, 0x29, 0xdc, 0xd5, 0x64, 0xa7, 0x90, 0x20, 0x8f, - 0xa0, 0xee, 0xf5, 0xfb, 0x29, 0xed, 0x7b, 0x08, 0x98, 0x45, 0xc0, 0x92, 0x04, 0x6c, 0x15, 0x0c, - 0xc7, 0x94, 0x22, 0x77, 0xa1, 0x92, 0x25, 0x83, 0x8e, 0x3d, 0x87, 0xd2, 0xa0, 0xda, 0x9d, 0x0c, - 0x3a, 0x0e, 0xd2, 0xc9, 0x7d, 0x98, 0x0d, 0x59, 0xc4, 0x32, 0x7b, 0x1e, 0x05, 0xea, 0x52, 0xe0, - 0x40, 0x90, 0x1c, 0xc9, 0x21, 0x3b, 0xb0, 0x44, 0x2f, 0xfc, 0x33, 0x2f, 0xee, 0x53, 0x37, 0xa5, - 0x3e, 0x65, 0xcf, 0x68, 0x6a, 0x57, 0x51, 0xfc, 0x86, 0xf6, 0x99, 0x64, 0x3b, 0x8a, 0xeb, 0x58, - 0x74, 0x8c, 0x22, 0xda, 0xf1, 0x69, 0xc2, 0x62, 0xbb, 0x66, 0xb6, 0xe3, 0xe3, 0x84, 0xc5, 0x0e, - 0xd2, 0xc9, 0x3d, 0xa8, 0xeb, 0x41, 0x76, 0x59, 0x60, 0xc3, 0x5a, 0x69, 0xbd, 0xe6, 0x80, 0x26, - 0xb5, 0x03, 0xa1, 0xe0, 0x9c, 0x85, 0xa1, 0x5d, 0x37, 0x15, 0x3c, 0x65, 0x61, 0xe8, 0x20, 0x9d, - 0x7c, 0x00, 0x8b, 0x79, 0x2b, 0x39, 0x8d, 0x03, 0x9a, 0xda, 0x0d, 0x14, 0x5d, 0x19, 0x6d, 0x63, - 0x17, 0x79, 0x4e, 0x93, 0x8e, 0x7c, 0x93, 0xb7, 0x00, 0x8e, 0xd3, 0xe4, 0x53, 0x35, 0x18, 0x0b, - 0x88, 0xb4, 0x24, 0xb2, 0xa0, 0x3b, 0x86, 0x0c, 0xf9, 0x18, 0x56, 0x06, 0x5e, 0x9a, 0x31, 0xf1, - 0xe1, 0x66, 0x22, 0x12, 0xe4, 0xa8, 0x37, 0x11, 0x6b, 0x2b, 0xac, 0x96, 0x28, 0x42, 0x85, 0x0c, - 0x26, 0x68, 0xa2, 0x73, 0x3c, 0x49, 0x33, 0x7b, 0xd1, 0xec, 0x5c, 0x37, 0x49, 0x33, 0x07, 0xe9, - 0xe4, 0x55, 0x98, 0x7b, 0xce, 0xe2, 0x20, 0x79, 0x6e, 0x5b, 0x28, 0xd1, 0x90, 0x12, 0xdf, 0x43, - 0x9a, 0xa3, 0x78, 0xa4, 0x03, 0xf7, 0x7b, 0x2c, 0xa6, 0x6e, 0x3f, 0xf5, 0x58, 0x4c, 0x03, 0x97, - 0x9f, 0x0d, 0x7b, 0x3d, 0xd1, 0xac, 0x2c, 0xa5, 0x5e, 0xe4, 0xfa, 0xc9, 0x30, 0xce, 0xec, 0xa5, - 0xb5, 0xd2, 0x7a, 0x45, 0x05, 0xf7, 0x1d, 0x21, 0xfe, 0x91, 0x94, 0xee, 0x4a, 0xe1, 0x2e, 0xca, - 0xee, 0x08, 0x51, 0xf2, 0x31, 0xdc, 0x9b, 0xaa, 0xef, 0xd4, 0xcb, 0xfc, 0x33, 0x97, 0xb3, 0xcf, - 0xa9, 0x4d, 0x0c, 0x6d, 0xb7, 0x27, 0xb5, 0x6d, 0x0b, 0xc9, 0x2e, 0xfb, 0x9c, 0x8a, 0x1e, 0xd0, - 0x8b, 0x81, 0x17, 0x07, 0xf6, 0xb2, 0xd9, 0x83, 0x3d, 0xa4, 0x39, 0x8a, 0x47, 0xde, 0x80, 0x79, - 0xf9, 0x6b, 0xd3, 0x5e, 0x41, 0xb1, 0x05, 0x53, 0x6c, 0xd3, 0xd1, 0x5c, 0x31, 0xda, 0xa7, 0x69, - 0xe2, 0x05, 0xbe, 0xc7, 0x33, 0xf7, 0xb3, 0x21, 0x4d, 0x2f, 0xed, 0xeb, 0xe6, 0x68, 0x6f, 0x6b, - 0xe6, 0x77, 0x04, 0xcf, 0x69, 0x9e, 0x8e, 0x7c, 0x93, 0xc7, 0xd0, 0x60, 0x22, 0x1f, 0xdd, 0x30, - 0x49, 0xce, 0x87, 0x03, 0xdb, 0x36, 0x73, 0x09, 0x33, 0xf5, 0x20, 0x49, 0xce, 0xbf, 0x3b, 0x70, - 0xea, 0x4c, 0x7f, 0x0c, 0x07, 0xe4, 0x0e, 0xc0, 0xc0, 0x4b, 0x69, 0x9c, 0xb9, 0x2c, 0xb8, 0xb0, - 0x6f, 0xad, 0x95, 0xd6, 0x17, 0x9c, 0x9a, 0xa4, 0xb4, 0x83, 0x0b, 0x72, 0x0c, 0x37, 0xe8, 0xc5, - 0x20, 0xf4, 0x58, 0xec, 0xf6, 0x92, 0xd4, 0xf5, 0x93, 0x38, 0x56, 0xe1, 0xb4, 0x8a, 0xea, 0x57, - 0xf3, 0xbe, 0x08, 0x99, 0xfd, 0x24, 0xdd, 0xc9, 0x25, 0x9c, 0x15, 0x3a, 0x85, 0xda, 0xfa, 0xe5, - 0x0c, 0x34, 0x47, 0xe3, 0x96, 0xac, 0x1b, 0x15, 0x8b, 0x8c, 0x46, 0xf6, 0x44, 0xd5, 0x5a, 0xa2, - 0xb1, 0x9f, 0x04, 0x34, 0x70, 0x33, 0x8f, 0x9f, 0xbb, 0x11, 0xcd, 0x3c, 0xbb, 0xbc, 0x36, 0xb3, - 0xde, 0x70, 0x16, 0x15, 0xe3, 0xc4, 0xe3, 0xe7, 0x87, 0x34, 0xf3, 0xc8, 0xdb, 0xd0, 0x2c, 0x62, - 0xf9, 0x9c, 0x5e, 0x72, 0x7b, 0x66, 0x6d, 0xa6, 0x88, 0xc4, 0xbd, 0x8b, 0x41, 0xea, 0x2c, 0xe4, - 0x12, 0x4f, 0xe9, 0x25, 0x27, 0xaf, 0xc2, 0xac, 0x7f, 0xc6, 0xc2, 0x40, 0x15, 0x2e, 0xa3, 0x7a, - 0x8a, 0x84, 0x75, 0x24, 0x93, 0xbc, 0x06, 0xb3, 0xd9, 0xe5, 0x80, 0x72, 0x7b, 0x16, 0xf5, 0xa9, - 0xf2, 0xb6, 0xcf, 0x68, 0x18, 0x88, 0xe6, 0x3a, 0x92, 0x4b, 0xde, 0x85, 0x45, 0x2f, 0x0c, 0xdd, - 0x9e, 0xa0, 0xbb, 0x12, 0x30, 0x37, 0x1d, 0xb0, 0xe0, 0x85, 0x61, 0xfe, 0xc5, 0xc9, 0x07, 0x50, - 0xf7, 0x93, 0x48, 0x4f, 0x03, 0x58, 0xc4, 0x9a, 0x9b, 0xd7, 0x25, 0x68, 0xa7, 0x60, 0x1c, 0x26, - 0x81, 0x76, 0x8d, 0x29, 0x4f, 0x0e, 0xe0, 0xc6, 0x70, 0xa0, 0xd3, 0x23, 0xa3, 0x86, 0xa3, 0xaa, - 0x68, 0xfe, 0xa6, 0xea, 0x95, 0x74, 0xd7, 0xf6, 0x65, 0x46, 0x79, 0x37, 0x64, 0x3e, 0x75, 0x96, - 0x35, 0x6c, 0x27, 0xa3, 0xda, 0x8b, 0xad, 0xdf, 0x2f, 0x41, 0xdd, 0x08, 0x1e, 0xf2, 0x16, 0xac, - 0xc8, 0x28, 0x3b, 0xf3, 0xe2, 0x20, 0xa4, 0x6e, 0xd2, 0xeb, 0x71, 0x9a, 0x71, 0xbb, 0xb4, 0x36, - 0xb3, 0xbe, 0xe0, 0x10, 0xe4, 0x3d, 0x41, 0xd6, 0x91, 0xe4, 0x88, 0x08, 0x3b, 0xa7, 0x74, 0xe0, - 0x26, 0xa9, 0xa8, 0x5f, 0x62, 0xae, 0xa9, 0x3a, 0x35, 0x41, 0x39, 0x12, 0x04, 0x31, 0xb9, 0xa0, - 0x5b, 0x53, 0x1a, 0xab, 0x01, 0x1a, 0x77, 0x7b, 0xce, 0x6f, 0xbd, 0x07, 0x4b, 0x13, 0xcd, 0x26, - 0x5f, 0x81, 0x05, 0x33, 0x26, 0x64, 0x53, 0x1a, 0x4e, 0xc3, 0x88, 0x07, 0xde, 0xfa, 0x4d, 0x09, - 0xac, 0xf1, 0x8a, 0x3e, 0x3d, 0x9a, 0x4a, 0xd3, 0xa3, 0xe9, 0x2d, 0xa8, 0x9b, 0x23, 0x59, 0x9e, - 0x3e, 0x92, 0xd0, 0x2b, 0x86, 0xb1, 0x85, 0x51, 0x3d, 0x73, 0x55, 0x54, 0x63, 0x3c, 0xef, 0xc2, - 0xbd, 0x24, 0x65, 0x7d, 0x16, 0x7b, 0x21, 0x8e, 0xd5, 0x20, 0x0d, 0x12, 0x7f, 0x48, 0x53, 0xa3, - 0x3d, 0x15, 0x6c, 0xcf, 0x6d, 0x2d, 0xb6, 0x93, 0xd1, 0x63, 0x25, 0x94, 0x8f, 0xd1, 0x0f, 0x67, - 0xa0, 0xb1, 0xd5, 0xe9, 0x60, 0x19, 0x68, 0xc7, 0xbd, 0x84, 0xbc, 0x0b, 0x80, 0xf5, 0x03, 0x1b, - 0x3b, 0x9a, 0x58, 0x5a, 0xce, 0x48, 0xac, 0xda, 0x67, 0x9a, 0x40, 0xda, 0xb0, 0x18, 0x30, 0x9e, - 0x79, 0xb1, 0x4f, 0x85, 0xf5, 0x94, 0xf9, 0x38, 0x60, 0x4d, 0x9d, 0xe7, 0x9f, 0x50, 0x3f, 0x4b, - 0xd2, 0x5d, 0x25, 0x72, 0x88, 0x12, 0x4a, 0x4b, 0x33, 0x18, 0xa1, 0x92, 0x5b, 0x30, 0x9b, 0x25, - 0x03, 0xf7, 0x1c, 0x3d, 0xb0, 0xa0, 0x84, 0xc4, 0xfc, 0xfc, 0x94, 0xbc, 0x26, 0x02, 0x3c, 0x1c, - 0x46, 0xb1, 0x1b, 0x7b, 0x11, 0xc5, 0x64, 0xab, 0x29, 0x01, 0x90, 0x8c, 0x8e, 0x17, 0x51, 0x72, - 0x1f, 0x6a, 0x4a, 0x8c, 0x05, 0xb8, 0x32, 0x98, 0x51, 0x42, 0x55, 0x49, 0xc6, 0x09, 0xb4, 0x9e, - 0xd2, 0x9e, 0xfb, 0x8c, 0xfa, 0x6e, 0xef, 0xd1, 0x26, 0x2e, 0x08, 0x1a, 0x4e, 0x2d, 0xa5, 0xbd, - 0x4f, 0xa8, 0xbf, 0xff, 0x68, 0x93, 0xdc, 0x83, 0xaa, 0x8c, 0x56, 0x16, 0xe0, 0xec, 0xae, 0x35, - 0xcc, 0x23, 0xb5, 0x2d, 0x8a, 0x73, 0x23, 0xf2, 0x2e, 0x5c, 0xdd, 0x76, 0x9c, 0xa3, 0x4b, 0x3a, - 0xab, 0x22, 0xef, 0x42, 0x77, 0x95, 0x6c, 0x40, 0xf3, 0x2c, 0xe6, 0xcf, 0x5d, 0xda, 0x73, 0x39, - 0xf5, 0x52, 0xff, 0x0c, 0x8b, 0xb9, 0xee, 0x57, 0x43, 0xf0, 0xf6, 0x7a, 0x5d, 0xe4, 0x7c, 0x5c, - 0xa9, 0xce, 0x5b, 0xd5, 0xd6, 0x6f, 0xca, 0xd0, 0xd8, 0x3f, 0xe9, 0xbe, 0xd4, 0xa8, 0x68, 0xb9, - 0xe9, 0xa3, 0x62, 0xf6, 0xa2, 0x3c, 0xad, 0x17, 0x1b, 0x30, 0x2f, 0x5d, 0xa2, 0x6b, 0x9c, 0xa5, - 0xab, 0x05, 0xfa, 0x29, 0xee, 0x25, 0x8e, 0x16, 0x20, 0xf7, 0xa1, 0x61, 0x38, 0x9f, 0x63, 0x7c, - 0xd5, 0x9c, 0x7a, 0xe1, 0x77, 0x4e, 0xbe, 0x92, 0x37, 0x94, 0x5e, 0x64, 0xe8, 0xf9, 0xda, 0x68, - 0xa3, 0xe8, 0x45, 0x46, 0xde, 0x84, 0x45, 0x25, 0x94, 0x9c, 0xd3, 0x98, 0x7d, 0x4e, 0x53, 0x74, - 0xbf, 0x96, 0x6c, 0x4a, 0x49, 0xcd, 0x23, 0xcb, 0x3a, 0x1c, 0x00, 0xa7, 0x18, 0x19, 0x08, 0xef, - 0x69, 0x43, 0xbd, 0x61, 0xec, 0xa3, 0x43, 0x9b, 0x9b, 0xcb, 0x6a, 0xa1, 0xe0, 0x7b, 0xa1, 0x97, - 0xee, 0x0f, 0x63, 0xbf, 0xcb, 0xfa, 0x23, 0xd6, 0x05, 0xad, 0xf5, 0x83, 0x59, 0xa8, 0x15, 0x4b, - 0x8d, 0x7b, 0x50, 0x95, 0x8b, 0x15, 0x16, 0xa0, 0x5f, 0x73, 0x07, 0x21, 0x75, 0xd4, 0x41, 0xe5, - 0x2f, 0x72, 0x90, 0x0d, 0x95, 0x80, 0x72, 0x1f, 0xe3, 0xb6, 0xaa, 0xe3, 0x56, 0x50, 0xc8, 0xd7, - 0x80, 0x0c, 0x52, 0x16, 0x79, 0xe9, 0xa5, 0x9b, 0x07, 0xa6, 0x74, 0xe0, 0x8c, 0x63, 0x29, 0x8e, - 0xd2, 0x18, 0x70, 0xf2, 0x21, 0x58, 0x31, 0xbd, 0xc8, 0xdc, 0x94, 0x7a, 0x81, 0x4b, 0xe3, 0x3e, - 0x8b, 0x29, 0xfa, 0xb2, 0xa9, 0x8d, 0xef, 0x21, 0xcd, 0x18, 0xf2, 0xa6, 0x90, 0x77, 0xa8, 0x17, - 0x48, 0x0e, 0xf9, 0x1a, 0xcc, 0xa5, 0xa2, 0x5c, 0xe8, 0x89, 0x43, 0x15, 0xc6, 0xa7, 0xf4, 0xd2, - 0x11, 0x64, 0x85, 0x52, 0x32, 0xe4, 0x7d, 0xb8, 0xa5, 0x5b, 0x37, 0x48, 0x69, 0x8f, 0x5d, 0x98, - 0x8d, 0x9c, 0xc7, 0x46, 0xde, 0x50, 0x02, 0xc7, 0xc8, 0x2f, 0x9a, 0x3a, 0x5a, 0xa2, 0xab, 0xe3, - 0x25, 0x7a, 0x0d, 0x1a, 0x8c, 0xbb, 0x3d, 0xb1, 0x2c, 0xc1, 0xd5, 0x60, 0x0d, 0x05, 0x80, 0xf1, - 0x7d, 0x8f, 0x67, 0x38, 0x00, 0x87, 0x70, 0x67, 0x30, 0xe4, 0x67, 0x34, 0x70, 0x83, 0xe4, 0x79, - 0xec, 0xf6, 0x58, 0x98, 0x51, 0x5c, 0x2d, 0x04, 0x38, 0xb9, 0x72, 0x1b, 0x26, 0xa6, 0xde, 0x55, - 0x09, 0xd8, 0x4d, 0x9e, 0xc7, 0xfb, 0x28, 0xbe, 0x93, 0x4b, 0x93, 0x1d, 0x58, 0x4e, 0x87, 0x71, - 0xc6, 0x22, 0xaa, 0x55, 0x85, 0x8c, 0x67, 0x76, 0x1d, 0x95, 0xa8, 0x00, 0x71, 0xa4, 0x80, 0xc4, - 0x3a, 0x4b, 0xa9, 0xf9, 0x79, 0xc0, 0xb8, 0x08, 0x50, 0x4b, 0xa4, 0xf6, 0x73, 0x8f, 0x65, 0x2e, - 0xaa, 0x8a, 0x38, 0xae, 0x9e, 0x67, 0x95, 0xdf, 0x16, 0x22, 0xef, 0xe2, 0x7b, 0x1e, 0xcb, 0x4e, - 0x58, 0x44, 0x0f, 0x39, 0x79, 0x08, 0x35, 0x2f, 0x8e, 0xd5, 0xba, 0x4b, 0xae, 0x95, 0xc7, 0x4a, - 0x26, 0x86, 0x49, 0xd5, 0x8b, 0x63, 0xfc, 0x6a, 0xfd, 0xa4, 0x02, 0x64, 0x72, 0x29, 0xfc, 0x7f, - 0x33, 0x16, 0x5f, 0x18, 0x1b, 0xb3, 0x2f, 0x8c, 0x8d, 0xaf, 0x40, 0xb1, 0x48, 0x42, 0xf1, 0x39, - 0x14, 0x6f, 0xe4, 0x44, 0x21, 0x34, 0x1e, 0x21, 0xf3, 0x5f, 0x3e, 0x42, 0xaa, 0xbf, 0x8b, 0x08, - 0xa9, 0xfd, 0xaf, 0x23, 0x04, 0x5e, 0x32, 0x42, 0xea, 0x2f, 0x11, 0x21, 0xff, 0x3d, 0x0b, 0x15, - 0xb1, 0x1d, 0x24, 0x6f, 0x43, 0x4d, 0x6c, 0x08, 0xcd, 0xc2, 0xdf, 0x2c, 0x76, 0x8b, 0x46, 0x05, - 0xa8, 0x7e, 0xaa, 0xbe, 0xc9, 0xb7, 0xa0, 0x89, 0x10, 0xb1, 0x5b, 0x94, 0xb8, 0xb2, 0x39, 0x61, - 0x08, 0xdc, 0xd8, 0xae, 0xbe, 0xf1, 0xa9, 0x41, 0xfb, 0x32, 0xcb, 0x2a, 0x31, 0xd1, 0xb2, 0x38, - 0xa6, 0x29, 0x6e, 0x01, 0x2a, 0xe6, 0x44, 0x8b, 0x64, 0xb1, 0x0f, 0x78, 0x0b, 0x9a, 0x21, 0xed, - 0x65, 0x2e, 0xb6, 0x09, 0x17, 0xd3, 0xb3, 0x13, 0xe3, 0xd5, 0x10, 0x12, 0xa2, 0x61, 0xb8, 0x96, - 0xde, 0x84, 0xc5, 0x94, 0xf5, 0xcf, 0x4c, 0xc8, 0xdc, 0xe4, 0xfa, 0x1b, 0x45, 0x72, 0xcc, 0x5b, - 0x50, 0x1f, 0xa4, 0xc9, 0x29, 0x55, 0x8b, 0xac, 0xf9, 0x2b, 0x16, 0x59, 0x28, 0x23, 0x17, 0x59, - 0x6f, 0x41, 0xfd, 0x74, 0xc8, 0xf2, 0x65, 0x59, 0xf5, 0x0a, 0x04, 0xca, 0x48, 0xc4, 0x23, 0x58, - 0xc4, 0x9e, 0x18, 0xa1, 0x57, 0x9b, 0x68, 0x17, 0x76, 0xd6, 0x08, 0xb7, 0xaf, 0x83, 0x25, 0x3b, - 0xf3, 0xc2, 0x92, 0x26, 0x3b, 0x3c, 0x0a, 0x4b, 0xb2, 0xb3, 0xd1, 0x38, 0xaf, 0x4f, 0xc2, 0x50, - 0xc6, 0x80, 0x3d, 0x81, 0xdb, 0x12, 0x46, 0x3f, 0x33, 0x90, 0x6e, 0x2f, 0x4d, 0x22, 0x97, 0xc5, - 0x76, 0x63, 0x42, 0xc3, 0x4d, 0x14, 0xdf, 0xfb, 0xac, 0xd0, 0xb1, 0x9f, 0x26, 0x51, 0x3b, 0x26, - 0x8f, 0xe1, 0x26, 0xe3, 0x6e, 0x3c, 0x0c, 0x43, 0xd7, 0x7b, 0xee, 0xa5, 0xd4, 0xe5, 0x34, 0x62, - 0x38, 0x22, 0x58, 0xe2, 0xaa, 0xce, 0x32, 0xe3, 0x9d, 0x61, 0x18, 0x6e, 0x09, 0x66, 0x97, 0x46, - 0x0c, 0xc3, 0xf5, 0x8a, 0xe4, 0x6a, 0x7e, 0x99, 0xe4, 0x6a, 0xfd, 0x67, 0x19, 0x16, 0x46, 0x84, - 0xc8, 0x0a, 0x94, 0x55, 0x4d, 0xd4, 0x09, 0x56, 0x66, 0x01, 0x79, 0x0c, 0x16, 0x4f, 0x86, 0xa9, - 0x4f, 0x5d, 0x7a, 0x31, 0x50, 0x96, 0xca, 0x93, 0x03, 0x22, 0x65, 0xc4, 0x6f, 0x4c, 0xdd, 0xc7, - 0x60, 0x65, 0x5e, 0xda, 0xa7, 0x99, 0x81, 0x9a, 0xdc, 0xde, 0x35, 0xa5, 0x4c, 0x8e, 0xda, 0x04, - 0x92, 0xdb, 0x2a, 0xce, 0x65, 0xcc, 0xf5, 0xa7, 0xa5, 0xed, 0xe4, 0x67, 0x34, 0x9b, 0x40, 0x72, - 0x4b, 0x05, 0xc6, 0x5c, 0x14, 0x59, 0xda, 0x4a, 0x8e, 0x79, 0x07, 0xe6, 0xd3, 0x9e, 0xcc, 0xda, - 0x39, 0xcc, 0xda, 0x9b, 0x53, 0x9c, 0x66, 0xa4, 0xee, 0x5c, 0xda, 0xc3, 0xa4, 0x95, 0xb8, 0x28, - 0x09, 0xa8, 0xda, 0xf5, 0x4d, 0xc3, 0x19, 0xfb, 0xbe, 0xb9, 0xb4, 0x27, 0xbe, 0x5a, 0x3f, 0x2c, - 0x43, 0x2d, 0x3f, 0x8b, 0xfb, 0xe2, 0x19, 0xe8, 0x77, 0xba, 0x9e, 0xd4, 0x53, 0x54, 0x65, 0x62, - 0x8a, 0xba, 0x01, 0x73, 0xc3, 0x98, 0x7d, 0x36, 0x94, 0xcb, 0x9e, 0xaa, 0xa3, 0xbe, 0xae, 0x98, - 0xba, 0xe6, 0xae, 0x98, 0xba, 0xde, 0x83, 0x66, 0x2f, 0xe3, 0xb2, 0xea, 0xba, 0x2c, 0xee, 0x25, - 0xea, 0x54, 0x6f, 0x6c, 0xe5, 0x8c, 0x8d, 0x6a, 0xf4, 0x32, 0x9e, 0x7f, 0xb5, 0x7e, 0x58, 0x82, - 0x5a, 0x7e, 0xe8, 0x48, 0x36, 0x00, 0x8c, 0x2c, 0x2c, 0x4d, 0xc4, 0x8a, 0xc1, 0x25, 0x8f, 0xa1, - 0x99, 0x0e, 0x62, 0x33, 0x6b, 0x65, 0x44, 0xaa, 0x93, 0x1b, 0x67, 0x10, 0xab, 0xea, 0x35, 0x88, - 0x8d, 0xb4, 0xcd, 0x4f, 0x0f, 0x66, 0x5e, 0x70, 0x7a, 0xd0, 0xfa, 0x41, 0xc9, 0x3c, 0x95, 0x23, - 0x6b, 0x30, 0x2b, 0x22, 0x78, 0x5a, 0x8b, 0x24, 0x83, 0x6c, 0x40, 0x4d, 0x34, 0x46, 0x4a, 0x4d, - 0x6d, 0x47, 0x35, 0x95, 0x3f, 0x5e, 0xb6, 0x09, 0xff, 0x52, 0x86, 0xba, 0x71, 0xb8, 0x4a, 0x5e, - 0x83, 0x6a, 0x3f, 0x4d, 0x86, 0x03, 0xf7, 0xf4, 0x72, 0x4a, 0x33, 0xe6, 0x91, 0xb7, 0x7d, 0x29, - 0xc4, 0xbc, 0x7e, 0x5f, 0xae, 0xd5, 0x27, 0x33, 0x74, 0xde, 0xeb, 0xf7, 0xc5, 0xd2, 0x9c, 0xac, - 0x41, 0x55, 0x1e, 0x23, 0xd0, 0x60, 0x64, 0xdd, 0x92, 0x53, 0xc9, 0x43, 0x68, 0x88, 0x1e, 0xe5, - 0x36, 0x2b, 0xd3, 0x3a, 0x05, 0xe9, 0x20, 0xfe, 0x48, 0x59, 0x56, 0x80, 0xdc, 0xfa, 0xec, 0x55, - 0x80, 0x2d, 0xd5, 0x86, 0xdc, 0x0f, 0x73, 0x2f, 0x3a, 0xc8, 0x79, 0x1f, 0x1a, 0x83, 0x94, 0xa2, - 0xda, 0xc9, 0x9c, 0x3b, 0x61, 0xfb, 0xa1, 0xc7, 0xcf, 0x8e, 0x53, 0xba, 0xd5, 0xef, 0x8b, 0x2c, - 0x13, 0xf3, 0x8e, 0xfe, 0xdd, 0xfa, 0x69, 0x09, 0x2a, 0x27, 0xc9, 0xa0, 0x43, 0xde, 0x80, 0x2a, - 0xae, 0x9a, 0x0b, 0xdf, 0xa9, 0x53, 0xc0, 0xed, 0xcb, 0x76, 0x46, 0x23, 0x67, 0x1e, 0xb9, 0xdb, - 0x97, 0x64, 0x55, 0x1f, 0x4a, 0x97, 0x8d, 0xe3, 0x45, 0x75, 0x1a, 0xfd, 0x52, 0xc3, 0x26, 0xbc, - 0x50, 0xac, 0xc4, 0x72, 0xb7, 0x8d, 0x9a, 0xab, 0xe7, 0x12, 0xdb, 0x97, 0xad, 0x7f, 0x2e, 0xc1, - 0x2c, 0x9e, 0x7a, 0x17, 0xc6, 0x4b, 0x2f, 0x30, 0x5e, 0xfe, 0x32, 0xc6, 0x67, 0xbe, 0xc0, 0x38, - 0x79, 0x07, 0x96, 0xb2, 0x74, 0x18, 0xfb, 0x5e, 0x46, 0xc5, 0xec, 0x8f, 0xf1, 0xab, 0x9a, 0x3c, - 0x32, 0xf9, 0x69, 0xa1, 0xa7, 0xf4, 0x52, 0x10, 0x5a, 0x1f, 0x42, 0xe5, 0x29, 0x0b, 0x43, 0xf2, - 0x0a, 0xcc, 0xf9, 0x49, 0x1c, 0xb7, 0x77, 0x47, 0xda, 0xac, 0x68, 0xa2, 0x43, 0x72, 0x1d, 0x56, - 0x36, 0x22, 0x4c, 0x92, 0x5a, 0x5b, 0xb0, 0x32, 0xed, 0x3c, 0x92, 0x7c, 0x15, 0x16, 0x8a, 0xf3, - 0x4b, 0x5d, 0x1c, 0xb5, 0xe2, 0x46, 0xc1, 0x6a, 0x07, 0xad, 0x5f, 0xcc, 0x80, 0xad, 0x3d, 0x20, - 0xff, 0xb2, 0x24, 0xee, 0x0e, 0x23, 0x51, 0x9a, 0xc8, 0x06, 0x2c, 0xe1, 0xdc, 0x38, 0x48, 0x13, - 0x9f, 0x72, 0x4e, 0x03, 0x17, 0x0b, 0x4a, 0x69, 0xbd, 0xe2, 0x2c, 0x0a, 0xc6, 0xb1, 0xa6, 0x77, - 0x44, 0xf2, 0x2e, 0xc5, 0xc3, 0x48, 0x88, 0x06, 0x43, 0x9f, 0x06, 0x6e, 0x9a, 0x3c, 0xe7, 0x32, - 0x02, 0x9c, 0xc5, 0x78, 0x18, 0x1d, 0x2b, 0xba, 0x93, 0x3c, 0xe7, 0xe4, 0x35, 0x68, 0x0a, 0x59, - 0x96, 0xd1, 0xd4, 0x93, 0x55, 0x67, 0x06, 0x05, 0x17, 0xe2, 0x61, 0xd4, 0xce, 0x89, 0xe3, 0xb7, - 0x0a, 0x95, 0x89, 0x5b, 0x85, 0x35, 0xa8, 0xfb, 0x49, 0xec, 0x0f, 0xd3, 0x94, 0xc6, 0xfe, 0x25, - 0x16, 0xdf, 0x8a, 0x63, 0x92, 0xc8, 0x01, 0xac, 0x64, 0xac, 0x27, 0xc2, 0x1b, 0x97, 0xeb, 0xa2, - 0xd0, 0xe1, 0x56, 0x7f, 0xce, 0x3c, 0xe6, 0x57, 0x09, 0x20, 0xa6, 0x94, 0x1d, 0xc9, 0x7f, 0x72, - 0xcd, 0x21, 0x0a, 0x67, 0x50, 0x45, 0xbb, 0xd3, 0xa1, 0xd0, 0xc1, 0x87, 0xd1, 0x20, 0xd3, 0x47, - 0x96, 0x0d, 0x67, 0x21, 0x1d, 0xee, 0x14, 0x44, 0xf2, 0x71, 0x61, 0x14, 0x57, 0xdc, 0x5c, 0xba, - 0x53, 0xdd, 0xba, 0x8c, 0x1a, 0x15, 0xab, 0x6e, 0xe5, 0xee, 0xdc, 0xa4, 0x41, 0xdb, 0x6e, 0x00, - 0xec, 0xd2, 0xcc, 0x63, 0x21, 0x16, 0xfa, 0x3e, 0xac, 0x28, 0x5c, 0x3e, 0x56, 0x78, 0xe0, 0x72, - 0x04, 0xcb, 0x54, 0x13, 0x94, 0x39, 0x46, 0x75, 0xa5, 0xbd, 0x3b, 0x1a, 0xe7, 0xe3, 0xa3, 0xec, - 0x10, 0x3a, 0x4a, 0x61, 0x94, 0xb7, 0x7e, 0x0f, 0x56, 0x95, 0x21, 0x87, 0xf6, 0x59, 0x12, 0x77, - 0x86, 0xd1, 0x51, 0xaf, 0x1d, 0xab, 0x23, 0xa2, 0x7b, 0x50, 0x67, 0xea, 0xb7, 0x8e, 0xae, 0x9a, - 0x03, 0x9a, 0xd4, 0x0e, 0xc4, 0x36, 0x3b, 0x45, 0x9c, 0x1b, 0x0f, 0x23, 0x15, 0x05, 0xb5, 0x54, - 0x6b, 0x6a, 0xfd, 0xd7, 0x1d, 0x20, 0x93, 0x4e, 0x27, 0x8f, 0x61, 0x25, 0x88, 0x7a, 0x4c, 0x5d, - 0xc5, 0xc4, 0x34, 0x70, 0x07, 0x9e, 0x7f, 0xae, 0x22, 0x6e, 0xbb, 0x6c, 0x97, 0x1c, 0x22, 0xf9, - 0x5d, 0xc9, 0x3e, 0x16, 0x5c, 0x13, 0x75, 0xce, 0x06, 0x83, 0x1c, 0x55, 0x9e, 0x40, 0x49, 0xb6, - 0x44, 0xbd, 0x0b, 0xb6, 0x42, 0x05, 0x5e, 0xe6, 0xe5, 0x06, 0x31, 0x6a, 0x65, 0x30, 0x5e, 0x97, - 0xfc, 0x5d, 0x2f, 0xf3, 0x94, 0x3d, 0x8c, 0xdd, 0x71, 0xa0, 0xb2, 0x89, 0xc0, 0xca, 0x04, 0x50, - 0x72, 0x11, 0xf8, 0x1e, 0xdc, 0xcc, 0x92, 0xcc, 0x0b, 0x5d, 0x05, 0x4f, 0xb9, 0x1b, 0x26, 0x5e, - 0x20, 0xb6, 0x62, 0xb3, 0x79, 0x53, 0x97, 0x51, 0x64, 0x17, 0x25, 0x1c, 0x7e, 0x90, 0x78, 0x01, - 0x6e, 0xc7, 0x56, 0x46, 0x91, 0x54, 0xc2, 0xe6, 0xd0, 0xdc, 0x92, 0x09, 0xa1, 0x08, 0xf8, 0xba, - 0x36, 0x25, 0x77, 0x0c, 0x3c, 0xf6, 0x06, 0xfc, 0x2c, 0xc9, 0x04, 0x66, 0x1e, 0x31, 0x52, 0xdf, - 0xb6, 0xe0, 0x76, 0x15, 0xf3, 0x10, 0x37, 0xc0, 0x61, 0xe2, 0x7b, 0xa1, 0x2b, 0x47, 0x8a, 0x63, - 0xc0, 0x56, 0x9c, 0x06, 0x12, 0x65, 0x1c, 0x60, 0xee, 0xa6, 0x34, 0x4a, 0x32, 0x9a, 0x4b, 0xd5, - 0x64, 0xee, 0x4a, 0xaa, 0x16, 0x7b, 0x1d, 0x16, 0x87, 0x9c, 0xa6, 0xb2, 0xad, 0xa7, 0x97, 0x19, - 0x95, 0x1b, 0xce, 0x8a, 0xb3, 0x20, 0xc8, 0xa2, 0x9d, 0x78, 0xb0, 0x4d, 0xde, 0x86, 0xeb, 0xb2, - 0xa9, 0x21, 0xf5, 0xd2, 0x58, 0x03, 0x22, 0x8e, 0xdb, 0xce, 0x8a, 0x43, 0x90, 0x79, 0x20, 0x79, - 0xaa, 0x77, 0xff, 0x1f, 0x6e, 0x07, 0x8c, 0x8b, 0xb9, 0x0c, 0x65, 0x7d, 0xcf, 0x3f, 0xa3, 0xee, - 0x19, 0xcb, 0x94, 0x99, 0x06, 0x02, 0x6f, 0x4a, 0x11, 0x01, 0xd9, 0x11, 0x02, 0x4f, 0x58, 0x26, - 0x0d, 0x7e, 0x0b, 0x5e, 0x99, 0x44, 0x47, 0x8c, 0x73, 0x05, 0x5f, 0x40, 0xb8, 0x3d, 0x06, 0x3f, - 0x64, 0x9c, 0x4b, 0xfc, 0x3b, 0x60, 0x8f, 0x0f, 0xa3, 0x7f, 0x46, 0xfd, 0x73, 0xd1, 0xe6, 0xa6, - 0xe1, 0x5c, 0x3d, 0x86, 0x3b, 0x82, 0x79, 0xc8, 0xc5, 0x5a, 0x90, 0x67, 0x9e, 0x1e, 0x3d, 0xed, - 0xbb, 0x45, 0x44, 0x58, 0xc8, 0x11, 0xc6, 0xb4, 0xfb, 0x56, 0xa1, 0xca, 0x69, 0x3f, 0xa2, 0x71, - 0xc6, 0xf1, 0xd2, 0xb0, 0xe2, 0xe4, 0xdf, 0x32, 0xb9, 0x3c, 0x7d, 0x07, 0xb0, 0xa4, 0x93, 0xcb, - 0x93, 0x17, 0x00, 0x82, 0x1d, 0xd0, 0x30, 0xf3, 0x64, 0x48, 0x12, 0xc9, 0x46, 0x0a, 0x86, 0xe1, - 0x3d, 0xa8, 0x4b, 0xb6, 0xec, 0xee, 0x32, 0xf2, 0x25, 0x42, 0x76, 0xf0, 0x75, 0x58, 0x8c, 0x9e, - 0xf9, 0xbe, 0xcb, 0xe2, 0xc1, 0x30, 0x93, 0x4a, 0x56, 0xe4, 0xc8, 0x09, 0x72, 0x5b, 0x50, 0x51, - 0xd1, 0x3a, 0x58, 0x86, 0x9c, 0xd4, 0x76, 0x1d, 0x05, 0x9b, 0xb9, 0xa0, 0xd4, 0xa8, 0x25, 0x93, - 0x61, 0x96, 0xab, 0xbc, 0x51, 0x48, 0x1e, 0x21, 0x19, 0x75, 0xae, 0x41, 0x23, 0x8c, 0x30, 0xa7, - 0xa4, 0xd4, 0x4d, 0xd9, 0xba, 0x30, 0x12, 0x89, 0x84, 0x12, 0xdf, 0x84, 0x55, 0x33, 0xb4, 0xd1, - 0xb8, 0xba, 0x02, 0x8a, 0x38, 0xde, 0x04, 0x56, 0x9c, 0x9b, 0x45, 0x74, 0xb7, 0x0b, 0xfe, 0xa1, - 0x11, 0x6c, 0x12, 0x7c, 0xca, 0xb2, 0xc8, 0x1b, 0x08, 0xdc, 0x2d, 0x23, 0xd8, 0x10, 0xb7, 0x8d, - 0xac, 0x43, 0x4e, 0xde, 0x84, 0xe5, 0x88, 0xc5, 0xae, 0xcc, 0x8b, 0xc2, 0xd0, 0xaa, 0x1c, 0xb7, - 0x88, 0xc5, 0x07, 0x82, 0xd3, 0xd5, 0x16, 0x84, 0xb8, 0x77, 0x31, 0x21, 0x7e, 0x5b, 0x89, 0x7b, - 0x17, 0xa3, 0xe2, 0x0f, 0x61, 0x45, 0x68, 0x57, 0x09, 0x55, 0xc8, 0xbf, 0x22, 0x33, 0x3b, 0x62, - 0xb1, 0x83, 0xac, 0x11, 0x80, 0x77, 0x31, 0x09, 0xb8, 0xa3, 0x00, 0xde, 0xc5, 0x18, 0xe0, 0x18, - 0x96, 0x55, 0xac, 0xb9, 0x49, 0xcf, 0xd5, 0x25, 0xda, 0xbe, 0x8b, 0x33, 0xc3, 0xda, 0xc8, 0x54, - 0x34, 0xa5, 0xd2, 0x3b, 0x4b, 0x0a, 0x6c, 0x14, 0xff, 0xa2, 0x00, 0xe2, 0xa0, 0x8e, 0x54, 0xce, - 0x7b, 0x66, 0x01, 0x3c, 0x7c, 0xe6, 0xfb, 0xd3, 0x2b, 0xa7, 0x04, 0x9a, 0x95, 0x73, 0x6d, 0x02, - 0x68, 0x54, 0xce, 0x0f, 0xe1, 0x8e, 0x02, 0x86, 0x91, 0xde, 0xa7, 0x8f, 0x98, 0xbd, 0x8f, 0xe8, - 0x5b, 0x52, 0xe8, 0x20, 0x92, 0xbb, 0x47, 0xd3, 0xf4, 0x54, 0x0d, 0xa6, 0xfd, 0xd6, 0x54, 0x0d, - 0x46, 0x1b, 0xbe, 0x0d, 0x77, 0x64, 0xe8, 0x3c, 0xc3, 0x8b, 0x21, 0x97, 0x05, 0x17, 0xb2, 0x7c, - 0xe3, 0x59, 0x05, 0x7f, 0x64, 0x07, 0xb2, 0x6e, 0xa0, 0x90, 0xbc, 0x3c, 0x6a, 0x07, 0x17, 0xa2, - 0x80, 0xef, 0xa7, 0x49, 0xd4, 0x7d, 0x44, 0x76, 0xe0, 0xde, 0x0b, 0x14, 0x04, 0x8c, 0x9f, 0xdb, - 0x14, 0x55, 0xac, 0x4e, 0x57, 0xb1, 0xcb, 0xf8, 0x39, 0xd9, 0x83, 0xb5, 0x17, 0x28, 0xc1, 0x5a, - 0x66, 0xf7, 0x50, 0xcb, 0xed, 0xe9, 0x5a, 0xb0, 0x98, 0x5d, 0xdd, 0x19, 0x7d, 0x36, 0xd8, 0xbf, - 0xaa, 0x33, 0xea, 0x80, 0x70, 0x5a, 0x67, 0xe4, 0x65, 0x51, 0xae, 0xe2, 0x6c, 0x5a, 0x67, 0xe4, - 0xb5, 0x91, 0x52, 0x72, 0x04, 0xaf, 0x5d, 0xa5, 0xe4, 0x19, 0xe3, 0x2c, 0x13, 0xcb, 0xcd, 0x24, - 0xa0, 0xdc, 0x66, 0xa8, 0x6a, 0x6d, 0x9a, 0xaa, 0x4f, 0xa4, 0x60, 0x47, 0xc8, 0x91, 0x2e, 0xbc, - 0x71, 0x95, 0xc2, 0x80, 0x71, 0xdf, 0x4b, 0x83, 0x5c, 0xe5, 0xa7, 0xa8, 0xb2, 0x35, 0x4d, 0xe5, - 0xae, 0x16, 0x95, 0x4a, 0xf7, 0xe1, 0xfe, 0x84, 0x52, 0x2c, 0xbf, 0xcf, 0xa8, 0x9f, 0x77, 0xf6, - 0x7c, 0x9a, 0xcf, 0x45, 0x3d, 0xff, 0x84, 0xfa, 0xaa, 0xb7, 0x07, 0xf0, 0xea, 0x74, 0x3d, 0x78, - 0xa2, 0xc5, 0x73, 0x55, 0x21, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x08, 0xe5, 0x94, 0xb6, 0x0f, 0xe0, - 0x76, 0x2f, 0xe3, 0x6e, 0xac, 0x8f, 0xca, 0x22, 0x1a, 0x25, 0xe9, 0xa5, 0x1b, 0x27, 0x78, 0xb0, - 0x61, 0xff, 0xa8, 0x84, 0x77, 0x4f, 0x37, 0x7b, 0x19, 0xef, 0xc8, 0x03, 0x32, 0x29, 0xd0, 0x91, - 0x7c, 0x51, 0x08, 0x0d, 0x78, 0xc6, 0xe2, 0x4b, 0x57, 0x02, 0xff, 0x58, 0x02, 0x97, 0x34, 0xf0, - 0x84, 0xc5, 0x97, 0x78, 0xde, 0x22, 0xd6, 0x14, 0xe3, 0x10, 0x6d, 0xed, 0xc7, 0x12, 0xb4, 0x6c, - 0x82, 0xb4, 0xa5, 0x87, 0xb0, 0x62, 0xc0, 0x82, 0xa8, 0xa7, 0x0c, 0xfd, 0x89, 0xc4, 0x58, 0x1a, - 0xb3, 0x1b, 0xf5, 0xa4, 0x9d, 0x47, 0x70, 0x63, 0x0c, 0xa0, 0xcd, 0xfc, 0xa9, 0x84, 0x10, 0x03, - 0xa2, 0xad, 0xec, 0xc0, 0x5d, 0x01, 0x12, 0xa9, 0x7c, 0x85, 0x47, 0xfe, 0x4c, 0x6e, 0x5b, 0x56, - 0x7b, 0x19, 0x17, 0xf9, 0x3c, 0xcd, 0x29, 0xef, 0x82, 0x3d, 0xaa, 0xc4, 0xf0, 0xcb, 0x9f, 0x4b, - 0xf8, 0x8a, 0x01, 0x2f, 0x5c, 0xf3, 0x4d, 0x58, 0x9d, 0x02, 0xd4, 0x96, 0xff, 0x42, 0x42, 0x6f, - 0x8c, 0x41, 0xb5, 0x55, 0xe5, 0xd7, 0x02, 0x5c, 0xf8, 0xe8, 0x2f, 0x25, 0x72, 0xd9, 0x40, 0xe6, - 0x6e, 0x7a, 0x1f, 0x6e, 0x4d, 0xc2, 0xb4, 0xc9, 0x9f, 0x48, 0xe0, 0xf5, 0x51, 0xe0, 0xd8, 0xe0, - 0x17, 0x49, 0x8f, 0x61, 0x19, 0x71, 0xfb, 0xaf, 0x24, 0x4c, 0x0c, 0xbe, 0x4e, 0x77, 0xc1, 0x92, - 0x0b, 0xca, 0x11, 0x88, 0x51, 0x6e, 0xfe, 0xba, 0x18, 0xfc, 0x89, 0x3a, 0xf3, 0x21, 0xdc, 0x99, - 0x02, 0x93, 0x27, 0x61, 0xa2, 0xd0, 0xda, 0x3f, 0x95, 0x60, 0x7b, 0x0c, 0x8c, 0x12, 0xfb, 0x2c, - 0xa4, 0x62, 0xad, 0x37, 0xa9, 0x81, 0xab, 0xf7, 0x5a, 0x8f, 0xec, 0xbf, 0x91, 0xf8, 0x1b, 0xa3, - 0xf8, 0x2e, 0xf2, 0xbb, 0x8f, 0xa6, 0xdb, 0x57, 0x68, 0xac, 0xb8, 0x7f, 0x3b, 0xd5, 0xbe, 0xc4, - 0x63, 0xc1, 0x5d, 0x07, 0x4b, 0x6b, 0x50, 0x95, 0x24, 0xb6, 0xff, 0x4e, 0x82, 0x16, 0x24, 0x48, - 0x16, 0x8d, 0x8e, 0xe9, 0x22, 0x5d, 0x09, 0xb5, 0x5f, 0xff, 0xbe, 0x18, 0xc7, 0xa2, 0x06, 0x2a, - 0xcf, 0xaa, 0x70, 0x17, 0xb0, 0x20, 0xd2, 0x48, 0x9c, 0x92, 0xfe, 0x41, 0xa2, 0x88, 0x44, 0xed, - 0x46, 0x12, 0x87, 0x93, 0xd1, 0x07, 0xf0, 0x8a, 0x01, 0x92, 0x76, 0xb0, 0x96, 0x08, 0x6a, 0xc4, - 0xed, 0x9f, 0x15, 0x21, 0x87, 0x50, 0x34, 0x26, 0x6a, 0xc8, 0x7e, 0xc6, 0x65, 0xf5, 0x9e, 0x0e, - 0x57, 0xa5, 0x28, 0xe2, 0xf6, 0xcf, 0xa5, 0x86, 0x5b, 0x13, 0x1a, 0x64, 0x15, 0x3a, 0xe4, 0x3a, - 0x5b, 0x84, 0x12, 0x0c, 0x77, 0xb3, 0xe9, 0xff, 0x58, 0x64, 0x4b, 0x3b, 0xb8, 0x10, 0xd1, 0x6e, - 0x34, 0x7e, 0x4b, 0xe6, 0x6a, 0x0e, 0x9c, 0x6c, 0xfe, 0x2f, 0x24, 0xdc, 0x2e, 0xe0, 0x63, 0x1d, - 0xf8, 0x08, 0xee, 0x5f, 0xa5, 0xa2, 0xe8, 0xc2, 0x2f, 0xa5, 0x96, 0xdb, 0x53, 0xb4, 0xe4, 0x9d, - 0x50, 0x83, 0x76, 0x9a, 0x0e, 0x33, 0x6a, 0x6a, 0x89, 0xb8, 0xfd, 0x4f, 0xc5, 0xa0, 0x6d, 0x0b, - 0x76, 0x0e, 0x3e, 0xe4, 0x3a, 0xf9, 0x4c, 0x98, 0xea, 0x7e, 0xc4, 0xed, 0x5f, 0x15, 0xc9, 0x57, - 0x00, 0x65, 0xff, 0x0f, 0x79, 0xeb, 0x67, 0xa5, 0x7c, 0xeb, 0x6b, 0x6c, 0xf3, 0xc9, 0xab, 0xd0, - 0x8c, 0x58, 0x7c, 0xd2, 0x3d, 0x92, 0x27, 0x06, 0xf9, 0x31, 0x4b, 0x43, 0x52, 0x85, 0x68, 0x07, - 0x83, 0x65, 0xc0, 0x06, 0x34, 0x64, 0x31, 0x75, 0x3f, 0x1b, 0xd2, 0x21, 0xcd, 0xa5, 0xe5, 0x16, - 0x7b, 0x59, 0x73, 0xbf, 0x23, 0x98, 0x0a, 0xf4, 0x2e, 0xd8, 0x39, 0xe8, 0x34, 0xa5, 0xde, 0x39, - 0x4d, 0x73, 0x98, 0xda, 0xe9, 0x6a, 0xfe, 0xb6, 0x64, 0x4b, 0x60, 0xeb, 0x73, 0xa8, 0x74, 0x93, - 0x34, 0x23, 0xaf, 0xc3, 0xfc, 0x29, 0x1e, 0x7b, 0xf1, 0xe9, 0xe7, 0x7e, 0x8a, 0x49, 0x5e, 0x85, - 0x05, 0xc6, 0xf1, 0x9e, 0xd8, 0x0b, 0x05, 0x50, 0xbd, 0x80, 0x1a, 0x25, 0xbe, 0xe4, 0xc1, 0xed, - 0x1f, 0x96, 0xc1, 0x92, 0xef, 0x23, 0xf7, 0x53, 0x2f, 0xa2, 0xdb, 0xc9, 0x30, 0x0e, 0xc8, 0x43, - 0xa8, 0x18, 0xf7, 0x8a, 0xd7, 0xcd, 0x57, 0x94, 0x28, 0x60, 0xdc, 0x33, 0xa0, 0x20, 0x69, 0x41, - 0x6d, 0x18, 0x9f, 0x0a, 0x16, 0x0d, 0x46, 0xce, 0xcf, 0x0a, 0x32, 0xb9, 0x01, 0x73, 0xf2, 0x65, - 0x97, 0x72, 0x86, 0xfa, 0x22, 0xeb, 0x50, 0xf3, 0xbd, 0xd0, 0xdf, 0x1f, 0xc6, 0x3e, 0x9f, 0x72, - 0x9a, 0x57, 0x30, 0xc9, 0xff, 0x83, 0x7a, 0x4f, 0x34, 0xd2, 0xc5, 0xe7, 0x09, 0xea, 0x65, 0xef, - 0xc8, 0x81, 0x3b, 0xb2, 0xf1, 0x25, 0x03, 0xf9, 0x06, 0x2c, 0xf8, 0xd1, 0x40, 0x9e, 0x1d, 0x18, - 0xd7, 0x26, 0xea, 0x29, 0x2e, 0xca, 0xec, 0x44, 0x83, 0x5d, 0x2f, 0xf3, 0xf0, 0x3e, 0xaf, 0xee, - 0x17, 0x1f, 0xad, 0x1f, 0x95, 0xa0, 0x6e, 0x38, 0xe5, 0x45, 0xfe, 0x40, 0x81, 0x09, 0x7f, 0x7c, - 0x0d, 0x66, 0x79, 0xe6, 0xa9, 0x91, 0xc9, 0xdf, 0xff, 0x8e, 0xfb, 0xd9, 0x91, 0x42, 0x64, 0x1d, - 0x66, 0x68, 0xac, 0xc7, 0xe9, 0x2a, 0x59, 0x21, 0xd2, 0xfa, 0x4d, 0x09, 0xe6, 0x24, 0x87, 0xbc, - 0x01, 0xb5, 0xde, 0x30, 0xf6, 0x5d, 0xbc, 0x29, 0x99, 0x3c, 0x62, 0xaf, 0x0a, 0xe6, 0x2e, 0xe5, - 0xfe, 0xc4, 0x31, 0x6b, 0xf9, 0x8b, 0x8e, 0x59, 0xcd, 0xf3, 0xe7, 0x99, 0x17, 0x9d, 0x3f, 0xbf, - 0x01, 0xb3, 0xe8, 0x70, 0xf5, 0xb6, 0x71, 0x69, 0xa2, 0xe5, 0x8e, 0xe4, 0x17, 0xa1, 0x38, 0xfb, - 0xa2, 0x50, 0xfc, 0x36, 0x34, 0xf0, 0x74, 0x9e, 0xc5, 0x7d, 0xd1, 0x05, 0xf2, 0x10, 0x16, 0xfa, - 0xea, 0x5b, 0x1e, 0xf5, 0x4e, 0xf6, 0xb2, 0xd1, 0x37, 0x00, 0xad, 0x27, 0x50, 0xd7, 0x0a, 0xba, - 0x34, 0x23, 0xef, 0x43, 0x73, 0x04, 0xaf, 0xb3, 0x4a, 0x5d, 0xf3, 0x98, 0xb6, 0x9c, 0x05, 0x53, - 0x11, 0x6f, 0xfd, 0xa0, 0x04, 0x73, 0xf2, 0x31, 0x2d, 0x79, 0xc7, 0x68, 0x45, 0xfe, 0x2c, 0x31, - 0xef, 0xac, 0x61, 0xaf, 0x68, 0x4c, 0x97, 0x66, 0xfc, 0x25, 0xcf, 0xc0, 0x6d, 0x98, 0x7f, 0x46, - 0x53, 0x7c, 0x94, 0x29, 0xb3, 0x42, 0x7f, 0xb6, 0xde, 0x84, 0x9a, 0x68, 0x8b, 0x7c, 0x90, 0xf8, - 0x85, 0x57, 0x3a, 0xad, 0x3f, 0x2a, 0xc1, 0xbc, 0x7a, 0xfe, 0x4b, 0x1e, 0x00, 0x0c, 0xd2, 0xe4, - 0xd3, 0x91, 0x4e, 0x2f, 0x16, 0x10, 0xf9, 0x34, 0xb3, 0x26, 0x44, 0xe4, 0x15, 0xcf, 0x63, 0xb8, - 0xd1, 0xa7, 0x31, 0x4d, 0x3d, 0xb1, 0x13, 0x50, 0x67, 0x07, 0xf2, 0x25, 0x57, 0x19, 0x5f, 0x72, - 0xad, 0xe4, 0x5c, 0x79, 0x82, 0x20, 0x9f, 0x74, 0xbd, 0x5c, 0x7d, 0x79, 0x1d, 0x9a, 0xa3, 0x8f, - 0x8c, 0xc9, 0x8a, 0x3e, 0x67, 0x97, 0xa7, 0x99, 0xf2, 0x63, 0xe3, 0x0f, 0x66, 0xe4, 0xff, 0x1b, - 0xe0, 0xa5, 0xe5, 0x12, 0x2c, 0x88, 0xbf, 0xf9, 0x0b, 0x18, 0xeb, 0x9a, 0x26, 0xe5, 0x57, 0x92, - 0x56, 0x49, 0x93, 0xf2, 0xfb, 0x38, 0xab, 0x4c, 0x96, 0x61, 0x51, 0x90, 0x8c, 0x9b, 0x28, 0x6b, - 0x86, 0x34, 0xa0, 0x8a, 0xda, 0x92, 0x41, 0xc7, 0xaa, 0x90, 0x05, 0xa8, 0x89, 0x2f, 0xbc, 0xc4, - 0xb0, 0x66, 0x73, 0x25, 0xb8, 0x8d, 0xdf, 0xea, 0xf7, 0xad, 0x39, 0x2d, 0xff, 0x71, 0xc2, 0x62, - 0x6b, 0x5e, 0x7f, 0x3d, 0x65, 0x61, 0x68, 0x55, 0xc9, 0x0d, 0x20, 0xe2, 0x6b, 0xf4, 0xb5, 0xb1, - 0x55, 0x23, 0x36, 0xac, 0x98, 0x74, 0xfd, 0x1e, 0xd4, 0x02, 0x42, 0xa0, 0x29, 0x38, 0xc5, 0xfd, - 0x9c, 0x55, 0x27, 0xab, 0x70, 0x03, 0x69, 0x13, 0x4f, 0x7d, 0xac, 0x86, 0xb6, 0x27, 0x4a, 0xb8, - 0xb5, 0x40, 0x9a, 0x00, 0xe2, 0x4b, 0xe6, 0x94, 0xd5, 0xd4, 0xdf, 0x72, 0xa4, 0xad, 0x45, 0xb2, - 0x08, 0xf5, 0xe2, 0x7b, 0xd3, 0xb2, 0x74, 0x03, 0x47, 0x7d, 0x6e, 0x2d, 0x69, 0xcf, 0x18, 0xef, - 0x6e, 0xad, 0x15, 0xf2, 0x0a, 0xd8, 0x0a, 0x3d, 0x71, 0xb5, 0x61, 0x5d, 0xdf, 0x78, 0x0f, 0x1a, - 0xe6, 0xeb, 0x52, 0x61, 0xeb, 0xd8, 0xe3, 0xfc, 0xe4, 0x2c, 0x4d, 0x86, 0xfd, 0x33, 0xeb, 0x9a, - 0x70, 0x65, 0x6e, 0xc7, 0x2a, 0x91, 0x2a, 0x54, 0x9e, 0x78, 0xfc, 0xcc, 0x2a, 0x6f, 0x7c, 0x13, - 0x16, 0xc7, 0x5e, 0x15, 0x0b, 0x66, 0xe7, 0xa8, 0xb3, 0x67, 0x5d, 0x13, 0xbf, 0xf6, 0xb7, 0xba, - 0x27, 0x56, 0x89, 0xac, 0x80, 0xf5, 0xa4, 0xfd, 0xd1, 0x13, 0x77, 0xe7, 0xe8, 0xf0, 0xd8, 0xd9, - 0xeb, 0x76, 0xdb, 0x47, 0x1d, 0xab, 0xbc, 0xf1, 0x00, 0xa0, 0x78, 0xc6, 0x46, 0x6a, 0x30, 0x8b, - 0x27, 0x39, 0x12, 0x78, 0xc2, 0x9e, 0x7e, 0x62, 0x95, 0x48, 0x1d, 0xe6, 0xd5, 0xd4, 0x6e, 0x95, - 0x37, 0x1e, 0xc1, 0xa2, 0xda, 0xbe, 0x89, 0xbe, 0x3d, 0x65, 0xb1, 0x98, 0x6a, 0x48, 0xbb, 0xf3, - 0xc9, 0xd6, 0x41, 0x7b, 0xd7, 0x6d, 0x77, 0x76, 0xf7, 0xbe, 0xef, 0x3e, 0x6d, 0x77, 0x76, 0xa5, - 0x86, 0x27, 0x9d, 0xee, 0xf7, 0xac, 0xd2, 0xc6, 0x29, 0xac, 0x4c, 0x7b, 0x78, 0x4a, 0x6e, 0xc3, - 0x4d, 0x8d, 0xdc, 0x6d, 0x77, 0x4f, 0xb6, 0x3a, 0x3b, 0x7b, 0xee, 0xe1, 0xde, 0x89, 0xd3, 0xde, - 0xb1, 0xae, 0x91, 0x39, 0x28, 0x1f, 0xbc, 0x6d, 0x95, 0xf0, 0xef, 0xa6, 0x55, 0x26, 0x00, 0x73, - 0x3b, 0x47, 0xdd, 0x76, 0x67, 0xcf, 0x9a, 0x11, 0x71, 0xd4, 0xee, 0x74, 0xf6, 0x1c, 0xf7, 0xd8, - 0x39, 0xda, 0xfd, 0xee, 0xce, 0x89, 0x55, 0xd9, 0x78, 0xbb, 0x78, 0x42, 0x8b, 0x5d, 0x59, 0x01, - 0xab, 0x1d, 0x3f, 0xf3, 0x42, 0x16, 0xe4, 0x34, 0xeb, 0x9a, 0xe8, 0xcb, 0x91, 0xac, 0xa7, 0x56, - 0x69, 0xe3, 0xbb, 0xc5, 0xfb, 0x4e, 0x84, 0xdc, 0x84, 0x65, 0xf3, 0x5b, 0xc1, 0xad, 0x6b, 0xa2, - 0x87, 0x26, 0x43, 0x1e, 0xa3, 0x48, 0x97, 0x9a, 0xf4, 0x93, 0x64, 0xf0, 0xd4, 0x2a, 0x6f, 0xfc, - 0xaa, 0x04, 0x55, 0xfd, 0x2c, 0xa8, 0xc8, 0xa4, 0x98, 0xa6, 0x18, 0xe3, 0xd7, 0xc8, 0x75, 0x58, - 0xc2, 0x9c, 0xa0, 0xbd, 0xec, 0x68, 0x98, 0x29, 0x72, 0x49, 0xc7, 0x92, 0xc3, 0xfa, 0x67, 0x06, - 0xbd, 0x4c, 0x2c, 0x68, 0xc8, 0xc4, 0x93, 0x8f, 0x3b, 0xac, 0x19, 0x61, 0x16, 0xf3, 0x2e, 0xce, - 0x58, 0x4e, 0xad, 0x90, 0x5b, 0x70, 0x7d, 0x44, 0x6d, 0xce, 0x9a, 0x25, 0x77, 0xe0, 0x96, 0x06, - 0x4c, 0xb2, 0xe7, 0x36, 0xd6, 0xa0, 0x61, 0x3e, 0x47, 0xd2, 0x16, 0x45, 0x78, 0xc9, 0x26, 0x6f, - 0x7c, 0x03, 0x96, 0x26, 0x9e, 0x3e, 0x88, 0x81, 0x69, 0x77, 0xa4, 0x4f, 0x0f, 0xdb, 0x1d, 0xf7, - 0x70, 0xeb, 0xfb, 0x56, 0x49, 0x60, 0xb7, 0x0f, 0x8e, 0x8e, 0x0e, 0xdd, 0xfd, 0xf6, 0xc1, 0xc9, - 0x9e, 0x63, 0x95, 0x37, 0x36, 0xc6, 0xb0, 0x18, 0xa0, 0x22, 0xd0, 0x8e, 0x76, 0xb6, 0x0e, 0xac, - 0x6b, 0x62, 0x5c, 0x3f, 0x3a, 0x38, 0xda, 0xde, 0x3a, 0xb0, 0x4a, 0x1b, 0xdb, 0xb0, 0x34, 0x71, - 0x6d, 0x2b, 0x32, 0x61, 0x3f, 0x49, 0x7d, 0x2a, 0x49, 0x32, 0xb0, 0xb6, 0x86, 0x59, 0x62, 0x95, - 0x44, 0xba, 0x23, 0x4b, 0x16, 0x14, 0x16, 0xf7, 0xad, 0xf2, 0xc6, 0xb7, 0x61, 0x71, 0x6c, 0xf1, - 0x24, 0x52, 0x67, 0x3f, 0x09, 0xc3, 0xe4, 0xb9, 0x90, 0xc0, 0x4c, 0x3a, 0x4e, 0xa9, 0x4f, 0x03, - 0xf1, 0x59, 0x12, 0x59, 0xbe, 0x83, 0x17, 0x6b, 0x99, 0x93, 0x3c, 0xb7, 0xca, 0x1b, 0x47, 0x60, - 0x8d, 0x2f, 0x58, 0xc8, 0x3c, 0xcc, 0xb4, 0xe3, 0xcc, 0xba, 0x26, 0x1a, 0xbe, 0x1f, 0x26, 0x5e, - 0x26, 0xf3, 0x62, 0x97, 0xfa, 0x2c, 0xf2, 0x42, 0xab, 0x2c, 0x0a, 0xc9, 0xae, 0x97, 0xd1, 0x13, - 0x16, 0x51, 0x59, 0x04, 0x77, 0x87, 0xf2, 0xbe, 0xcf, 0xaa, 0x88, 0x9c, 0x19, 0x5b, 0xbe, 0x88, - 0x2e, 0x88, 0x5d, 0x83, 0xec, 0x3e, 0x5a, 0xe3, 0x56, 0x09, 0x5d, 0x21, 0x66, 0x35, 0x6e, 0x95, - 0xb7, 0xbf, 0xfa, 0xeb, 0xdf, 0xde, 0x2d, 0xfd, 0xeb, 0x6f, 0xef, 0x96, 0xfe, 0xfd, 0xb7, 0x77, - 0x4b, 0x3f, 0xfe, 0x8f, 0xbb, 0xd7, 0xe0, 0xba, 0x9f, 0x44, 0x0f, 0xc4, 0x8c, 0xe7, 0x7b, 0x83, - 0x07, 0x19, 0x0b, 0x4e, 0x71, 0x0e, 0x38, 0x2e, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xda, - 0xf0, 0x81, 0x40, 0x8a, 0x36, 0x00, 0x00, + // 5178 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x73, 0x1c, 0xc9, + 0x71, 0xe6, 0x0c, 0x06, 0xc0, 0x4c, 0xce, 0x60, 0xd0, 0x28, 0x80, 0x64, 0x13, 0x5c, 0x92, 0xd8, + 0xd1, 0x3e, 0x20, 0x58, 0x4b, 0xee, 0x82, 0xd4, 0x3e, 0x24, 0xaf, 0xb4, 0x78, 0x2e, 0x67, 0x09, + 0x0c, 0xa0, 0x1e, 0x68, 0x57, 0x11, 0x76, 0x44, 0x47, 0xa3, 0xbb, 0x66, 0x50, 0x8b, 0x7e, 0xcc, + 0x76, 0xf5, 0x90, 0xc0, 0x9e, 0x74, 0xf6, 0xc9, 0x61, 0x85, 0x65, 0xf9, 0x29, 0x5b, 0x7e, 0x49, + 0x96, 0xac, 0x83, 0x7f, 0x81, 0x8f, 0x3a, 0xfa, 0xac, 0x83, 0xc3, 0x21, 0x9f, 0xfc, 0x0f, 0x1c, + 0x3e, 0x39, 0x2a, 0xab, 0xaa, 0xbb, 0xe6, 0x01, 0x2e, 0x37, 0xac, 0x83, 0x4f, 0x98, 0xce, 0xcc, + 0x2f, 0xb3, 0x2a, 0x2b, 0x33, 0xeb, 0x09, 0x68, 0xd2, 0x0b, 0xea, 0x0f, 0xb3, 0x24, 0xbd, 0x3f, + 0x48, 0x93, 0x2c, 0x21, 0x95, 0x8c, 0x0d, 0x4e, 0x57, 0x2d, 0x7a, 0x31, 0x48, 0x29, 0xe7, 0x2c, + 0x89, 0x25, 0x7d, 0xb5, 0xc1, 0xfd, 0x33, 0x1a, 0x79, 0xea, 0x6b, 0xa5, 0x9f, 0xf4, 0x13, 0xfc, + 0xf9, 0x40, 0xfc, 0x92, 0xd4, 0xd6, 0xcf, 0x6a, 0x50, 0xdd, 0x53, 0xea, 0xc8, 0x2b, 0x50, 0xce, + 0x06, 0x76, 0x69, 0xad, 0xb4, 0xde, 0xdc, 0x6c, 0xde, 0x17, 0x5a, 0xef, 0x0b, 0xde, 0xc9, 0xe5, + 0x80, 0x6e, 0x57, 0x7e, 0xf5, 0xef, 0xf7, 0xae, 0x39, 0xe5, 0x6c, 0x40, 0x36, 0xa0, 0x9a, 0x9d, + 0x86, 0x2e, 0xf7, 0xbd, 0xd8, 0x2e, 0xaf, 0x95, 0xd6, 0xeb, 0x9b, 0x8b, 0x52, 0xf6, 0xc4, 0x3b, + 0x0d, 0x69, 0xd7, 0xf7, 0x62, 0x67, 0x3e, 0x3b, 0x0d, 0xc5, 0x0f, 0x21, 0xcb, 0x82, 0x0b, 0x29, + 0x3b, 0x63, 0xca, 0xb6, 0xe3, 0x80, 0x5e, 0x48, 0x59, 0x16, 0xe0, 0x0f, 0xf2, 0x06, 0xd4, 0x38, + 0x0d, 0xa9, 0x9f, 0xb1, 0x24, 0xb6, 0x2b, 0xa6, 0x70, 0x57, 0x93, 0x9d, 0x42, 0x82, 0x3c, 0x84, + 0xba, 0xd7, 0xef, 0xa7, 0xb4, 0xef, 0x21, 0x60, 0x16, 0x01, 0x4b, 0x12, 0xb0, 0x55, 0x30, 0x1c, + 0x53, 0x8a, 0xdc, 0x85, 0x4a, 0x96, 0x0c, 0x3a, 0xf6, 0x1c, 0x4a, 0x83, 0x6a, 0x77, 0x32, 0xe8, + 0x38, 0x48, 0x27, 0x2f, 0xc3, 0x6c, 0xc8, 0x22, 0x96, 0xd9, 0xf3, 0x28, 0x50, 0x97, 0x02, 0x07, + 0x82, 0xe4, 0x48, 0x0e, 0xd9, 0x81, 0x25, 0x7a, 0xe1, 0x9f, 0x79, 0x71, 0x9f, 0xba, 0x29, 0xf5, + 0x29, 0x7b, 0x4a, 0x53, 0xbb, 0x8a, 0xe2, 0x37, 0xb4, 0xcf, 0x24, 0xdb, 0x51, 0x5c, 0xc7, 0xa2, + 0x63, 0x14, 0xd1, 0x8e, 0x4f, 0x13, 0x16, 0xdb, 0x35, 0xb3, 0x1d, 0x1f, 0x25, 0x2c, 0x76, 0x90, + 0x4e, 0xee, 0x41, 0x5d, 0x0f, 0xb2, 0xcb, 0x02, 0x1b, 0xd6, 0x4a, 0xeb, 0x35, 0x07, 0x34, 0xa9, + 0x1d, 0x08, 0x05, 0xe7, 0x2c, 0x0c, 0xed, 0xba, 0xa9, 0xe0, 0x09, 0x0b, 0x43, 0x07, 0xe9, 0xe4, + 0x7d, 0x58, 0xcc, 0x5b, 0xc9, 0x69, 0x1c, 0xd0, 0xd4, 0x6e, 0xa0, 0xe8, 0xca, 0x68, 0x1b, 0xbb, + 0xc8, 0x73, 0x9a, 0x74, 0xe4, 0x9b, 0xbc, 0x09, 0x70, 0x9c, 0x26, 0x9f, 0xaa, 0xc1, 0x58, 0x40, + 0xa4, 0x25, 0x91, 0x05, 0xdd, 0x31, 0x64, 0xc8, 0x47, 0xb0, 0x32, 0xf0, 0xd2, 0x8c, 0x89, 0x0f, + 0x37, 0x13, 0x91, 0x20, 0x47, 0xbd, 0x89, 0x58, 0x5b, 0x61, 0xb5, 0x44, 0x11, 0x2a, 0x64, 0x30, + 0x41, 0x13, 0x9d, 0xe3, 0x49, 0x9a, 0xd9, 0x8b, 0x66, 0xe7, 0xba, 0x49, 0x9a, 0x39, 0x48, 0x27, + 0xaf, 0xc0, 0xdc, 0x33, 0x16, 0x07, 0xc9, 0x33, 0xdb, 0x42, 0x89, 0x86, 0x94, 0xf8, 0x04, 0x69, + 0x8e, 0xe2, 0x91, 0x0e, 0xbc, 0xdc, 0x63, 0x31, 0x75, 0xfb, 0xa9, 0xc7, 0x62, 0x1a, 0xb8, 0xfc, + 0x6c, 0xd8, 0xeb, 0x89, 0x66, 0x65, 0x29, 0xf5, 0x22, 0xd7, 0x4f, 0x86, 0x71, 0x66, 0x2f, 0xad, + 0x95, 0xd6, 0x2b, 0x2a, 0xb8, 0xef, 0x08, 0xf1, 0x0f, 0xa5, 0x74, 0x57, 0x0a, 0x77, 0x51, 0x76, + 0x47, 0x88, 0x92, 0x8f, 0xe0, 0xde, 0x54, 0x7d, 0xa7, 0x5e, 0xe6, 0x9f, 0xb9, 0x9c, 0x7d, 0x4e, + 0x6d, 0x62, 0x68, 0xbb, 0x3d, 0xa9, 0x6d, 0x5b, 0x48, 0x76, 0xd9, 0xe7, 0x54, 0xf4, 0x80, 0x5e, + 0x0c, 0xbc, 0x38, 0xb0, 0x97, 0xcd, 0x1e, 0xec, 0x21, 0xcd, 0x51, 0x3c, 0xf2, 0x3a, 0xcc, 0xcb, + 0x5f, 0x9b, 0xf6, 0x0a, 0x8a, 0x2d, 0x98, 0x62, 0x9b, 0x8e, 0xe6, 0x8a, 0xd1, 0x3e, 0x4d, 0x13, + 0x2f, 0xf0, 0x3d, 0x9e, 0xb9, 0x9f, 0x0d, 0x69, 0x7a, 0x69, 0x5f, 0x37, 0x47, 0x7b, 0x5b, 0x33, + 0xbf, 0x23, 0x78, 0x4e, 0xf3, 0x74, 0xe4, 0x9b, 0x3c, 0x82, 0x06, 0x13, 0xf9, 0xe8, 0x86, 0x49, + 0x72, 0x3e, 0x1c, 0xd8, 0xb6, 0x99, 0x4b, 0x98, 0xa9, 0x07, 0x49, 0x72, 0xfe, 0xdd, 0x81, 0x53, + 0x67, 0xfa, 0x63, 0x38, 0x20, 0x77, 0x00, 0x06, 0x5e, 0x4a, 0xe3, 0xcc, 0x65, 0xc1, 0x85, 0x7d, + 0x6b, 0xad, 0xb4, 0xbe, 0xe0, 0xd4, 0x24, 0xa5, 0x1d, 0x5c, 0x90, 0x63, 0xb8, 0x41, 0x2f, 0x06, + 0xa1, 0xc7, 0x62, 0xb7, 0x97, 0xa4, 0xae, 0x9f, 0xc4, 0xb1, 0x0a, 0xa7, 0x55, 0x54, 0xbf, 0x9a, + 0xf7, 0x45, 0xc8, 0xec, 0x27, 0xe9, 0x4e, 0x2e, 0xe1, 0xac, 0xd0, 0x29, 0xd4, 0xd6, 0x2f, 0x66, + 0xa0, 0x39, 0x1a, 0xb7, 0x64, 0xdd, 0xa8, 0x58, 0x64, 0x34, 0xb2, 0x27, 0xaa, 0xd6, 0x12, 0x8d, + 0xfd, 0x24, 0xa0, 0x81, 0x9b, 0x79, 0xfc, 0xdc, 0x8d, 0x68, 0xe6, 0xd9, 0xe5, 0xb5, 0x99, 0xf5, + 0x86, 0xb3, 0xa8, 0x18, 0x27, 0x1e, 0x3f, 0x3f, 0xa4, 0x99, 0x47, 0xde, 0x82, 0x66, 0x11, 0xcb, + 0xe7, 0xf4, 0x92, 0xdb, 0x33, 0x6b, 0x33, 0x45, 0x24, 0xee, 0x5d, 0x0c, 0x52, 0x67, 0x21, 0x97, + 0x78, 0x42, 0x2f, 0x39, 0x79, 0x05, 0x66, 0xfd, 0x33, 0x16, 0x06, 0xaa, 0x70, 0x19, 0xd5, 0x53, + 0x24, 0xac, 0x23, 0x99, 0xe4, 0x55, 0x98, 0xcd, 0x2e, 0x07, 0x94, 0xdb, 0xb3, 0xa8, 0x4f, 0x95, + 0xb7, 0x7d, 0x46, 0xc3, 0x40, 0x34, 0xd7, 0x91, 0x5c, 0xf2, 0x0e, 0x2c, 0x7a, 0x61, 0xe8, 0xf6, + 0x04, 0xdd, 0x95, 0x80, 0xb9, 0xe9, 0x80, 0x05, 0x2f, 0x0c, 0xf3, 0x2f, 0x4e, 0xde, 0x87, 0xba, + 0x9f, 0x44, 0x7a, 0x1a, 0xc0, 0x22, 0xd6, 0xdc, 0xbc, 0x2e, 0x41, 0x3b, 0x05, 0xe3, 0x30, 0x09, + 0xb4, 0x6b, 0x4c, 0x79, 0x72, 0x00, 0x37, 0x86, 0x03, 0x9d, 0x1e, 0x19, 0x35, 0x1c, 0x55, 0x45, + 0xf3, 0x37, 0x55, 0xaf, 0xa4, 0xbb, 0xb6, 0x2f, 0x33, 0xca, 0xbb, 0x21, 0xf3, 0xa9, 0xb3, 0xac, + 0x61, 0x3b, 0x19, 0xd5, 0x5e, 0x6c, 0xfd, 0x41, 0x09, 0xea, 0x46, 0xf0, 0x90, 0x37, 0x61, 0x45, + 0x46, 0xd9, 0x99, 0x17, 0x07, 0x21, 0x75, 0x93, 0x5e, 0x8f, 0xd3, 0x8c, 0xdb, 0xa5, 0xb5, 0x99, + 0xf5, 0x05, 0x87, 0x20, 0xef, 0x31, 0xb2, 0x8e, 0x24, 0x47, 0x44, 0xd8, 0x39, 0xa5, 0x03, 0x37, + 0x49, 0x45, 0xfd, 0x12, 0x73, 0x4d, 0xd5, 0xa9, 0x09, 0xca, 0x91, 0x20, 0x88, 0xc9, 0x05, 0xdd, + 0x9a, 0xd2, 0x58, 0x0d, 0xd0, 0xb8, 0xdb, 0x73, 0x7e, 0xeb, 0x5d, 0x58, 0x9a, 0x68, 0x36, 0xf9, + 0x0a, 0x2c, 0x98, 0x31, 0x21, 0x9b, 0xd2, 0x70, 0x1a, 0x46, 0x3c, 0xf0, 0xd6, 0xaf, 0x4b, 0x60, + 0x8d, 0x57, 0xf4, 0xe9, 0xd1, 0x54, 0x9a, 0x1e, 0x4d, 0x6f, 0x42, 0xdd, 0x1c, 0xc9, 0xf2, 0xf4, + 0x91, 0x84, 0x5e, 0x31, 0x8c, 0x2d, 0x8c, 0xea, 0x99, 0xab, 0xa2, 0x1a, 0xe3, 0x79, 0x17, 0xee, + 0x25, 0x29, 0xeb, 0xb3, 0xd8, 0x0b, 0x71, 0xac, 0x06, 0x69, 0x90, 0xf8, 0x43, 0x9a, 0x1a, 0xed, + 0xa9, 0x60, 0x7b, 0x6e, 0x6b, 0xb1, 0x9d, 0x8c, 0x1e, 0x2b, 0xa1, 0x7c, 0x8c, 0x7e, 0x30, 0x03, + 0x8d, 0xad, 0x4e, 0x07, 0xcb, 0x40, 0x3b, 0xee, 0x25, 0xe4, 0x1d, 0x00, 0xac, 0x1f, 0xd8, 0xd8, + 0xd1, 0xc4, 0xd2, 0x72, 0x46, 0x62, 0xd5, 0x3e, 0xd3, 0x04, 0xd2, 0x86, 0xc5, 0x80, 0xf1, 0xcc, + 0x8b, 0x7d, 0x2a, 0xac, 0xa7, 0xcc, 0xc7, 0x01, 0x6b, 0xea, 0x3c, 0xff, 0x98, 0xfa, 0x59, 0x92, + 0xee, 0x2a, 0x91, 0x43, 0x94, 0x50, 0x5a, 0x9a, 0xc1, 0x08, 0x95, 0xdc, 0x82, 0xd9, 0x2c, 0x19, + 0xb8, 0xe7, 0xe8, 0x81, 0x05, 0x25, 0x24, 0xe6, 0xe7, 0x27, 0xe4, 0x55, 0x11, 0xe0, 0xe1, 0x30, + 0x8a, 0xdd, 0xd8, 0x8b, 0x28, 0x26, 0x5b, 0x4d, 0x09, 0x80, 0x64, 0x74, 0xbc, 0x88, 0x92, 0x97, + 0xa1, 0xa6, 0xc4, 0x58, 0x80, 0x2b, 0x83, 0x19, 0x25, 0x54, 0x95, 0x64, 0x9c, 0x40, 0xeb, 0x29, + 0xed, 0xb9, 0x4f, 0xa9, 0xef, 0xf6, 0x1e, 0x6e, 0xe2, 0x82, 0xa0, 0xe1, 0xd4, 0x52, 0xda, 0xfb, + 0x98, 0xfa, 0xfb, 0x0f, 0x37, 0xc9, 0x3d, 0xa8, 0xca, 0x68, 0x65, 0x01, 0xce, 0xee, 0x5a, 0xc3, + 0x3c, 0x52, 0xdb, 0xa2, 0x38, 0x37, 0x22, 0xef, 0xc2, 0xd5, 0x6d, 0xc7, 0x39, 0xba, 0xa4, 0xb3, + 0x2a, 0xf2, 0x2e, 0x74, 0x57, 0xc9, 0x06, 0x34, 0xcf, 0x62, 0xfe, 0xcc, 0xa5, 0x3d, 0x97, 0x53, + 0x2f, 0xf5, 0xcf, 0xb0, 0x98, 0xeb, 0x7e, 0x35, 0x04, 0x6f, 0xaf, 0xd7, 0x45, 0xce, 0x47, 0x95, + 0xea, 0xbc, 0x55, 0x6d, 0xfd, 0xba, 0x0c, 0x8d, 0xfd, 0x93, 0xee, 0x0b, 0x8d, 0x8a, 0x96, 0x9b, + 0x3e, 0x2a, 0x66, 0x2f, 0xca, 0xd3, 0x7a, 0xb1, 0x01, 0xf3, 0xd2, 0x25, 0xba, 0xc6, 0x59, 0xba, + 0x5a, 0xa0, 0x9f, 0xe2, 0x5e, 0xe2, 0x68, 0x01, 0xf2, 0x32, 0x34, 0x0c, 0xe7, 0x73, 0x8c, 0xaf, + 0x9a, 0x53, 0x2f, 0xfc, 0xce, 0xc9, 0x57, 0xf2, 0x86, 0xd2, 0x8b, 0x0c, 0x3d, 0x5f, 0x1b, 0x6d, + 0x14, 0xbd, 0xc8, 0xc8, 0x1b, 0xb0, 0xa8, 0x84, 0x92, 0x73, 0x1a, 0xb3, 0xcf, 0x69, 0x8a, 0xee, + 0xd7, 0x92, 0x4d, 0x29, 0xa9, 0x79, 0x64, 0x59, 0x87, 0x03, 0xe0, 0x14, 0x23, 0x03, 0xe1, 0x5d, + 0x6d, 0xa8, 0x37, 0x8c, 0x7d, 0x74, 0x68, 0x73, 0x73, 0x59, 0x2d, 0x14, 0x7c, 0x2f, 0xf4, 0xd2, + 0xfd, 0x61, 0xec, 0x77, 0x59, 0x7f, 0xc4, 0xba, 0xa0, 0xb5, 0xbe, 0x3f, 0x0b, 0xb5, 0x62, 0xa9, + 0x71, 0x0f, 0xaa, 0x72, 0xb1, 0xc2, 0x02, 0xf4, 0x6b, 0xee, 0x20, 0xa4, 0x8e, 0x3a, 0xa8, 0xfc, + 0x45, 0x0e, 0xb2, 0xa1, 0x12, 0x50, 0xee, 0x63, 0xdc, 0x56, 0x75, 0xdc, 0x0a, 0x0a, 0xf9, 0x1a, + 0x90, 0x41, 0xca, 0x22, 0x2f, 0xbd, 0x74, 0xf3, 0xc0, 0x94, 0x0e, 0x9c, 0x71, 0x2c, 0xc5, 0x51, + 0x1a, 0x03, 0x4e, 0x3e, 0x00, 0x2b, 0xa6, 0x17, 0x99, 0x9b, 0x52, 0x2f, 0x70, 0x69, 0xdc, 0x67, + 0x31, 0x45, 0x5f, 0x36, 0xb5, 0xf1, 0x3d, 0xa4, 0x19, 0x43, 0xde, 0x14, 0xf2, 0x0e, 0xf5, 0x02, + 0xc9, 0x21, 0x5f, 0x83, 0xb9, 0x54, 0x94, 0x0b, 0x3d, 0x71, 0xa8, 0xc2, 0xf8, 0x84, 0x5e, 0x3a, + 0x82, 0xac, 0x50, 0x4a, 0x86, 0xbc, 0x07, 0xb7, 0x74, 0xeb, 0x06, 0x29, 0xed, 0xb1, 0x0b, 0xb3, + 0x91, 0xf3, 0xd8, 0xc8, 0x1b, 0x4a, 0xe0, 0x18, 0xf9, 0x45, 0x53, 0x47, 0x4b, 0x74, 0x75, 0xbc, + 0x44, 0xaf, 0x41, 0x83, 0x71, 0xb7, 0x27, 0x96, 0x25, 0xb8, 0x1a, 0xac, 0xa1, 0x00, 0x30, 0xbe, + 0xef, 0xf1, 0x0c, 0x07, 0xe0, 0x10, 0xee, 0x0c, 0x86, 0xfc, 0x8c, 0x06, 0x6e, 0x90, 0x3c, 0x8b, + 0xdd, 0x1e, 0x0b, 0x33, 0x8a, 0xab, 0x85, 0x00, 0x27, 0x57, 0x6e, 0xc3, 0xc4, 0xd4, 0xbb, 0x2a, + 0x01, 0xbb, 0xc9, 0xb3, 0x78, 0x1f, 0xc5, 0x77, 0x72, 0x69, 0xb2, 0x03, 0xcb, 0xe9, 0x30, 0xce, + 0x58, 0x44, 0xb5, 0xaa, 0x90, 0xf1, 0xcc, 0xae, 0xa3, 0x12, 0x15, 0x20, 0x8e, 0x14, 0x90, 0x58, + 0x67, 0x29, 0x35, 0x3f, 0x0f, 0x18, 0x17, 0x01, 0x6a, 0x89, 0xd4, 0x7e, 0xe6, 0xb1, 0xcc, 0x45, + 0x55, 0x11, 0xc7, 0xd5, 0xf3, 0xac, 0xf2, 0xdb, 0x42, 0xe4, 0x5d, 0x7c, 0xe2, 0xb1, 0xec, 0x84, + 0x45, 0xf4, 0x90, 0x93, 0x07, 0x50, 0xf3, 0xe2, 0x58, 0xad, 0xbb, 0xe4, 0x5a, 0x79, 0xac, 0x64, + 0x62, 0x98, 0x54, 0xbd, 0x38, 0xc6, 0xaf, 0xd6, 0x8f, 0x2b, 0x40, 0x26, 0x97, 0xc2, 0xff, 0x3f, + 0x63, 0xf1, 0xb9, 0xb1, 0x31, 0xfb, 0xdc, 0xd8, 0xf8, 0x0a, 0x14, 0x8b, 0x24, 0x14, 0x9f, 0x43, + 0xf1, 0x46, 0x4e, 0x14, 0x42, 0xe3, 0x11, 0x32, 0xff, 0xe5, 0x23, 0xa4, 0xfa, 0xdb, 0x88, 0x90, + 0xda, 0xff, 0x39, 0x42, 0xe0, 0x05, 0x23, 0xa4, 0xfe, 0x02, 0x11, 0xf2, 0x3f, 0xb3, 0x50, 0x11, + 0xdb, 0x41, 0xf2, 0x16, 0xd4, 0xc4, 0x86, 0xd0, 0x2c, 0xfc, 0xcd, 0x62, 0xb7, 0x68, 0x54, 0x80, + 0xea, 0xa7, 0xea, 0x9b, 0x7c, 0x0b, 0x9a, 0x08, 0x11, 0xbb, 0x45, 0x89, 0x2b, 0x9b, 0x13, 0x86, + 0xc0, 0x8d, 0xed, 0xea, 0x1b, 0x9f, 0x1a, 0xb4, 0x2f, 0xb3, 0xac, 0x12, 0x13, 0x2d, 0x8b, 0x63, + 0x9a, 0xe2, 0x16, 0xa0, 0x62, 0x4e, 0xb4, 0x48, 0x16, 0xfb, 0x80, 0x37, 0xa1, 0x19, 0xd2, 0x5e, + 0xe6, 0x62, 0x9b, 0x70, 0x31, 0x3d, 0x3b, 0x31, 0x5e, 0x0d, 0x21, 0x21, 0x1a, 0x86, 0x6b, 0xe9, + 0x4d, 0x58, 0x4c, 0x59, 0xff, 0xcc, 0x84, 0xcc, 0x4d, 0xae, 0xbf, 0x51, 0x24, 0xc7, 0xbc, 0x09, + 0xf5, 0x41, 0x9a, 0x9c, 0x52, 0xb5, 0xc8, 0x9a, 0xbf, 0x62, 0x91, 0x85, 0x32, 0x72, 0x91, 0xf5, + 0x26, 0xd4, 0x4f, 0x87, 0x2c, 0x5f, 0x96, 0x55, 0xaf, 0x40, 0xa0, 0x8c, 0x44, 0x3c, 0x84, 0x45, + 0xec, 0x89, 0x11, 0x7a, 0xb5, 0x89, 0x76, 0x61, 0x67, 0x8d, 0x70, 0xfb, 0x3a, 0x58, 0xb2, 0x33, + 0xcf, 0x2d, 0x69, 0xb2, 0xc3, 0xa3, 0xb0, 0x24, 0x3b, 0x1b, 0x8d, 0xf3, 0xfa, 0x24, 0x0c, 0x65, + 0x0c, 0xd8, 0x63, 0xb8, 0x2d, 0x61, 0xf4, 0x33, 0x03, 0xe9, 0xf6, 0xd2, 0x24, 0x72, 0x59, 0x6c, + 0x37, 0x26, 0x34, 0xdc, 0x44, 0xf1, 0xbd, 0xcf, 0x0a, 0x1d, 0xfb, 0x69, 0x12, 0xb5, 0x63, 0xf2, + 0x08, 0x6e, 0x32, 0xee, 0xc6, 0xc3, 0x30, 0x74, 0xbd, 0x67, 0x5e, 0x4a, 0x5d, 0x4e, 0x23, 0x86, + 0x23, 0x82, 0x25, 0xae, 0xea, 0x2c, 0x33, 0xde, 0x19, 0x86, 0xe1, 0x96, 0x60, 0x76, 0x69, 0xc4, + 0x30, 0x5c, 0xaf, 0x48, 0xae, 0xe6, 0x97, 0x49, 0xae, 0xd6, 0x7f, 0x95, 0x61, 0x61, 0x44, 0x88, + 0xac, 0x40, 0x59, 0xd5, 0x44, 0x9d, 0x60, 0x65, 0x16, 0x90, 0x47, 0x60, 0xf1, 0x64, 0x98, 0xfa, + 0xd4, 0xa5, 0x17, 0x03, 0x65, 0xa9, 0x3c, 0x39, 0x20, 0x52, 0x46, 0xfc, 0xc6, 0xd4, 0x7d, 0x04, + 0x56, 0xe6, 0xa5, 0x7d, 0x9a, 0x19, 0xa8, 0xc9, 0xed, 0x5d, 0x53, 0xca, 0xe4, 0xa8, 0x4d, 0x20, + 0xb9, 0xad, 0xe2, 0x5c, 0xc6, 0x5c, 0x7f, 0x5a, 0xda, 0x4e, 0x7e, 0x46, 0xb3, 0x09, 0x24, 0xb7, + 0x54, 0x60, 0xcc, 0x45, 0x91, 0xa5, 0xad, 0xe4, 0x98, 0xb7, 0x61, 0x3e, 0xed, 0xc9, 0xac, 0x9d, + 0xc3, 0xac, 0xbd, 0x39, 0xc5, 0x69, 0x46, 0xea, 0xce, 0xa5, 0x3d, 0x4c, 0x5a, 0x89, 0x8b, 0x92, + 0x80, 0xaa, 0x5d, 0xdf, 0x34, 0x9c, 0xb1, 0xef, 0x9b, 0x4b, 0x7b, 0xe2, 0xab, 0xf5, 0x83, 0x32, + 0xd4, 0xf2, 0xb3, 0xb8, 0x2f, 0x9e, 0x81, 0x7e, 0xab, 0xeb, 0x49, 0x3d, 0x45, 0x55, 0x26, 0xa6, + 0xa8, 0x1b, 0x30, 0x37, 0x8c, 0xd9, 0x67, 0x43, 0xb9, 0xec, 0xa9, 0x3a, 0xea, 0xeb, 0x8a, 0xa9, + 0x6b, 0xee, 0x8a, 0xa9, 0xeb, 0x5d, 0x68, 0xf6, 0x32, 0x2e, 0xab, 0xae, 0xcb, 0xe2, 0x5e, 0xa2, + 0x4e, 0xf5, 0xc6, 0x56, 0xce, 0xd8, 0xa8, 0x46, 0x2f, 0xe3, 0xf9, 0x57, 0xeb, 0x07, 0x25, 0xa8, + 0xe5, 0x87, 0x8e, 0x64, 0x03, 0xc0, 0xc8, 0xc2, 0xd2, 0x44, 0xac, 0x18, 0x5c, 0xf2, 0x08, 0x9a, + 0xe9, 0x20, 0x36, 0xb3, 0x56, 0x46, 0xa4, 0x3a, 0xb9, 0x71, 0x06, 0xb1, 0xaa, 0x5e, 0x83, 0xd8, + 0x48, 0xdb, 0xfc, 0xf4, 0x60, 0xe6, 0x39, 0xa7, 0x07, 0xad, 0xef, 0x97, 0xcc, 0x53, 0x39, 0xb2, + 0x06, 0xb3, 0x22, 0x82, 0xa7, 0xb5, 0x48, 0x32, 0xc8, 0x06, 0xd4, 0x44, 0x63, 0xa4, 0xd4, 0xd4, + 0x76, 0x54, 0x53, 0xf9, 0xe3, 0x45, 0x9b, 0xf0, 0xaf, 0x65, 0xa8, 0x1b, 0x87, 0xab, 0xe4, 0x55, + 0xa8, 0xf6, 0xd3, 0x64, 0x38, 0x70, 0x4f, 0x2f, 0xa7, 0x34, 0x63, 0x1e, 0x79, 0xdb, 0x97, 0x42, + 0xcc, 0xeb, 0xf7, 0xe5, 0x5a, 0x7d, 0x32, 0x43, 0xe7, 0xbd, 0x7e, 0x5f, 0x2c, 0xcd, 0xc9, 0x1a, + 0x54, 0xe5, 0x31, 0x02, 0x0d, 0x46, 0xd6, 0x2d, 0x39, 0x95, 0x3c, 0x80, 0x86, 0xe8, 0x51, 0x6e, + 0xb3, 0x32, 0xad, 0x53, 0x90, 0x0e, 0xe2, 0x0f, 0x95, 0x65, 0x05, 0xc8, 0xad, 0xcf, 0x5e, 0x05, + 0xd8, 0x52, 0x6d, 0xc8, 0xfd, 0x30, 0xf7, 0xbc, 0x83, 0x9c, 0xf7, 0xa0, 0x31, 0x48, 0x29, 0xaa, + 0x9d, 0xcc, 0xb9, 0x13, 0xb6, 0x1f, 0x7a, 0xfc, 0xec, 0x38, 0xa5, 0x5b, 0xfd, 0xbe, 0xc8, 0x32, + 0x31, 0xef, 0xe8, 0xdf, 0xad, 0x9f, 0x94, 0xa0, 0x72, 0x92, 0x0c, 0x3a, 0xe4, 0x75, 0xa8, 0xe2, + 0xaa, 0xb9, 0xf0, 0x9d, 0x3a, 0x05, 0xdc, 0xbe, 0x6c, 0x67, 0x34, 0x72, 0xe6, 0x91, 0xbb, 0x7d, + 0x49, 0x56, 0xf5, 0xa1, 0x74, 0xd9, 0x38, 0x5e, 0x54, 0xa7, 0xd1, 0x2f, 0x34, 0x6c, 0xc2, 0x0b, + 0xc5, 0x4a, 0x2c, 0x77, 0xdb, 0xa8, 0xb9, 0x7a, 0x2e, 0xb1, 0x7d, 0xd9, 0xfa, 0x97, 0x12, 0xcc, + 0xe2, 0xa9, 0x77, 0x61, 0xbc, 0xf4, 0x1c, 0xe3, 0xe5, 0x2f, 0x63, 0x7c, 0xe6, 0x0b, 0x8c, 0x93, + 0xb7, 0x61, 0x29, 0x4b, 0x87, 0xb1, 0xef, 0x65, 0x54, 0xcc, 0xfe, 0x18, 0xbf, 0xaa, 0xc9, 0x23, + 0x93, 0x9f, 0x16, 0x7a, 0x42, 0x2f, 0x05, 0xa1, 0xf5, 0x01, 0x54, 0x9e, 0xb0, 0x30, 0x24, 0x2f, + 0xc1, 0x9c, 0x9f, 0xc4, 0x71, 0x7b, 0x77, 0xa4, 0xcd, 0x8a, 0x26, 0x3a, 0x24, 0xd7, 0x61, 0x65, + 0x23, 0xc2, 0x24, 0xa9, 0xb5, 0x05, 0x2b, 0xd3, 0xce, 0x23, 0xc9, 0x57, 0x61, 0xa1, 0x38, 0xbf, + 0xd4, 0xc5, 0x51, 0x2b, 0x6e, 0x14, 0xac, 0x76, 0xd0, 0xfa, 0xf9, 0x0c, 0xd8, 0xda, 0x03, 0xf2, + 0x2f, 0x4b, 0xe2, 0xee, 0x30, 0x12, 0xa5, 0x89, 0x6c, 0xc0, 0x12, 0xce, 0x8d, 0x83, 0x34, 0xf1, + 0x29, 0xe7, 0x34, 0x70, 0xb1, 0xa0, 0x94, 0xd6, 0x2b, 0xce, 0xa2, 0x60, 0x1c, 0x6b, 0x7a, 0x47, + 0x24, 0xef, 0x52, 0x3c, 0x8c, 0x84, 0x68, 0x30, 0xf4, 0x69, 0xe0, 0xa6, 0xc9, 0x33, 0x2e, 0x23, + 0xc0, 0x59, 0x8c, 0x87, 0xd1, 0xb1, 0xa2, 0x3b, 0xc9, 0x33, 0x4e, 0x5e, 0x85, 0xa6, 0x90, 0x65, + 0x19, 0x4d, 0x3d, 0x59, 0x75, 0x66, 0x50, 0x70, 0x21, 0x1e, 0x46, 0xed, 0x9c, 0x38, 0x7e, 0xab, + 0x50, 0x99, 0xb8, 0x55, 0x58, 0x83, 0xba, 0x9f, 0xc4, 0xfe, 0x30, 0x4d, 0x69, 0xec, 0x5f, 0x62, + 0xf1, 0xad, 0x38, 0x26, 0x89, 0x1c, 0xc0, 0x4a, 0xc6, 0x7a, 0x22, 0xbc, 0x71, 0xb9, 0x2e, 0x0a, + 0x1d, 0x6e, 0xf5, 0xe7, 0xcc, 0x63, 0x7e, 0x95, 0x00, 0x62, 0x4a, 0xd9, 0x91, 0xfc, 0xc7, 0xd7, + 0x1c, 0xa2, 0x70, 0x06, 0x55, 0xb4, 0x3b, 0x1d, 0x0a, 0x1d, 0x7c, 0x18, 0x0d, 0x32, 0x7d, 0x64, + 0xd9, 0x70, 0x16, 0xd2, 0xe1, 0x4e, 0x41, 0x24, 0x1f, 0x15, 0x46, 0x71, 0xc5, 0xcd, 0xa5, 0x3b, + 0xd5, 0xad, 0xcb, 0xa8, 0x51, 0xb1, 0xea, 0x56, 0xee, 0xce, 0x4d, 0x1a, 0xb4, 0xed, 0x06, 0xc0, + 0x2e, 0xcd, 0x3c, 0x16, 0x62, 0xa1, 0xef, 0xc3, 0x8a, 0xc2, 0xe5, 0x63, 0x85, 0x07, 0x2e, 0x47, + 0xb0, 0x4c, 0x35, 0x41, 0x99, 0x63, 0x54, 0x57, 0xda, 0xbb, 0xa3, 0x71, 0x3e, 0x3e, 0xca, 0x0e, + 0xa1, 0xa3, 0x14, 0x46, 0x79, 0xeb, 0xf7, 0x61, 0x55, 0x19, 0x72, 0x68, 0x9f, 0x25, 0x71, 0x67, + 0x18, 0x1d, 0xf5, 0xda, 0xb1, 0x3a, 0x22, 0xba, 0x07, 0x75, 0xa6, 0x7e, 0xeb, 0xe8, 0xaa, 0x39, + 0xa0, 0x49, 0xed, 0x40, 0x6c, 0xb3, 0x53, 0xc4, 0xb9, 0xf1, 0x30, 0x52, 0x51, 0x50, 0x4b, 0xb5, + 0xa6, 0xd6, 0x7f, 0xdf, 0x01, 0x32, 0xe9, 0x74, 0xf2, 0x08, 0x56, 0x82, 0xa8, 0xc7, 0xd4, 0x55, + 0x4c, 0x4c, 0x03, 0x77, 0xe0, 0xf9, 0xe7, 0x2a, 0xe2, 0xb6, 0xcb, 0x76, 0xc9, 0x21, 0x92, 0xdf, + 0x95, 0xec, 0x63, 0xc1, 0x35, 0x51, 0xe7, 0x6c, 0x30, 0xc8, 0x51, 0xe5, 0x09, 0x94, 0x64, 0x4b, + 0xd4, 0x3b, 0x60, 0x2b, 0x54, 0xe0, 0x65, 0x5e, 0x6e, 0x10, 0xa3, 0x56, 0x06, 0xe3, 0x75, 0xc9, + 0xdf, 0xf5, 0x32, 0x4f, 0xd9, 0xc3, 0xd8, 0x1d, 0x07, 0x2a, 0x9b, 0x08, 0xac, 0x4c, 0x00, 0x25, + 0x17, 0x81, 0xef, 0xc2, 0xcd, 0x2c, 0xc9, 0xbc, 0xd0, 0x55, 0xf0, 0x94, 0xbb, 0x61, 0xe2, 0x05, + 0x62, 0x2b, 0x36, 0x9b, 0x37, 0x75, 0x19, 0x45, 0x76, 0x51, 0xc2, 0xe1, 0x07, 0x89, 0x17, 0xe0, + 0x76, 0x6c, 0x65, 0x14, 0x49, 0x25, 0x6c, 0x0e, 0xcd, 0x2d, 0x99, 0x10, 0x8a, 0x80, 0xaf, 0x6b, + 0x53, 0x72, 0xc7, 0xc0, 0x63, 0x6f, 0xc0, 0xcf, 0x92, 0x4c, 0x60, 0xe6, 0x11, 0x23, 0xf5, 0x6d, + 0x0b, 0x6e, 0x57, 0x31, 0x0f, 0x71, 0x03, 0x1c, 0x26, 0xbe, 0x17, 0xba, 0x72, 0xa4, 0x38, 0x06, + 0x6c, 0xc5, 0x69, 0x20, 0x51, 0xc6, 0x01, 0xe6, 0x6e, 0x4a, 0xa3, 0x24, 0xa3, 0xb9, 0x54, 0x4d, + 0xe6, 0xae, 0xa4, 0x6a, 0xb1, 0xd7, 0x60, 0x71, 0xc8, 0x69, 0x2a, 0xdb, 0x7a, 0x7a, 0x99, 0x51, + 0xb9, 0xe1, 0xac, 0x38, 0x0b, 0x82, 0x2c, 0xda, 0x89, 0x07, 0xdb, 0xe4, 0x2d, 0xb8, 0x2e, 0x9b, + 0x1a, 0x52, 0x2f, 0x8d, 0x35, 0x20, 0xe2, 0xb8, 0xed, 0xac, 0x38, 0x04, 0x99, 0x07, 0x92, 0xa7, + 0x7a, 0xf7, 0xbb, 0x70, 0x3b, 0x60, 0x5c, 0xcc, 0x65, 0x28, 0xeb, 0x7b, 0xfe, 0x19, 0x75, 0xcf, + 0x58, 0xa6, 0xcc, 0x34, 0x10, 0x78, 0x53, 0x8a, 0x08, 0xc8, 0x8e, 0x10, 0x78, 0xcc, 0x32, 0x69, + 0xf0, 0x5b, 0xf0, 0xd2, 0x24, 0x3a, 0x62, 0x9c, 0x2b, 0xf8, 0x02, 0xc2, 0xed, 0x31, 0xf8, 0x21, + 0xe3, 0x5c, 0xe2, 0xdf, 0x06, 0x7b, 0x7c, 0x18, 0xfd, 0x33, 0xea, 0x9f, 0x8b, 0x36, 0x37, 0x0d, + 0xe7, 0xea, 0x31, 0xdc, 0x11, 0xcc, 0x43, 0x2e, 0xd6, 0x82, 0x3c, 0xf3, 0xf4, 0xe8, 0x69, 0xdf, + 0x2d, 0x22, 0xc2, 0x42, 0x8e, 0x30, 0xa6, 0xdd, 0xb7, 0x0a, 0x55, 0x4e, 0xfb, 0x11, 0x8d, 0x33, + 0x8e, 0x97, 0x86, 0x15, 0x27, 0xff, 0x96, 0xc9, 0xe5, 0xe9, 0x3b, 0x80, 0x25, 0x9d, 0x5c, 0x9e, + 0xbc, 0x00, 0x10, 0xec, 0x80, 0x86, 0x99, 0x27, 0x43, 0x92, 0x48, 0x36, 0x52, 0x30, 0x0c, 0xef, + 0x41, 0x5d, 0xb2, 0x65, 0x77, 0x97, 0x91, 0x2f, 0x11, 0xb2, 0x83, 0xaf, 0xc1, 0x62, 0xf4, 0xd4, + 0xf7, 0x5d, 0x16, 0x0f, 0x86, 0x99, 0x54, 0xb2, 0x22, 0x47, 0x4e, 0x90, 0xdb, 0x82, 0x8a, 0x8a, + 0xd6, 0xc1, 0x32, 0xe4, 0xa4, 0xb6, 0xeb, 0x28, 0xd8, 0xcc, 0x05, 0xa5, 0x46, 0x2d, 0x99, 0x0c, + 0xb3, 0x5c, 0xe5, 0x8d, 0x42, 0xf2, 0x08, 0xc9, 0xa8, 0x73, 0x0d, 0x1a, 0x61, 0x84, 0x39, 0x25, + 0xa5, 0x6e, 0xca, 0xd6, 0x85, 0x91, 0x48, 0x24, 0x94, 0xf8, 0x26, 0xac, 0x9a, 0xa1, 0x8d, 0xc6, + 0xd5, 0x15, 0x50, 0xc4, 0xf1, 0x26, 0xb0, 0xe2, 0xdc, 0x2c, 0xa2, 0xbb, 0x5d, 0xf0, 0x0f, 0x8d, + 0x60, 0x93, 0xe0, 0x53, 0x96, 0x45, 0xde, 0x40, 0xe0, 0x6e, 0x19, 0xc1, 0x86, 0xb8, 0x6d, 0x64, + 0x1d, 0x72, 0xf2, 0x06, 0x2c, 0x47, 0x2c, 0x76, 0x65, 0x5e, 0x14, 0x86, 0x56, 0xe5, 0xb8, 0x45, + 0x2c, 0x3e, 0x10, 0x9c, 0xae, 0xb6, 0x20, 0xc4, 0xbd, 0x8b, 0x09, 0xf1, 0xdb, 0x4a, 0xdc, 0xbb, + 0x18, 0x15, 0x7f, 0x00, 0x2b, 0x42, 0xbb, 0x4a, 0xa8, 0x42, 0xfe, 0x25, 0x99, 0xd9, 0x11, 0x8b, + 0x1d, 0x64, 0x8d, 0x00, 0xbc, 0x8b, 0x49, 0xc0, 0x1d, 0x05, 0xf0, 0x2e, 0xc6, 0x00, 0xc7, 0xb0, + 0xac, 0x62, 0xcd, 0x4d, 0x7a, 0xae, 0x2e, 0xd1, 0xf6, 0x5d, 0x9c, 0x19, 0xd6, 0x46, 0xa6, 0xa2, + 0x29, 0x95, 0xde, 0x59, 0x52, 0x60, 0xa3, 0xf8, 0x17, 0x05, 0x10, 0x07, 0x75, 0xa4, 0x72, 0xde, + 0x33, 0x0b, 0xe0, 0xe1, 0x53, 0xdf, 0x9f, 0x5e, 0x39, 0x25, 0xd0, 0xac, 0x9c, 0x6b, 0x13, 0x40, + 0xa3, 0x72, 0x7e, 0x00, 0x77, 0x14, 0x30, 0x8c, 0xf4, 0x3e, 0x7d, 0xc4, 0xec, 0xcb, 0x88, 0xbe, + 0x25, 0x85, 0x0e, 0x22, 0xb9, 0x7b, 0x34, 0x4d, 0x4f, 0xd5, 0x60, 0xda, 0x6f, 0x4d, 0xd5, 0x60, + 0xb4, 0xe1, 0xdb, 0x70, 0x47, 0x86, 0xce, 0x53, 0xbc, 0x18, 0x72, 0x59, 0x70, 0x21, 0xcb, 0x37, + 0x9e, 0x55, 0xf0, 0x87, 0x76, 0x20, 0xeb, 0x06, 0x0a, 0xc9, 0xcb, 0xa3, 0x76, 0x70, 0x21, 0x0a, + 0xf8, 0x7e, 0x9a, 0x44, 0xdd, 0x87, 0x64, 0x07, 0xee, 0x3d, 0x47, 0x41, 0xc0, 0xf8, 0xb9, 0x4d, + 0x51, 0xc5, 0xea, 0x74, 0x15, 0xbb, 0x8c, 0x9f, 0x93, 0x3d, 0x58, 0x7b, 0x8e, 0x12, 0xac, 0x65, + 0x76, 0x0f, 0xb5, 0xdc, 0x9e, 0xae, 0x05, 0x8b, 0xd9, 0xd5, 0x9d, 0xd1, 0x67, 0x83, 0xfd, 0xab, + 0x3a, 0xa3, 0x0e, 0x08, 0xa7, 0x75, 0x46, 0x5e, 0x16, 0xe5, 0x2a, 0xce, 0xa6, 0x75, 0x46, 0x5e, + 0x1b, 0x29, 0x25, 0x47, 0xf0, 0xea, 0x55, 0x4a, 0x9e, 0x32, 0xce, 0x32, 0xb1, 0xdc, 0x4c, 0x02, + 0xca, 0x6d, 0x86, 0xaa, 0xd6, 0xa6, 0xa9, 0xfa, 0x58, 0x0a, 0x76, 0x84, 0x1c, 0xe9, 0xc2, 0xeb, + 0x57, 0x29, 0x0c, 0x18, 0xf7, 0xbd, 0x34, 0xc8, 0x55, 0x7e, 0x8a, 0x2a, 0x5b, 0xd3, 0x54, 0xee, + 0x6a, 0x51, 0xa9, 0x74, 0x1f, 0x5e, 0x9e, 0x50, 0x8a, 0xe5, 0xf7, 0x29, 0xf5, 0xf3, 0xce, 0x9e, + 0x4f, 0xf3, 0xb9, 0xa8, 0xe7, 0x1f, 0x53, 0x5f, 0xf5, 0xf6, 0x00, 0x5e, 0x99, 0xae, 0x07, 0x4f, + 0xb4, 0x78, 0xae, 0x2a, 0x44, 0x55, 0x77, 0x27, 0x55, 0x1d, 0xa1, 0x9c, 0xd2, 0xf6, 0x3e, 0xdc, + 0xee, 0x65, 0xdc, 0x8d, 0xf5, 0x51, 0x59, 0x44, 0xa3, 0x24, 0xbd, 0x74, 0xe3, 0x04, 0x0f, 0x36, + 0xec, 0x1f, 0x96, 0xf0, 0xee, 0xe9, 0x66, 0x2f, 0xe3, 0x1d, 0x79, 0x40, 0x26, 0x05, 0x3a, 0x92, + 0x2f, 0x0a, 0xa1, 0x01, 0xcf, 0x58, 0x7c, 0xe9, 0x4a, 0xe0, 0x9f, 0x48, 0xe0, 0x92, 0x06, 0x9e, + 0xb0, 0xf8, 0x12, 0xcf, 0x5b, 0xc4, 0x9a, 0x62, 0x1c, 0xa2, 0xad, 0xfd, 0x48, 0x82, 0x96, 0x4d, + 0x90, 0xb6, 0xf4, 0x00, 0x56, 0x0c, 0x58, 0x10, 0xf5, 0x94, 0xa1, 0x3f, 0x95, 0x18, 0x4b, 0x63, + 0x76, 0xa3, 0x9e, 0xb4, 0xf3, 0x10, 0x6e, 0x8c, 0x01, 0xb4, 0x99, 0x3f, 0x93, 0x10, 0x62, 0x40, + 0xb4, 0x95, 0x1d, 0xb8, 0x2b, 0x40, 0x22, 0x95, 0xaf, 0xf0, 0xc8, 0x9f, 0xcb, 0x6d, 0xcb, 0x6a, + 0x2f, 0xe3, 0x22, 0x9f, 0xa7, 0x39, 0xe5, 0x1d, 0xb0, 0x47, 0x95, 0x18, 0x7e, 0xf9, 0x0b, 0x09, + 0x5f, 0x31, 0xe0, 0x85, 0x6b, 0xbe, 0x09, 0xab, 0x53, 0x80, 0xda, 0xf2, 0x5f, 0x4a, 0xe8, 0x8d, + 0x31, 0xa8, 0xb6, 0xaa, 0xfc, 0x5a, 0x80, 0x0b, 0x1f, 0xfd, 0x95, 0x44, 0x2e, 0x1b, 0xc8, 0xdc, + 0x4d, 0xef, 0xc1, 0xad, 0x49, 0x98, 0x36, 0xf9, 0x63, 0x09, 0xbc, 0x3e, 0x0a, 0x1c, 0x1b, 0xfc, + 0x22, 0xe9, 0x31, 0x2c, 0x23, 0x6e, 0xff, 0xb5, 0x84, 0x89, 0xc1, 0xd7, 0xe9, 0x2e, 0x58, 0x72, + 0x41, 0x39, 0x02, 0x31, 0xca, 0xcd, 0xdf, 0x14, 0x83, 0x3f, 0x51, 0x67, 0x3e, 0x80, 0x3b, 0x53, + 0x60, 0xf2, 0x24, 0x4c, 0x14, 0x5a, 0xfb, 0x27, 0x12, 0x6c, 0x8f, 0x81, 0x51, 0x62, 0x9f, 0x85, + 0x54, 0xac, 0xf5, 0x26, 0x35, 0x70, 0xf5, 0x5e, 0xeb, 0xa1, 0xfd, 0xb7, 0x12, 0x7f, 0x63, 0x14, + 0xdf, 0x45, 0x7e, 0xf7, 0xe1, 0x74, 0xfb, 0x0a, 0x8d, 0x15, 0xf7, 0xef, 0xa6, 0xda, 0x97, 0x78, + 0x2c, 0xb8, 0xeb, 0x60, 0x69, 0x0d, 0xaa, 0x92, 0xc4, 0xf6, 0xdf, 0x4b, 0xd0, 0x82, 0x04, 0xc9, + 0xa2, 0xd1, 0x31, 0x5d, 0xa4, 0x2b, 0xa1, 0xf6, 0xeb, 0x3f, 0x14, 0xe3, 0x58, 0xd4, 0x40, 0xe5, + 0x59, 0x15, 0xee, 0x02, 0x16, 0x44, 0x1a, 0x89, 0x53, 0xd2, 0x3f, 0x4a, 0x14, 0x91, 0xa8, 0xdd, + 0x48, 0xe2, 0x70, 0x32, 0x7a, 0x1f, 0x5e, 0x32, 0x40, 0xd2, 0x0e, 0xd6, 0x12, 0x41, 0x8d, 0xb8, + 0xfd, 0xd3, 0x22, 0xe4, 0x10, 0x8a, 0xc6, 0x44, 0x0d, 0xd9, 0xcf, 0xb8, 0xac, 0xde, 0xd3, 0xe1, + 0xaa, 0x14, 0x45, 0xdc, 0xfe, 0x99, 0xd4, 0x70, 0x6b, 0x42, 0x83, 0xac, 0x42, 0x87, 0x5c, 0x67, + 0x8b, 0x50, 0x82, 0xe1, 0x6e, 0x36, 0xfd, 0x9f, 0x8a, 0x6c, 0x69, 0x07, 0x17, 0x22, 0xda, 0x8d, + 0xc6, 0x6f, 0xc9, 0x5c, 0xcd, 0x81, 0x93, 0xcd, 0xff, 0xb9, 0x84, 0xdb, 0x05, 0x7c, 0xac, 0x03, + 0x1f, 0xc2, 0xcb, 0x57, 0xa9, 0x28, 0xba, 0xf0, 0x0b, 0xa9, 0xe5, 0xf6, 0x14, 0x2d, 0x79, 0x27, + 0xd4, 0xa0, 0x9d, 0xa6, 0xc3, 0x8c, 0x9a, 0x5a, 0x22, 0x6e, 0xff, 0x73, 0x31, 0x68, 0xdb, 0x82, + 0x9d, 0x83, 0x0f, 0xb9, 0x4e, 0x3e, 0x13, 0xa6, 0xba, 0x1f, 0x71, 0xfb, 0x97, 0x45, 0xf2, 0x15, + 0x40, 0xd9, 0xff, 0x43, 0xde, 0xfa, 0x69, 0x29, 0xdf, 0xfa, 0x1a, 0xdb, 0x7c, 0xf2, 0x0a, 0x34, + 0x23, 0x16, 0x9f, 0x74, 0x8f, 0xe4, 0x89, 0x41, 0x7e, 0xcc, 0xd2, 0x90, 0x54, 0x21, 0xda, 0xc1, + 0x60, 0x19, 0xb0, 0x01, 0x0d, 0x59, 0x4c, 0xdd, 0xcf, 0x86, 0x74, 0x48, 0x73, 0x69, 0xb9, 0xc5, + 0x5e, 0xd6, 0xdc, 0xef, 0x08, 0xa6, 0x02, 0xbd, 0x03, 0x76, 0x0e, 0x3a, 0x4d, 0xa9, 0x77, 0x4e, + 0xd3, 0x1c, 0xa6, 0x76, 0xba, 0x9a, 0xbf, 0x2d, 0xd9, 0x12, 0xd8, 0xfa, 0x1c, 0x2a, 0xdd, 0x24, + 0xcd, 0xc8, 0x6b, 0x30, 0x7f, 0x8a, 0xc7, 0x5e, 0x7c, 0xfa, 0xb9, 0x9f, 0x62, 0x92, 0x57, 0x60, + 0x81, 0x71, 0xbc, 0x27, 0xf6, 0x42, 0x01, 0x54, 0x2f, 0xa0, 0x46, 0x89, 0x2f, 0x78, 0x70, 0xfb, + 0x47, 0x65, 0xb0, 0xe4, 0xfb, 0xc8, 0xfd, 0xd4, 0x8b, 0xe8, 0x76, 0x32, 0x8c, 0x03, 0xf2, 0x00, + 0x2a, 0xc6, 0xbd, 0xe2, 0x75, 0xf3, 0x15, 0x25, 0x0a, 0x18, 0xf7, 0x0c, 0x28, 0x48, 0x5a, 0x50, + 0x1b, 0xc6, 0xa7, 0x82, 0x45, 0x83, 0x91, 0xf3, 0xb3, 0x82, 0x4c, 0x6e, 0xc0, 0x9c, 0x7c, 0xd9, + 0xa5, 0x9c, 0xa1, 0xbe, 0xc8, 0x3a, 0xd4, 0x7c, 0x2f, 0xf4, 0xf7, 0x87, 0xb1, 0xcf, 0xa7, 0x9c, + 0xe6, 0x15, 0x4c, 0xf2, 0x3b, 0x50, 0xef, 0x89, 0x46, 0xba, 0xf8, 0x3c, 0x41, 0xbd, 0xec, 0x1d, + 0x39, 0x70, 0x47, 0x36, 0xbe, 0x64, 0x20, 0xdf, 0x80, 0x05, 0x3f, 0x1a, 0xc8, 0xb3, 0x03, 0xe3, + 0xda, 0x44, 0x3d, 0xc5, 0x45, 0x99, 0x9d, 0x68, 0xb0, 0xeb, 0x65, 0x1e, 0xde, 0xe7, 0xd5, 0xfd, + 0xe2, 0xa3, 0xf5, 0xc3, 0x12, 0xd4, 0x0d, 0xa7, 0x3c, 0xcf, 0x1f, 0x28, 0x30, 0xe1, 0x8f, 0xaf, + 0xc1, 0x2c, 0xcf, 0x3c, 0x35, 0x32, 0xf9, 0xfb, 0xdf, 0x71, 0x3f, 0x3b, 0x52, 0x88, 0xac, 0xc3, + 0x0c, 0x8d, 0xf5, 0x38, 0x5d, 0x25, 0x2b, 0x44, 0x5a, 0xbf, 0x2e, 0xc1, 0x9c, 0xe4, 0x90, 0xd7, + 0xa1, 0xd6, 0x1b, 0xc6, 0xbe, 0x8b, 0x37, 0x25, 0x93, 0x47, 0xec, 0x55, 0xc1, 0xdc, 0xa5, 0xdc, + 0x9f, 0x38, 0x66, 0x2d, 0x7f, 0xd1, 0x31, 0xab, 0x79, 0xfe, 0x3c, 0xf3, 0xbc, 0xf3, 0xe7, 0xd7, + 0x61, 0x16, 0x1d, 0xae, 0xde, 0x36, 0x2e, 0x4d, 0xb4, 0xdc, 0x91, 0xfc, 0x22, 0x14, 0x67, 0x9f, + 0x17, 0x8a, 0xdf, 0x86, 0x06, 0x9e, 0xce, 0xb3, 0xb8, 0x2f, 0xba, 0x40, 0x1e, 0xc0, 0x42, 0x5f, + 0x7d, 0xcb, 0xa3, 0xde, 0xc9, 0x5e, 0x36, 0xfa, 0x06, 0xa0, 0xf5, 0x18, 0xea, 0x5a, 0x41, 0x97, + 0x66, 0xe4, 0x3d, 0x68, 0x8e, 0xe0, 0x75, 0x56, 0xa9, 0x6b, 0x1e, 0xd3, 0x96, 0xb3, 0x60, 0x2a, + 0xe2, 0xad, 0xef, 0x97, 0x60, 0x4e, 0x3e, 0xa6, 0x25, 0x6f, 0x1b, 0xad, 0xc8, 0x9f, 0x25, 0xe6, + 0x9d, 0x35, 0xec, 0x15, 0x8d, 0xe9, 0xd2, 0x8c, 0xbf, 0xe0, 0x19, 0xb8, 0x0d, 0xf3, 0x4f, 0x69, + 0x8a, 0x8f, 0x32, 0x65, 0x56, 0xe8, 0xcf, 0xd6, 0x1b, 0x50, 0x13, 0x6d, 0x91, 0x0f, 0x12, 0xbf, + 0xf0, 0x4a, 0xa7, 0xf5, 0xc7, 0x25, 0x98, 0x57, 0xcf, 0x7f, 0xc9, 0x7d, 0x80, 0x41, 0x9a, 0x7c, + 0x3a, 0xd2, 0xe9, 0xc5, 0x02, 0x22, 0x9f, 0x66, 0xd6, 0x84, 0x88, 0xbc, 0xe2, 0x79, 0x04, 0x37, + 0xfa, 0x34, 0xa6, 0xa9, 0x27, 0x76, 0x02, 0xea, 0xec, 0x40, 0xbe, 0xe4, 0x2a, 0xe3, 0x4b, 0xae, + 0x95, 0x9c, 0x2b, 0x4f, 0x10, 0xe4, 0x93, 0xae, 0x17, 0xab, 0x2f, 0xaf, 0x41, 0x73, 0xf4, 0x91, + 0x31, 0x59, 0xd1, 0xe7, 0xec, 0xf2, 0x34, 0x53, 0x7e, 0x6c, 0xfc, 0xe1, 0x8c, 0xfc, 0x7f, 0x03, + 0xbc, 0xb4, 0x5c, 0x82, 0x05, 0xf1, 0x37, 0x7f, 0x01, 0x63, 0x5d, 0xd3, 0xa4, 0xfc, 0x4a, 0xd2, + 0x2a, 0x69, 0x52, 0x7e, 0x1f, 0x67, 0x95, 0xc9, 0x32, 0x2c, 0x0a, 0x92, 0x71, 0x13, 0x65, 0xcd, + 0x90, 0x06, 0x54, 0x51, 0x5b, 0x32, 0xe8, 0x58, 0x15, 0xb2, 0x00, 0x35, 0xf1, 0x85, 0x97, 0x18, + 0xd6, 0x6c, 0xae, 0x04, 0xb7, 0xf1, 0x5b, 0xfd, 0xbe, 0x35, 0xa7, 0xe5, 0x3f, 0x4a, 0x58, 0x6c, + 0xcd, 0xeb, 0xaf, 0x27, 0x2c, 0x0c, 0xad, 0x2a, 0xb9, 0x01, 0x44, 0x7c, 0x8d, 0xbe, 0x36, 0xb6, + 0x6a, 0xc4, 0x86, 0x15, 0x93, 0xae, 0xdf, 0x83, 0x5a, 0x40, 0x08, 0x34, 0x05, 0xa7, 0xb8, 0x9f, + 0xb3, 0xea, 0x64, 0x15, 0x6e, 0x20, 0x6d, 0xe2, 0xa9, 0x8f, 0xd5, 0xd0, 0xf6, 0x44, 0x09, 0xb7, + 0x16, 0x48, 0x13, 0x40, 0x7c, 0xc9, 0x9c, 0xb2, 0x9a, 0xfa, 0x5b, 0x8e, 0xb4, 0xb5, 0x48, 0x16, + 0xa1, 0x5e, 0x7c, 0x6f, 0x5a, 0x96, 0x6e, 0xe0, 0xa8, 0xcf, 0xad, 0x25, 0xed, 0x19, 0xe3, 0xdd, + 0xad, 0xb5, 0x42, 0x5e, 0x02, 0x5b, 0xa1, 0x27, 0xae, 0x36, 0xac, 0xeb, 0x1b, 0xef, 0x42, 0xc3, + 0x7c, 0x5d, 0x2a, 0x6c, 0x1d, 0x7b, 0x9c, 0x9f, 0x9c, 0xa5, 0xc9, 0xb0, 0x7f, 0x66, 0x5d, 0x13, + 0xae, 0xcc, 0xed, 0x58, 0x25, 0x52, 0x85, 0xca, 0x63, 0x8f, 0x9f, 0x59, 0xe5, 0x8d, 0x6f, 0xc2, + 0xe2, 0xd8, 0xab, 0x62, 0xc1, 0xec, 0x1c, 0x75, 0xf6, 0xac, 0x6b, 0xe2, 0xd7, 0xfe, 0x56, 0xf7, + 0xc4, 0x2a, 0x91, 0x15, 0xb0, 0x1e, 0xb7, 0x3f, 0x7c, 0xec, 0xee, 0x1c, 0x1d, 0x1e, 0x3b, 0x7b, + 0xdd, 0x6e, 0xfb, 0xa8, 0x63, 0x95, 0x37, 0xee, 0x03, 0x14, 0xcf, 0xd8, 0x48, 0x0d, 0x66, 0xf1, + 0x24, 0x47, 0x02, 0x4f, 0xd8, 0x93, 0x8f, 0xad, 0x12, 0xa9, 0xc3, 0xbc, 0x9a, 0xda, 0xad, 0xf2, + 0xc6, 0x43, 0x58, 0x54, 0xdb, 0x37, 0xd1, 0xb7, 0x27, 0x2c, 0x16, 0x53, 0x0d, 0x69, 0x77, 0x3e, + 0xde, 0x3a, 0x68, 0xef, 0xba, 0xed, 0xce, 0xee, 0xde, 0xf7, 0xdc, 0x27, 0xed, 0xce, 0xae, 0xd4, + 0xf0, 0xb8, 0xd3, 0xfd, 0xc4, 0x2a, 0x6d, 0x9c, 0xc2, 0xca, 0xb4, 0x87, 0xa7, 0xe4, 0x36, 0xdc, + 0xd4, 0xc8, 0xdd, 0x76, 0xf7, 0x64, 0xab, 0xb3, 0xb3, 0xe7, 0x1e, 0xee, 0x9d, 0x38, 0xed, 0x1d, + 0xeb, 0x1a, 0x99, 0x83, 0xf2, 0xc1, 0x5b, 0x56, 0x09, 0xff, 0x6e, 0x5a, 0x65, 0x02, 0x30, 0xb7, + 0x73, 0xd4, 0x6d, 0x77, 0xf6, 0xac, 0x19, 0x11, 0x47, 0xed, 0x4e, 0x67, 0xcf, 0x71, 0x8f, 0x9d, + 0xa3, 0xdd, 0xef, 0xee, 0x9c, 0x58, 0x95, 0x8d, 0xb7, 0x8a, 0x27, 0xb4, 0xd8, 0x95, 0x15, 0xb0, + 0xda, 0xf1, 0x53, 0x2f, 0x64, 0x41, 0x4e, 0xb3, 0xae, 0x89, 0xbe, 0x1c, 0xc9, 0x7a, 0x6a, 0x95, + 0x36, 0x7e, 0xaf, 0x78, 0xdf, 0x89, 0x90, 0x9b, 0xb0, 0x6c, 0x7e, 0x2b, 0xb8, 0x75, 0x6d, 0x9c, + 0xd1, 0x49, 0xba, 0x7e, 0x92, 0x52, 0xab, 0x44, 0x6e, 0xc1, 0x75, 0x93, 0xf1, 0x09, 0xcb, 0xce, + 0x24, 0xab, 0xbc, 0xf1, 0xcb, 0x12, 0x54, 0xf5, 0xe3, 0xa0, 0x22, 0x9f, 0x62, 0x9a, 0x62, 0xa4, + 0x5f, 0x23, 0xd7, 0x61, 0x09, 0x33, 0x83, 0xf6, 0xb2, 0xa3, 0x61, 0xa6, 0xc8, 0x25, 0x1d, 0x51, + 0x0e, 0xeb, 0x9f, 0x19, 0xf4, 0x32, 0xb1, 0xa0, 0x21, 0xd3, 0x4f, 0x3e, 0xf1, 0xb0, 0x66, 0x44, + 0x07, 0x31, 0xfb, 0xe2, 0x8c, 0xe5, 0xd4, 0x8a, 0x68, 0xd1, 0x88, 0xda, 0x9c, 0x35, 0x4b, 0xee, + 0xc0, 0x2d, 0x0d, 0x98, 0x64, 0xcf, 0x6d, 0xac, 0x41, 0xc3, 0x7c, 0x94, 0xa4, 0x2d, 0x8a, 0x20, + 0x93, 0x4d, 0xde, 0xf8, 0x06, 0x2c, 0x4d, 0x3c, 0x80, 0x10, 0xc3, 0xd3, 0xee, 0x48, 0xcf, 0x1e, + 0xb6, 0x3b, 0xee, 0xe1, 0xd6, 0xf7, 0xac, 0x92, 0xc0, 0x6e, 0x1f, 0x1c, 0x1d, 0x1d, 0xba, 0xfb, + 0xed, 0x83, 0x93, 0x3d, 0xc7, 0x2a, 0x6f, 0x6c, 0x8c, 0x61, 0x31, 0x4c, 0x45, 0xb8, 0x1d, 0xed, + 0x6c, 0x1d, 0x58, 0xd7, 0xc4, 0xe8, 0x7e, 0x78, 0x70, 0xb4, 0xbd, 0x75, 0x60, 0x95, 0x36, 0xb6, + 0x61, 0x69, 0xe2, 0xf2, 0x56, 0xe4, 0xc3, 0x7e, 0x92, 0xfa, 0x54, 0x92, 0x64, 0x78, 0x6d, 0x0d, + 0xb3, 0xc4, 0x2a, 0x89, 0xa4, 0x47, 0x96, 0x2c, 0x2b, 0x2c, 0xee, 0x5b, 0xe5, 0x8d, 0x6f, 0xc3, + 0xe2, 0xd8, 0x12, 0x4a, 0x24, 0xd0, 0x7e, 0x12, 0x86, 0xc9, 0x33, 0x21, 0x81, 0xf9, 0x74, 0x9c, + 0x52, 0x9f, 0x06, 0xe2, 0xb3, 0x24, 0x72, 0x7d, 0x07, 0xaf, 0xd7, 0x32, 0x27, 0x79, 0x66, 0x95, + 0x37, 0x8e, 0xc0, 0x1a, 0x5f, 0xb6, 0x90, 0x79, 0x98, 0x69, 0xc7, 0x99, 0x75, 0x4d, 0x34, 0x7c, + 0x3f, 0x4c, 0xbc, 0x4c, 0x66, 0xc7, 0x2e, 0xf5, 0x59, 0xe4, 0x85, 0x56, 0x59, 0x94, 0x93, 0x5d, + 0x2f, 0xa3, 0x27, 0x2c, 0xa2, 0xb2, 0x14, 0xee, 0x0e, 0xe5, 0xad, 0x9f, 0x55, 0x11, 0x99, 0x33, + 0xb6, 0x88, 0x11, 0x5d, 0x10, 0x7b, 0x07, 0xd9, 0x7d, 0xb4, 0xc6, 0xad, 0x12, 0xba, 0x42, 0xcc, + 0x6d, 0xdc, 0x2a, 0x6f, 0x7f, 0xf5, 0x57, 0xbf, 0xb9, 0x5b, 0xfa, 0xb7, 0xdf, 0xdc, 0x2d, 0xfd, + 0xc7, 0x6f, 0xee, 0x96, 0x7e, 0xf4, 0x9f, 0x77, 0xaf, 0xc1, 0x75, 0x3f, 0x89, 0xee, 0x8b, 0x79, + 0xcf, 0xf7, 0x06, 0xf7, 0x33, 0x16, 0x9c, 0xe2, 0x4c, 0x70, 0x5c, 0xfa, 0xdf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x82, 0xf9, 0x0d, 0xfa, 0x90, 0x36, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index 032d35ab..8d2b7a90 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -157,8 +157,8 @@ message ANNQueryInfo { enum FTSQueryType { FTSQueryTypeInvalid = 0; - FTSQueryTypeFilter = 1; // Not supported yet - FTSQueryTypeTopK = 2; + FTSQueryTypeNoScore = 1; // Means no scoring is ever needed, encourages the engine to use a fast path. + FTSQueryTypeWithScore = 2; } message FTSQueryInfo { @@ -173,7 +173,11 @@ message FTSQueryInfo { optional string query_text = 5 [(gogoproto.nullable) = false]; optional string query_tokenizer = 6 [(gogoproto.nullable) = false]; // Always the same as parser/model/index_full_text.go:FullTextParserType - // For QueryType == TopK + // For QueryType == WithScore, a top_k can be optionally specified. + // If top_k is specified, it means the TableScan is safe to return at most *top* k results + // because upper executors will have a TopK anyway. + // If not specified (optional, or top_k is very large), then all results will be returned. + // This option is not supported for QueryType == NoScore. optional uint32 top_k = 10; // Distinguish match_word, match_expression, match_prefix, match_regexp From 50576b9ad0b1fbbcddfe6715b76178f2102cb678 Mon Sep 17 00:00:00 2001 From: Shenghui Wu <793703860@qq.com> Date: Thu, 7 Aug 2025 14:08:21 +0800 Subject: [PATCH 6/8] Add the match expr to FTSQueryInfo to support more complex query (#374) (cherry picked from commit cc991284c165ed5879a7f3371f1c8fa1448b5b7f) --- go-tipb/executor.pb.go | 715 ++++++++++++++++++++++------------------- proto/executor.proto | 3 + 2 files changed, 391 insertions(+), 327 deletions(-) diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index ced81fd2..9fbfcef3 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -1144,8 +1144,10 @@ type FTSQueryInfo struct { // This option is not supported for QueryType == NoScore. TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` // Distinguish match_word, match_expression, match_prefix, match_regexp - QueryFunc ScalarFuncSig `protobuf:"varint,20,opt,name=query_func,json=queryFunc,enum=tipb.ScalarFuncSig" json:"query_func"` - XXX_unrecognized []byte `json:"-"` + QueryFunc ScalarFuncSig `protobuf:"varint,20,opt,name=query_func,json=queryFunc,enum=tipb.ScalarFuncSig" json:"query_func"` + // Filter pushed down to tici + MatchExpr []Expr `protobuf:"bytes,21,rep,name=match_expr,json=matchExpr" json:"match_expr"` + XXX_unrecognized []byte `json:"-"` } func (m *FTSQueryInfo) Reset() { *m = FTSQueryInfo{} } @@ -1209,6 +1211,13 @@ func (m *FTSQueryInfo) GetQueryFunc() ScalarFuncSig { return ScalarFuncSig_Unspecified } +func (m *FTSQueryInfo) GetMatchExpr() []Expr { + if m != nil { + return m.MatchExpr + } + return nil +} + type TableScan struct { TableId int64 `protobuf:"varint,1,opt,name=table_id,json=tableId" json:"table_id"` Columns []*ColumnInfo `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"` @@ -3686,6 +3695,20 @@ func (m *FTSQueryInfo) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintExecutor(dAtA, i, uint64(m.QueryFunc)) + if len(m.MatchExpr) > 0 { + for _, msg := range m.MatchExpr { + dAtA[i] = 0xaa + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -5997,6 +6020,12 @@ func (m *FTSQueryInfo) Size() (n int) { n += 1 + sovExecutor(uint64(*m.TopK)) } n += 2 + sovExecutor(uint64(m.QueryFunc)) + if len(m.MatchExpr) > 0 { + for _, e := range m.MatchExpr { + l = e.Size() + n += 2 + l + sovExecutor(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -8864,6 +8893,37 @@ func (m *FTSQueryInfo) Unmarshal(dAtA []byte) error { break } } + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchExpr", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MatchExpr = append(m.MatchExpr, Expr{}) + if err := m.MatchExpr[len(m.MatchExpr)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipExecutor(dAtA[iNdEx:]) @@ -15095,329 +15155,330 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 5178 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x73, 0x1c, 0xc9, - 0x71, 0xe6, 0x0c, 0x06, 0xc0, 0x4c, 0xce, 0x60, 0xd0, 0x28, 0x80, 0x64, 0x13, 0x5c, 0x92, 0xd8, - 0xd1, 0x3e, 0x20, 0x58, 0x4b, 0xee, 0x82, 0xd4, 0x3e, 0x24, 0xaf, 0xb4, 0x78, 0x2e, 0x67, 0x09, - 0x0c, 0xa0, 0x1e, 0x68, 0x57, 0x11, 0x76, 0x44, 0x47, 0xa3, 0xbb, 0x66, 0x50, 0x8b, 0x7e, 0xcc, - 0x76, 0xf5, 0x90, 0xc0, 0x9e, 0x74, 0xf6, 0xc9, 0x61, 0x85, 0x65, 0xf9, 0x29, 0x5b, 0x7e, 0x49, - 0x96, 0xac, 0x83, 0x7f, 0x81, 0x8f, 0x3a, 0xfa, 0xac, 0x83, 0xc3, 0x21, 0x9f, 0xfc, 0x0f, 0x1c, - 0x3e, 0x39, 0x2a, 0xab, 0xaa, 0xbb, 0xe6, 0x01, 0x2e, 0x37, 0xac, 0x83, 0x4f, 0x98, 0xce, 0xcc, - 0x2f, 0xb3, 0x2a, 0x2b, 0x33, 0xeb, 0x09, 0x68, 0xd2, 0x0b, 0xea, 0x0f, 0xb3, 0x24, 0xbd, 0x3f, - 0x48, 0x93, 0x2c, 0x21, 0x95, 0x8c, 0x0d, 0x4e, 0x57, 0x2d, 0x7a, 0x31, 0x48, 0x29, 0xe7, 0x2c, - 0x89, 0x25, 0x7d, 0xb5, 0xc1, 0xfd, 0x33, 0x1a, 0x79, 0xea, 0x6b, 0xa5, 0x9f, 0xf4, 0x13, 0xfc, - 0xf9, 0x40, 0xfc, 0x92, 0xd4, 0xd6, 0xcf, 0x6a, 0x50, 0xdd, 0x53, 0xea, 0xc8, 0x2b, 0x50, 0xce, - 0x06, 0x76, 0x69, 0xad, 0xb4, 0xde, 0xdc, 0x6c, 0xde, 0x17, 0x5a, 0xef, 0x0b, 0xde, 0xc9, 0xe5, - 0x80, 0x6e, 0x57, 0x7e, 0xf5, 0xef, 0xf7, 0xae, 0x39, 0xe5, 0x6c, 0x40, 0x36, 0xa0, 0x9a, 0x9d, - 0x86, 0x2e, 0xf7, 0xbd, 0xd8, 0x2e, 0xaf, 0x95, 0xd6, 0xeb, 0x9b, 0x8b, 0x52, 0xf6, 0xc4, 0x3b, - 0x0d, 0x69, 0xd7, 0xf7, 0x62, 0x67, 0x3e, 0x3b, 0x0d, 0xc5, 0x0f, 0x21, 0xcb, 0x82, 0x0b, 0x29, - 0x3b, 0x63, 0xca, 0xb6, 0xe3, 0x80, 0x5e, 0x48, 0x59, 0x16, 0xe0, 0x0f, 0xf2, 0x06, 0xd4, 0x38, - 0x0d, 0xa9, 0x9f, 0xb1, 0x24, 0xb6, 0x2b, 0xa6, 0x70, 0x57, 0x93, 0x9d, 0x42, 0x82, 0x3c, 0x84, - 0xba, 0xd7, 0xef, 0xa7, 0xb4, 0xef, 0x21, 0x60, 0x16, 0x01, 0x4b, 0x12, 0xb0, 0x55, 0x30, 0x1c, - 0x53, 0x8a, 0xdc, 0x85, 0x4a, 0x96, 0x0c, 0x3a, 0xf6, 0x1c, 0x4a, 0x83, 0x6a, 0x77, 0x32, 0xe8, - 0x38, 0x48, 0x27, 0x2f, 0xc3, 0x6c, 0xc8, 0x22, 0x96, 0xd9, 0xf3, 0x28, 0x50, 0x97, 0x02, 0x07, - 0x82, 0xe4, 0x48, 0x0e, 0xd9, 0x81, 0x25, 0x7a, 0xe1, 0x9f, 0x79, 0x71, 0x9f, 0xba, 0x29, 0xf5, - 0x29, 0x7b, 0x4a, 0x53, 0xbb, 0x8a, 0xe2, 0x37, 0xb4, 0xcf, 0x24, 0xdb, 0x51, 0x5c, 0xc7, 0xa2, - 0x63, 0x14, 0xd1, 0x8e, 0x4f, 0x13, 0x16, 0xdb, 0x35, 0xb3, 0x1d, 0x1f, 0x25, 0x2c, 0x76, 0x90, - 0x4e, 0xee, 0x41, 0x5d, 0x0f, 0xb2, 0xcb, 0x02, 0x1b, 0xd6, 0x4a, 0xeb, 0x35, 0x07, 0x34, 0xa9, - 0x1d, 0x08, 0x05, 0xe7, 0x2c, 0x0c, 0xed, 0xba, 0xa9, 0xe0, 0x09, 0x0b, 0x43, 0x07, 0xe9, 0xe4, - 0x7d, 0x58, 0xcc, 0x5b, 0xc9, 0x69, 0x1c, 0xd0, 0xd4, 0x6e, 0xa0, 0xe8, 0xca, 0x68, 0x1b, 0xbb, - 0xc8, 0x73, 0x9a, 0x74, 0xe4, 0x9b, 0xbc, 0x09, 0x70, 0x9c, 0x26, 0x9f, 0xaa, 0xc1, 0x58, 0x40, - 0xa4, 0x25, 0x91, 0x05, 0xdd, 0x31, 0x64, 0xc8, 0x47, 0xb0, 0x32, 0xf0, 0xd2, 0x8c, 0x89, 0x0f, - 0x37, 0x13, 0x91, 0x20, 0x47, 0xbd, 0x89, 0x58, 0x5b, 0x61, 0xb5, 0x44, 0x11, 0x2a, 0x64, 0x30, - 0x41, 0x13, 0x9d, 0xe3, 0x49, 0x9a, 0xd9, 0x8b, 0x66, 0xe7, 0xba, 0x49, 0x9a, 0x39, 0x48, 0x27, - 0xaf, 0xc0, 0xdc, 0x33, 0x16, 0x07, 0xc9, 0x33, 0xdb, 0x42, 0x89, 0x86, 0x94, 0xf8, 0x04, 0x69, - 0x8e, 0xe2, 0x91, 0x0e, 0xbc, 0xdc, 0x63, 0x31, 0x75, 0xfb, 0xa9, 0xc7, 0x62, 0x1a, 0xb8, 0xfc, - 0x6c, 0xd8, 0xeb, 0x89, 0x66, 0x65, 0x29, 0xf5, 0x22, 0xd7, 0x4f, 0x86, 0x71, 0x66, 0x2f, 0xad, - 0x95, 0xd6, 0x2b, 0x2a, 0xb8, 0xef, 0x08, 0xf1, 0x0f, 0xa5, 0x74, 0x57, 0x0a, 0x77, 0x51, 0x76, - 0x47, 0x88, 0x92, 0x8f, 0xe0, 0xde, 0x54, 0x7d, 0xa7, 0x5e, 0xe6, 0x9f, 0xb9, 0x9c, 0x7d, 0x4e, - 0x6d, 0x62, 0x68, 0xbb, 0x3d, 0xa9, 0x6d, 0x5b, 0x48, 0x76, 0xd9, 0xe7, 0x54, 0xf4, 0x80, 0x5e, - 0x0c, 0xbc, 0x38, 0xb0, 0x97, 0xcd, 0x1e, 0xec, 0x21, 0xcd, 0x51, 0x3c, 0xf2, 0x3a, 0xcc, 0xcb, - 0x5f, 0x9b, 0xf6, 0x0a, 0x8a, 0x2d, 0x98, 0x62, 0x9b, 0x8e, 0xe6, 0x8a, 0xd1, 0x3e, 0x4d, 0x13, - 0x2f, 0xf0, 0x3d, 0x9e, 0xb9, 0x9f, 0x0d, 0x69, 0x7a, 0x69, 0x5f, 0x37, 0x47, 0x7b, 0x5b, 0x33, - 0xbf, 0x23, 0x78, 0x4e, 0xf3, 0x74, 0xe4, 0x9b, 0x3c, 0x82, 0x06, 0x13, 0xf9, 0xe8, 0x86, 0x49, - 0x72, 0x3e, 0x1c, 0xd8, 0xb6, 0x99, 0x4b, 0x98, 0xa9, 0x07, 0x49, 0x72, 0xfe, 0xdd, 0x81, 0x53, - 0x67, 0xfa, 0x63, 0x38, 0x20, 0x77, 0x00, 0x06, 0x5e, 0x4a, 0xe3, 0xcc, 0x65, 0xc1, 0x85, 0x7d, - 0x6b, 0xad, 0xb4, 0xbe, 0xe0, 0xd4, 0x24, 0xa5, 0x1d, 0x5c, 0x90, 0x63, 0xb8, 0x41, 0x2f, 0x06, - 0xa1, 0xc7, 0x62, 0xb7, 0x97, 0xa4, 0xae, 0x9f, 0xc4, 0xb1, 0x0a, 0xa7, 0x55, 0x54, 0xbf, 0x9a, - 0xf7, 0x45, 0xc8, 0xec, 0x27, 0xe9, 0x4e, 0x2e, 0xe1, 0xac, 0xd0, 0x29, 0xd4, 0xd6, 0x2f, 0x66, - 0xa0, 0x39, 0x1a, 0xb7, 0x64, 0xdd, 0xa8, 0x58, 0x64, 0x34, 0xb2, 0x27, 0xaa, 0xd6, 0x12, 0x8d, - 0xfd, 0x24, 0xa0, 0x81, 0x9b, 0x79, 0xfc, 0xdc, 0x8d, 0x68, 0xe6, 0xd9, 0xe5, 0xb5, 0x99, 0xf5, - 0x86, 0xb3, 0xa8, 0x18, 0x27, 0x1e, 0x3f, 0x3f, 0xa4, 0x99, 0x47, 0xde, 0x82, 0x66, 0x11, 0xcb, - 0xe7, 0xf4, 0x92, 0xdb, 0x33, 0x6b, 0x33, 0x45, 0x24, 0xee, 0x5d, 0x0c, 0x52, 0x67, 0x21, 0x97, - 0x78, 0x42, 0x2f, 0x39, 0x79, 0x05, 0x66, 0xfd, 0x33, 0x16, 0x06, 0xaa, 0x70, 0x19, 0xd5, 0x53, - 0x24, 0xac, 0x23, 0x99, 0xe4, 0x55, 0x98, 0xcd, 0x2e, 0x07, 0x94, 0xdb, 0xb3, 0xa8, 0x4f, 0x95, - 0xb7, 0x7d, 0x46, 0xc3, 0x40, 0x34, 0xd7, 0x91, 0x5c, 0xf2, 0x0e, 0x2c, 0x7a, 0x61, 0xe8, 0xf6, - 0x04, 0xdd, 0x95, 0x80, 0xb9, 0xe9, 0x80, 0x05, 0x2f, 0x0c, 0xf3, 0x2f, 0x4e, 0xde, 0x87, 0xba, - 0x9f, 0x44, 0x7a, 0x1a, 0xc0, 0x22, 0xd6, 0xdc, 0xbc, 0x2e, 0x41, 0x3b, 0x05, 0xe3, 0x30, 0x09, - 0xb4, 0x6b, 0x4c, 0x79, 0x72, 0x00, 0x37, 0x86, 0x03, 0x9d, 0x1e, 0x19, 0x35, 0x1c, 0x55, 0x45, - 0xf3, 0x37, 0x55, 0xaf, 0xa4, 0xbb, 0xb6, 0x2f, 0x33, 0xca, 0xbb, 0x21, 0xf3, 0xa9, 0xb3, 0xac, - 0x61, 0x3b, 0x19, 0xd5, 0x5e, 0x6c, 0xfd, 0x41, 0x09, 0xea, 0x46, 0xf0, 0x90, 0x37, 0x61, 0x45, - 0x46, 0xd9, 0x99, 0x17, 0x07, 0x21, 0x75, 0x93, 0x5e, 0x8f, 0xd3, 0x8c, 0xdb, 0xa5, 0xb5, 0x99, - 0xf5, 0x05, 0x87, 0x20, 0xef, 0x31, 0xb2, 0x8e, 0x24, 0x47, 0x44, 0xd8, 0x39, 0xa5, 0x03, 0x37, - 0x49, 0x45, 0xfd, 0x12, 0x73, 0x4d, 0xd5, 0xa9, 0x09, 0xca, 0x91, 0x20, 0x88, 0xc9, 0x05, 0xdd, - 0x9a, 0xd2, 0x58, 0x0d, 0xd0, 0xb8, 0xdb, 0x73, 0x7e, 0xeb, 0x5d, 0x58, 0x9a, 0x68, 0x36, 0xf9, - 0x0a, 0x2c, 0x98, 0x31, 0x21, 0x9b, 0xd2, 0x70, 0x1a, 0x46, 0x3c, 0xf0, 0xd6, 0xaf, 0x4b, 0x60, - 0x8d, 0x57, 0xf4, 0xe9, 0xd1, 0x54, 0x9a, 0x1e, 0x4d, 0x6f, 0x42, 0xdd, 0x1c, 0xc9, 0xf2, 0xf4, - 0x91, 0x84, 0x5e, 0x31, 0x8c, 0x2d, 0x8c, 0xea, 0x99, 0xab, 0xa2, 0x1a, 0xe3, 0x79, 0x17, 0xee, - 0x25, 0x29, 0xeb, 0xb3, 0xd8, 0x0b, 0x71, 0xac, 0x06, 0x69, 0x90, 0xf8, 0x43, 0x9a, 0x1a, 0xed, - 0xa9, 0x60, 0x7b, 0x6e, 0x6b, 0xb1, 0x9d, 0x8c, 0x1e, 0x2b, 0xa1, 0x7c, 0x8c, 0x7e, 0x30, 0x03, - 0x8d, 0xad, 0x4e, 0x07, 0xcb, 0x40, 0x3b, 0xee, 0x25, 0xe4, 0x1d, 0x00, 0xac, 0x1f, 0xd8, 0xd8, - 0xd1, 0xc4, 0xd2, 0x72, 0x46, 0x62, 0xd5, 0x3e, 0xd3, 0x04, 0xd2, 0x86, 0xc5, 0x80, 0xf1, 0xcc, - 0x8b, 0x7d, 0x2a, 0xac, 0xa7, 0xcc, 0xc7, 0x01, 0x6b, 0xea, 0x3c, 0xff, 0x98, 0xfa, 0x59, 0x92, - 0xee, 0x2a, 0x91, 0x43, 0x94, 0x50, 0x5a, 0x9a, 0xc1, 0x08, 0x95, 0xdc, 0x82, 0xd9, 0x2c, 0x19, - 0xb8, 0xe7, 0xe8, 0x81, 0x05, 0x25, 0x24, 0xe6, 0xe7, 0x27, 0xe4, 0x55, 0x11, 0xe0, 0xe1, 0x30, - 0x8a, 0xdd, 0xd8, 0x8b, 0x28, 0x26, 0x5b, 0x4d, 0x09, 0x80, 0x64, 0x74, 0xbc, 0x88, 0x92, 0x97, - 0xa1, 0xa6, 0xc4, 0x58, 0x80, 0x2b, 0x83, 0x19, 0x25, 0x54, 0x95, 0x64, 0x9c, 0x40, 0xeb, 0x29, - 0xed, 0xb9, 0x4f, 0xa9, 0xef, 0xf6, 0x1e, 0x6e, 0xe2, 0x82, 0xa0, 0xe1, 0xd4, 0x52, 0xda, 0xfb, - 0x98, 0xfa, 0xfb, 0x0f, 0x37, 0xc9, 0x3d, 0xa8, 0xca, 0x68, 0x65, 0x01, 0xce, 0xee, 0x5a, 0xc3, - 0x3c, 0x52, 0xdb, 0xa2, 0x38, 0x37, 0x22, 0xef, 0xc2, 0xd5, 0x6d, 0xc7, 0x39, 0xba, 0xa4, 0xb3, - 0x2a, 0xf2, 0x2e, 0x74, 0x57, 0xc9, 0x06, 0x34, 0xcf, 0x62, 0xfe, 0xcc, 0xa5, 0x3d, 0x97, 0x53, - 0x2f, 0xf5, 0xcf, 0xb0, 0x98, 0xeb, 0x7e, 0x35, 0x04, 0x6f, 0xaf, 0xd7, 0x45, 0xce, 0x47, 0x95, - 0xea, 0xbc, 0x55, 0x6d, 0xfd, 0xba, 0x0c, 0x8d, 0xfd, 0x93, 0xee, 0x0b, 0x8d, 0x8a, 0x96, 0x9b, - 0x3e, 0x2a, 0x66, 0x2f, 0xca, 0xd3, 0x7a, 0xb1, 0x01, 0xf3, 0xd2, 0x25, 0xba, 0xc6, 0x59, 0xba, - 0x5a, 0xa0, 0x9f, 0xe2, 0x5e, 0xe2, 0x68, 0x01, 0xf2, 0x32, 0x34, 0x0c, 0xe7, 0x73, 0x8c, 0xaf, - 0x9a, 0x53, 0x2f, 0xfc, 0xce, 0xc9, 0x57, 0xf2, 0x86, 0xd2, 0x8b, 0x0c, 0x3d, 0x5f, 0x1b, 0x6d, - 0x14, 0xbd, 0xc8, 0xc8, 0x1b, 0xb0, 0xa8, 0x84, 0x92, 0x73, 0x1a, 0xb3, 0xcf, 0x69, 0x8a, 0xee, - 0xd7, 0x92, 0x4d, 0x29, 0xa9, 0x79, 0x64, 0x59, 0x87, 0x03, 0xe0, 0x14, 0x23, 0x03, 0xe1, 0x5d, - 0x6d, 0xa8, 0x37, 0x8c, 0x7d, 0x74, 0x68, 0x73, 0x73, 0x59, 0x2d, 0x14, 0x7c, 0x2f, 0xf4, 0xd2, - 0xfd, 0x61, 0xec, 0x77, 0x59, 0x7f, 0xc4, 0xba, 0xa0, 0xb5, 0xbe, 0x3f, 0x0b, 0xb5, 0x62, 0xa9, - 0x71, 0x0f, 0xaa, 0x72, 0xb1, 0xc2, 0x02, 0xf4, 0x6b, 0xee, 0x20, 0xa4, 0x8e, 0x3a, 0xa8, 0xfc, - 0x45, 0x0e, 0xb2, 0xa1, 0x12, 0x50, 0xee, 0x63, 0xdc, 0x56, 0x75, 0xdc, 0x0a, 0x0a, 0xf9, 0x1a, - 0x90, 0x41, 0xca, 0x22, 0x2f, 0xbd, 0x74, 0xf3, 0xc0, 0x94, 0x0e, 0x9c, 0x71, 0x2c, 0xc5, 0x51, - 0x1a, 0x03, 0x4e, 0x3e, 0x00, 0x2b, 0xa6, 0x17, 0x99, 0x9b, 0x52, 0x2f, 0x70, 0x69, 0xdc, 0x67, - 0x31, 0x45, 0x5f, 0x36, 0xb5, 0xf1, 0x3d, 0xa4, 0x19, 0x43, 0xde, 0x14, 0xf2, 0x0e, 0xf5, 0x02, - 0xc9, 0x21, 0x5f, 0x83, 0xb9, 0x54, 0x94, 0x0b, 0x3d, 0x71, 0xa8, 0xc2, 0xf8, 0x84, 0x5e, 0x3a, - 0x82, 0xac, 0x50, 0x4a, 0x86, 0xbc, 0x07, 0xb7, 0x74, 0xeb, 0x06, 0x29, 0xed, 0xb1, 0x0b, 0xb3, - 0x91, 0xf3, 0xd8, 0xc8, 0x1b, 0x4a, 0xe0, 0x18, 0xf9, 0x45, 0x53, 0x47, 0x4b, 0x74, 0x75, 0xbc, - 0x44, 0xaf, 0x41, 0x83, 0x71, 0xb7, 0x27, 0x96, 0x25, 0xb8, 0x1a, 0xac, 0xa1, 0x00, 0x30, 0xbe, - 0xef, 0xf1, 0x0c, 0x07, 0xe0, 0x10, 0xee, 0x0c, 0x86, 0xfc, 0x8c, 0x06, 0x6e, 0x90, 0x3c, 0x8b, - 0xdd, 0x1e, 0x0b, 0x33, 0x8a, 0xab, 0x85, 0x00, 0x27, 0x57, 0x6e, 0xc3, 0xc4, 0xd4, 0xbb, 0x2a, - 0x01, 0xbb, 0xc9, 0xb3, 0x78, 0x1f, 0xc5, 0x77, 0x72, 0x69, 0xb2, 0x03, 0xcb, 0xe9, 0x30, 0xce, - 0x58, 0x44, 0xb5, 0xaa, 0x90, 0xf1, 0xcc, 0xae, 0xa3, 0x12, 0x15, 0x20, 0x8e, 0x14, 0x90, 0x58, - 0x67, 0x29, 0x35, 0x3f, 0x0f, 0x18, 0x17, 0x01, 0x6a, 0x89, 0xd4, 0x7e, 0xe6, 0xb1, 0xcc, 0x45, - 0x55, 0x11, 0xc7, 0xd5, 0xf3, 0xac, 0xf2, 0xdb, 0x42, 0xe4, 0x5d, 0x7c, 0xe2, 0xb1, 0xec, 0x84, - 0x45, 0xf4, 0x90, 0x93, 0x07, 0x50, 0xf3, 0xe2, 0x58, 0xad, 0xbb, 0xe4, 0x5a, 0x79, 0xac, 0x64, - 0x62, 0x98, 0x54, 0xbd, 0x38, 0xc6, 0xaf, 0xd6, 0x8f, 0x2b, 0x40, 0x26, 0x97, 0xc2, 0xff, 0x3f, - 0x63, 0xf1, 0xb9, 0xb1, 0x31, 0xfb, 0xdc, 0xd8, 0xf8, 0x0a, 0x14, 0x8b, 0x24, 0x14, 0x9f, 0x43, - 0xf1, 0x46, 0x4e, 0x14, 0x42, 0xe3, 0x11, 0x32, 0xff, 0xe5, 0x23, 0xa4, 0xfa, 0xdb, 0x88, 0x90, - 0xda, 0xff, 0x39, 0x42, 0xe0, 0x05, 0x23, 0xa4, 0xfe, 0x02, 0x11, 0xf2, 0x3f, 0xb3, 0x50, 0x11, - 0xdb, 0x41, 0xf2, 0x16, 0xd4, 0xc4, 0x86, 0xd0, 0x2c, 0xfc, 0xcd, 0x62, 0xb7, 0x68, 0x54, 0x80, - 0xea, 0xa7, 0xea, 0x9b, 0x7c, 0x0b, 0x9a, 0x08, 0x11, 0xbb, 0x45, 0x89, 0x2b, 0x9b, 0x13, 0x86, - 0xc0, 0x8d, 0xed, 0xea, 0x1b, 0x9f, 0x1a, 0xb4, 0x2f, 0xb3, 0xac, 0x12, 0x13, 0x2d, 0x8b, 0x63, - 0x9a, 0xe2, 0x16, 0xa0, 0x62, 0x4e, 0xb4, 0x48, 0x16, 0xfb, 0x80, 0x37, 0xa1, 0x19, 0xd2, 0x5e, - 0xe6, 0x62, 0x9b, 0x70, 0x31, 0x3d, 0x3b, 0x31, 0x5e, 0x0d, 0x21, 0x21, 0x1a, 0x86, 0x6b, 0xe9, - 0x4d, 0x58, 0x4c, 0x59, 0xff, 0xcc, 0x84, 0xcc, 0x4d, 0xae, 0xbf, 0x51, 0x24, 0xc7, 0xbc, 0x09, - 0xf5, 0x41, 0x9a, 0x9c, 0x52, 0xb5, 0xc8, 0x9a, 0xbf, 0x62, 0x91, 0x85, 0x32, 0x72, 0x91, 0xf5, - 0x26, 0xd4, 0x4f, 0x87, 0x2c, 0x5f, 0x96, 0x55, 0xaf, 0x40, 0xa0, 0x8c, 0x44, 0x3c, 0x84, 0x45, - 0xec, 0x89, 0x11, 0x7a, 0xb5, 0x89, 0x76, 0x61, 0x67, 0x8d, 0x70, 0xfb, 0x3a, 0x58, 0xb2, 0x33, - 0xcf, 0x2d, 0x69, 0xb2, 0xc3, 0xa3, 0xb0, 0x24, 0x3b, 0x1b, 0x8d, 0xf3, 0xfa, 0x24, 0x0c, 0x65, - 0x0c, 0xd8, 0x63, 0xb8, 0x2d, 0x61, 0xf4, 0x33, 0x03, 0xe9, 0xf6, 0xd2, 0x24, 0x72, 0x59, 0x6c, - 0x37, 0x26, 0x34, 0xdc, 0x44, 0xf1, 0xbd, 0xcf, 0x0a, 0x1d, 0xfb, 0x69, 0x12, 0xb5, 0x63, 0xf2, - 0x08, 0x6e, 0x32, 0xee, 0xc6, 0xc3, 0x30, 0x74, 0xbd, 0x67, 0x5e, 0x4a, 0x5d, 0x4e, 0x23, 0x86, - 0x23, 0x82, 0x25, 0xae, 0xea, 0x2c, 0x33, 0xde, 0x19, 0x86, 0xe1, 0x96, 0x60, 0x76, 0x69, 0xc4, - 0x30, 0x5c, 0xaf, 0x48, 0xae, 0xe6, 0x97, 0x49, 0xae, 0xd6, 0x7f, 0x95, 0x61, 0x61, 0x44, 0x88, - 0xac, 0x40, 0x59, 0xd5, 0x44, 0x9d, 0x60, 0x65, 0x16, 0x90, 0x47, 0x60, 0xf1, 0x64, 0x98, 0xfa, - 0xd4, 0xa5, 0x17, 0x03, 0x65, 0xa9, 0x3c, 0x39, 0x20, 0x52, 0x46, 0xfc, 0xc6, 0xd4, 0x7d, 0x04, - 0x56, 0xe6, 0xa5, 0x7d, 0x9a, 0x19, 0xa8, 0xc9, 0xed, 0x5d, 0x53, 0xca, 0xe4, 0xa8, 0x4d, 0x20, - 0xb9, 0xad, 0xe2, 0x5c, 0xc6, 0x5c, 0x7f, 0x5a, 0xda, 0x4e, 0x7e, 0x46, 0xb3, 0x09, 0x24, 0xb7, - 0x54, 0x60, 0xcc, 0x45, 0x91, 0xa5, 0xad, 0xe4, 0x98, 0xb7, 0x61, 0x3e, 0xed, 0xc9, 0xac, 0x9d, - 0xc3, 0xac, 0xbd, 0x39, 0xc5, 0x69, 0x46, 0xea, 0xce, 0xa5, 0x3d, 0x4c, 0x5a, 0x89, 0x8b, 0x92, - 0x80, 0xaa, 0x5d, 0xdf, 0x34, 0x9c, 0xb1, 0xef, 0x9b, 0x4b, 0x7b, 0xe2, 0xab, 0xf5, 0x83, 0x32, - 0xd4, 0xf2, 0xb3, 0xb8, 0x2f, 0x9e, 0x81, 0x7e, 0xab, 0xeb, 0x49, 0x3d, 0x45, 0x55, 0x26, 0xa6, - 0xa8, 0x1b, 0x30, 0x37, 0x8c, 0xd9, 0x67, 0x43, 0xb9, 0xec, 0xa9, 0x3a, 0xea, 0xeb, 0x8a, 0xa9, - 0x6b, 0xee, 0x8a, 0xa9, 0xeb, 0x5d, 0x68, 0xf6, 0x32, 0x2e, 0xab, 0xae, 0xcb, 0xe2, 0x5e, 0xa2, - 0x4e, 0xf5, 0xc6, 0x56, 0xce, 0xd8, 0xa8, 0x46, 0x2f, 0xe3, 0xf9, 0x57, 0xeb, 0x07, 0x25, 0xa8, - 0xe5, 0x87, 0x8e, 0x64, 0x03, 0xc0, 0xc8, 0xc2, 0xd2, 0x44, 0xac, 0x18, 0x5c, 0xf2, 0x08, 0x9a, - 0xe9, 0x20, 0x36, 0xb3, 0x56, 0x46, 0xa4, 0x3a, 0xb9, 0x71, 0x06, 0xb1, 0xaa, 0x5e, 0x83, 0xd8, - 0x48, 0xdb, 0xfc, 0xf4, 0x60, 0xe6, 0x39, 0xa7, 0x07, 0xad, 0xef, 0x97, 0xcc, 0x53, 0x39, 0xb2, - 0x06, 0xb3, 0x22, 0x82, 0xa7, 0xb5, 0x48, 0x32, 0xc8, 0x06, 0xd4, 0x44, 0x63, 0xa4, 0xd4, 0xd4, - 0x76, 0x54, 0x53, 0xf9, 0xe3, 0x45, 0x9b, 0xf0, 0xaf, 0x65, 0xa8, 0x1b, 0x87, 0xab, 0xe4, 0x55, - 0xa8, 0xf6, 0xd3, 0x64, 0x38, 0x70, 0x4f, 0x2f, 0xa7, 0x34, 0x63, 0x1e, 0x79, 0xdb, 0x97, 0x42, - 0xcc, 0xeb, 0xf7, 0xe5, 0x5a, 0x7d, 0x32, 0x43, 0xe7, 0xbd, 0x7e, 0x5f, 0x2c, 0xcd, 0xc9, 0x1a, - 0x54, 0xe5, 0x31, 0x02, 0x0d, 0x46, 0xd6, 0x2d, 0x39, 0x95, 0x3c, 0x80, 0x86, 0xe8, 0x51, 0x6e, - 0xb3, 0x32, 0xad, 0x53, 0x90, 0x0e, 0xe2, 0x0f, 0x95, 0x65, 0x05, 0xc8, 0xad, 0xcf, 0x5e, 0x05, - 0xd8, 0x52, 0x6d, 0xc8, 0xfd, 0x30, 0xf7, 0xbc, 0x83, 0x9c, 0xf7, 0xa0, 0x31, 0x48, 0x29, 0xaa, - 0x9d, 0xcc, 0xb9, 0x13, 0xb6, 0x1f, 0x7a, 0xfc, 0xec, 0x38, 0xa5, 0x5b, 0xfd, 0xbe, 0xc8, 0x32, - 0x31, 0xef, 0xe8, 0xdf, 0xad, 0x9f, 0x94, 0xa0, 0x72, 0x92, 0x0c, 0x3a, 0xe4, 0x75, 0xa8, 0xe2, - 0xaa, 0xb9, 0xf0, 0x9d, 0x3a, 0x05, 0xdc, 0xbe, 0x6c, 0x67, 0x34, 0x72, 0xe6, 0x91, 0xbb, 0x7d, - 0x49, 0x56, 0xf5, 0xa1, 0x74, 0xd9, 0x38, 0x5e, 0x54, 0xa7, 0xd1, 0x2f, 0x34, 0x6c, 0xc2, 0x0b, - 0xc5, 0x4a, 0x2c, 0x77, 0xdb, 0xa8, 0xb9, 0x7a, 0x2e, 0xb1, 0x7d, 0xd9, 0xfa, 0x97, 0x12, 0xcc, - 0xe2, 0xa9, 0x77, 0x61, 0xbc, 0xf4, 0x1c, 0xe3, 0xe5, 0x2f, 0x63, 0x7c, 0xe6, 0x0b, 0x8c, 0x93, - 0xb7, 0x61, 0x29, 0x4b, 0x87, 0xb1, 0xef, 0x65, 0x54, 0xcc, 0xfe, 0x18, 0xbf, 0xaa, 0xc9, 0x23, - 0x93, 0x9f, 0x16, 0x7a, 0x42, 0x2f, 0x05, 0xa1, 0xf5, 0x01, 0x54, 0x9e, 0xb0, 0x30, 0x24, 0x2f, - 0xc1, 0x9c, 0x9f, 0xc4, 0x71, 0x7b, 0x77, 0xa4, 0xcd, 0x8a, 0x26, 0x3a, 0x24, 0xd7, 0x61, 0x65, - 0x23, 0xc2, 0x24, 0xa9, 0xb5, 0x05, 0x2b, 0xd3, 0xce, 0x23, 0xc9, 0x57, 0x61, 0xa1, 0x38, 0xbf, - 0xd4, 0xc5, 0x51, 0x2b, 0x6e, 0x14, 0xac, 0x76, 0xd0, 0xfa, 0xf9, 0x0c, 0xd8, 0xda, 0x03, 0xf2, - 0x2f, 0x4b, 0xe2, 0xee, 0x30, 0x12, 0xa5, 0x89, 0x6c, 0xc0, 0x12, 0xce, 0x8d, 0x83, 0x34, 0xf1, - 0x29, 0xe7, 0x34, 0x70, 0xb1, 0xa0, 0x94, 0xd6, 0x2b, 0xce, 0xa2, 0x60, 0x1c, 0x6b, 0x7a, 0x47, - 0x24, 0xef, 0x52, 0x3c, 0x8c, 0x84, 0x68, 0x30, 0xf4, 0x69, 0xe0, 0xa6, 0xc9, 0x33, 0x2e, 0x23, - 0xc0, 0x59, 0x8c, 0x87, 0xd1, 0xb1, 0xa2, 0x3b, 0xc9, 0x33, 0x4e, 0x5e, 0x85, 0xa6, 0x90, 0x65, - 0x19, 0x4d, 0x3d, 0x59, 0x75, 0x66, 0x50, 0x70, 0x21, 0x1e, 0x46, 0xed, 0x9c, 0x38, 0x7e, 0xab, - 0x50, 0x99, 0xb8, 0x55, 0x58, 0x83, 0xba, 0x9f, 0xc4, 0xfe, 0x30, 0x4d, 0x69, 0xec, 0x5f, 0x62, - 0xf1, 0xad, 0x38, 0x26, 0x89, 0x1c, 0xc0, 0x4a, 0xc6, 0x7a, 0x22, 0xbc, 0x71, 0xb9, 0x2e, 0x0a, - 0x1d, 0x6e, 0xf5, 0xe7, 0xcc, 0x63, 0x7e, 0x95, 0x00, 0x62, 0x4a, 0xd9, 0x91, 0xfc, 0xc7, 0xd7, - 0x1c, 0xa2, 0x70, 0x06, 0x55, 0xb4, 0x3b, 0x1d, 0x0a, 0x1d, 0x7c, 0x18, 0x0d, 0x32, 0x7d, 0x64, - 0xd9, 0x70, 0x16, 0xd2, 0xe1, 0x4e, 0x41, 0x24, 0x1f, 0x15, 0x46, 0x71, 0xc5, 0xcd, 0xa5, 0x3b, - 0xd5, 0xad, 0xcb, 0xa8, 0x51, 0xb1, 0xea, 0x56, 0xee, 0xce, 0x4d, 0x1a, 0xb4, 0xed, 0x06, 0xc0, - 0x2e, 0xcd, 0x3c, 0x16, 0x62, 0xa1, 0xef, 0xc3, 0x8a, 0xc2, 0xe5, 0x63, 0x85, 0x07, 0x2e, 0x47, - 0xb0, 0x4c, 0x35, 0x41, 0x99, 0x63, 0x54, 0x57, 0xda, 0xbb, 0xa3, 0x71, 0x3e, 0x3e, 0xca, 0x0e, - 0xa1, 0xa3, 0x14, 0x46, 0x79, 0xeb, 0xf7, 0x61, 0x55, 0x19, 0x72, 0x68, 0x9f, 0x25, 0x71, 0x67, - 0x18, 0x1d, 0xf5, 0xda, 0xb1, 0x3a, 0x22, 0xba, 0x07, 0x75, 0xa6, 0x7e, 0xeb, 0xe8, 0xaa, 0x39, - 0xa0, 0x49, 0xed, 0x40, 0x6c, 0xb3, 0x53, 0xc4, 0xb9, 0xf1, 0x30, 0x52, 0x51, 0x50, 0x4b, 0xb5, - 0xa6, 0xd6, 0x7f, 0xdf, 0x01, 0x32, 0xe9, 0x74, 0xf2, 0x08, 0x56, 0x82, 0xa8, 0xc7, 0xd4, 0x55, - 0x4c, 0x4c, 0x03, 0x77, 0xe0, 0xf9, 0xe7, 0x2a, 0xe2, 0xb6, 0xcb, 0x76, 0xc9, 0x21, 0x92, 0xdf, - 0x95, 0xec, 0x63, 0xc1, 0x35, 0x51, 0xe7, 0x6c, 0x30, 0xc8, 0x51, 0xe5, 0x09, 0x94, 0x64, 0x4b, - 0xd4, 0x3b, 0x60, 0x2b, 0x54, 0xe0, 0x65, 0x5e, 0x6e, 0x10, 0xa3, 0x56, 0x06, 0xe3, 0x75, 0xc9, - 0xdf, 0xf5, 0x32, 0x4f, 0xd9, 0xc3, 0xd8, 0x1d, 0x07, 0x2a, 0x9b, 0x08, 0xac, 0x4c, 0x00, 0x25, - 0x17, 0x81, 0xef, 0xc2, 0xcd, 0x2c, 0xc9, 0xbc, 0xd0, 0x55, 0xf0, 0x94, 0xbb, 0x61, 0xe2, 0x05, - 0x62, 0x2b, 0x36, 0x9b, 0x37, 0x75, 0x19, 0x45, 0x76, 0x51, 0xc2, 0xe1, 0x07, 0x89, 0x17, 0xe0, - 0x76, 0x6c, 0x65, 0x14, 0x49, 0x25, 0x6c, 0x0e, 0xcd, 0x2d, 0x99, 0x10, 0x8a, 0x80, 0xaf, 0x6b, - 0x53, 0x72, 0xc7, 0xc0, 0x63, 0x6f, 0xc0, 0xcf, 0x92, 0x4c, 0x60, 0xe6, 0x11, 0x23, 0xf5, 0x6d, - 0x0b, 0x6e, 0x57, 0x31, 0x0f, 0x71, 0x03, 0x1c, 0x26, 0xbe, 0x17, 0xba, 0x72, 0xa4, 0x38, 0x06, - 0x6c, 0xc5, 0x69, 0x20, 0x51, 0xc6, 0x01, 0xe6, 0x6e, 0x4a, 0xa3, 0x24, 0xa3, 0xb9, 0x54, 0x4d, - 0xe6, 0xae, 0xa4, 0x6a, 0xb1, 0xd7, 0x60, 0x71, 0xc8, 0x69, 0x2a, 0xdb, 0x7a, 0x7a, 0x99, 0x51, - 0xb9, 0xe1, 0xac, 0x38, 0x0b, 0x82, 0x2c, 0xda, 0x89, 0x07, 0xdb, 0xe4, 0x2d, 0xb8, 0x2e, 0x9b, - 0x1a, 0x52, 0x2f, 0x8d, 0x35, 0x20, 0xe2, 0xb8, 0xed, 0xac, 0x38, 0x04, 0x99, 0x07, 0x92, 0xa7, - 0x7a, 0xf7, 0xbb, 0x70, 0x3b, 0x60, 0x5c, 0xcc, 0x65, 0x28, 0xeb, 0x7b, 0xfe, 0x19, 0x75, 0xcf, - 0x58, 0xa6, 0xcc, 0x34, 0x10, 0x78, 0x53, 0x8a, 0x08, 0xc8, 0x8e, 0x10, 0x78, 0xcc, 0x32, 0x69, - 0xf0, 0x5b, 0xf0, 0xd2, 0x24, 0x3a, 0x62, 0x9c, 0x2b, 0xf8, 0x02, 0xc2, 0xed, 0x31, 0xf8, 0x21, - 0xe3, 0x5c, 0xe2, 0xdf, 0x06, 0x7b, 0x7c, 0x18, 0xfd, 0x33, 0xea, 0x9f, 0x8b, 0x36, 0x37, 0x0d, - 0xe7, 0xea, 0x31, 0xdc, 0x11, 0xcc, 0x43, 0x2e, 0xd6, 0x82, 0x3c, 0xf3, 0xf4, 0xe8, 0x69, 0xdf, - 0x2d, 0x22, 0xc2, 0x42, 0x8e, 0x30, 0xa6, 0xdd, 0xb7, 0x0a, 0x55, 0x4e, 0xfb, 0x11, 0x8d, 0x33, - 0x8e, 0x97, 0x86, 0x15, 0x27, 0xff, 0x96, 0xc9, 0xe5, 0xe9, 0x3b, 0x80, 0x25, 0x9d, 0x5c, 0x9e, - 0xbc, 0x00, 0x10, 0xec, 0x80, 0x86, 0x99, 0x27, 0x43, 0x92, 0x48, 0x36, 0x52, 0x30, 0x0c, 0xef, - 0x41, 0x5d, 0xb2, 0x65, 0x77, 0x97, 0x91, 0x2f, 0x11, 0xb2, 0x83, 0xaf, 0xc1, 0x62, 0xf4, 0xd4, - 0xf7, 0x5d, 0x16, 0x0f, 0x86, 0x99, 0x54, 0xb2, 0x22, 0x47, 0x4e, 0x90, 0xdb, 0x82, 0x8a, 0x8a, - 0xd6, 0xc1, 0x32, 0xe4, 0xa4, 0xb6, 0xeb, 0x28, 0xd8, 0xcc, 0x05, 0xa5, 0x46, 0x2d, 0x99, 0x0c, - 0xb3, 0x5c, 0xe5, 0x8d, 0x42, 0xf2, 0x08, 0xc9, 0xa8, 0x73, 0x0d, 0x1a, 0x61, 0x84, 0x39, 0x25, - 0xa5, 0x6e, 0xca, 0xd6, 0x85, 0x91, 0x48, 0x24, 0x94, 0xf8, 0x26, 0xac, 0x9a, 0xa1, 0x8d, 0xc6, - 0xd5, 0x15, 0x50, 0xc4, 0xf1, 0x26, 0xb0, 0xe2, 0xdc, 0x2c, 0xa2, 0xbb, 0x5d, 0xf0, 0x0f, 0x8d, - 0x60, 0x93, 0xe0, 0x53, 0x96, 0x45, 0xde, 0x40, 0xe0, 0x6e, 0x19, 0xc1, 0x86, 0xb8, 0x6d, 0x64, - 0x1d, 0x72, 0xf2, 0x06, 0x2c, 0x47, 0x2c, 0x76, 0x65, 0x5e, 0x14, 0x86, 0x56, 0xe5, 0xb8, 0x45, - 0x2c, 0x3e, 0x10, 0x9c, 0xae, 0xb6, 0x20, 0xc4, 0xbd, 0x8b, 0x09, 0xf1, 0xdb, 0x4a, 0xdc, 0xbb, - 0x18, 0x15, 0x7f, 0x00, 0x2b, 0x42, 0xbb, 0x4a, 0xa8, 0x42, 0xfe, 0x25, 0x99, 0xd9, 0x11, 0x8b, - 0x1d, 0x64, 0x8d, 0x00, 0xbc, 0x8b, 0x49, 0xc0, 0x1d, 0x05, 0xf0, 0x2e, 0xc6, 0x00, 0xc7, 0xb0, - 0xac, 0x62, 0xcd, 0x4d, 0x7a, 0xae, 0x2e, 0xd1, 0xf6, 0x5d, 0x9c, 0x19, 0xd6, 0x46, 0xa6, 0xa2, - 0x29, 0x95, 0xde, 0x59, 0x52, 0x60, 0xa3, 0xf8, 0x17, 0x05, 0x10, 0x07, 0x75, 0xa4, 0x72, 0xde, - 0x33, 0x0b, 0xe0, 0xe1, 0x53, 0xdf, 0x9f, 0x5e, 0x39, 0x25, 0xd0, 0xac, 0x9c, 0x6b, 0x13, 0x40, - 0xa3, 0x72, 0x7e, 0x00, 0x77, 0x14, 0x30, 0x8c, 0xf4, 0x3e, 0x7d, 0xc4, 0xec, 0xcb, 0x88, 0xbe, - 0x25, 0x85, 0x0e, 0x22, 0xb9, 0x7b, 0x34, 0x4d, 0x4f, 0xd5, 0x60, 0xda, 0x6f, 0x4d, 0xd5, 0x60, - 0xb4, 0xe1, 0xdb, 0x70, 0x47, 0x86, 0xce, 0x53, 0xbc, 0x18, 0x72, 0x59, 0x70, 0x21, 0xcb, 0x37, - 0x9e, 0x55, 0xf0, 0x87, 0x76, 0x20, 0xeb, 0x06, 0x0a, 0xc9, 0xcb, 0xa3, 0x76, 0x70, 0x21, 0x0a, - 0xf8, 0x7e, 0x9a, 0x44, 0xdd, 0x87, 0x64, 0x07, 0xee, 0x3d, 0x47, 0x41, 0xc0, 0xf8, 0xb9, 0x4d, - 0x51, 0xc5, 0xea, 0x74, 0x15, 0xbb, 0x8c, 0x9f, 0x93, 0x3d, 0x58, 0x7b, 0x8e, 0x12, 0xac, 0x65, - 0x76, 0x0f, 0xb5, 0xdc, 0x9e, 0xae, 0x05, 0x8b, 0xd9, 0xd5, 0x9d, 0xd1, 0x67, 0x83, 0xfd, 0xab, - 0x3a, 0xa3, 0x0e, 0x08, 0xa7, 0x75, 0x46, 0x5e, 0x16, 0xe5, 0x2a, 0xce, 0xa6, 0x75, 0x46, 0x5e, - 0x1b, 0x29, 0x25, 0x47, 0xf0, 0xea, 0x55, 0x4a, 0x9e, 0x32, 0xce, 0x32, 0xb1, 0xdc, 0x4c, 0x02, - 0xca, 0x6d, 0x86, 0xaa, 0xd6, 0xa6, 0xa9, 0xfa, 0x58, 0x0a, 0x76, 0x84, 0x1c, 0xe9, 0xc2, 0xeb, - 0x57, 0x29, 0x0c, 0x18, 0xf7, 0xbd, 0x34, 0xc8, 0x55, 0x7e, 0x8a, 0x2a, 0x5b, 0xd3, 0x54, 0xee, - 0x6a, 0x51, 0xa9, 0x74, 0x1f, 0x5e, 0x9e, 0x50, 0x8a, 0xe5, 0xf7, 0x29, 0xf5, 0xf3, 0xce, 0x9e, - 0x4f, 0xf3, 0xb9, 0xa8, 0xe7, 0x1f, 0x53, 0x5f, 0xf5, 0xf6, 0x00, 0x5e, 0x99, 0xae, 0x07, 0x4f, - 0xb4, 0x78, 0xae, 0x2a, 0x44, 0x55, 0x77, 0x27, 0x55, 0x1d, 0xa1, 0x9c, 0xd2, 0xf6, 0x3e, 0xdc, - 0xee, 0x65, 0xdc, 0x8d, 0xf5, 0x51, 0x59, 0x44, 0xa3, 0x24, 0xbd, 0x74, 0xe3, 0x04, 0x0f, 0x36, - 0xec, 0x1f, 0x96, 0xf0, 0xee, 0xe9, 0x66, 0x2f, 0xe3, 0x1d, 0x79, 0x40, 0x26, 0x05, 0x3a, 0x92, - 0x2f, 0x0a, 0xa1, 0x01, 0xcf, 0x58, 0x7c, 0xe9, 0x4a, 0xe0, 0x9f, 0x48, 0xe0, 0x92, 0x06, 0x9e, - 0xb0, 0xf8, 0x12, 0xcf, 0x5b, 0xc4, 0x9a, 0x62, 0x1c, 0xa2, 0xad, 0xfd, 0x48, 0x82, 0x96, 0x4d, - 0x90, 0xb6, 0xf4, 0x00, 0x56, 0x0c, 0x58, 0x10, 0xf5, 0x94, 0xa1, 0x3f, 0x95, 0x18, 0x4b, 0x63, - 0x76, 0xa3, 0x9e, 0xb4, 0xf3, 0x10, 0x6e, 0x8c, 0x01, 0xb4, 0x99, 0x3f, 0x93, 0x10, 0x62, 0x40, - 0xb4, 0x95, 0x1d, 0xb8, 0x2b, 0x40, 0x22, 0x95, 0xaf, 0xf0, 0xc8, 0x9f, 0xcb, 0x6d, 0xcb, 0x6a, - 0x2f, 0xe3, 0x22, 0x9f, 0xa7, 0x39, 0xe5, 0x1d, 0xb0, 0x47, 0x95, 0x18, 0x7e, 0xf9, 0x0b, 0x09, - 0x5f, 0x31, 0xe0, 0x85, 0x6b, 0xbe, 0x09, 0xab, 0x53, 0x80, 0xda, 0xf2, 0x5f, 0x4a, 0xe8, 0x8d, - 0x31, 0xa8, 0xb6, 0xaa, 0xfc, 0x5a, 0x80, 0x0b, 0x1f, 0xfd, 0x95, 0x44, 0x2e, 0x1b, 0xc8, 0xdc, - 0x4d, 0xef, 0xc1, 0xad, 0x49, 0x98, 0x36, 0xf9, 0x63, 0x09, 0xbc, 0x3e, 0x0a, 0x1c, 0x1b, 0xfc, - 0x22, 0xe9, 0x31, 0x2c, 0x23, 0x6e, 0xff, 0xb5, 0x84, 0x89, 0xc1, 0xd7, 0xe9, 0x2e, 0x58, 0x72, - 0x41, 0x39, 0x02, 0x31, 0xca, 0xcd, 0xdf, 0x14, 0x83, 0x3f, 0x51, 0x67, 0x3e, 0x80, 0x3b, 0x53, - 0x60, 0xf2, 0x24, 0x4c, 0x14, 0x5a, 0xfb, 0x27, 0x12, 0x6c, 0x8f, 0x81, 0x51, 0x62, 0x9f, 0x85, - 0x54, 0xac, 0xf5, 0x26, 0x35, 0x70, 0xf5, 0x5e, 0xeb, 0xa1, 0xfd, 0xb7, 0x12, 0x7f, 0x63, 0x14, - 0xdf, 0x45, 0x7e, 0xf7, 0xe1, 0x74, 0xfb, 0x0a, 0x8d, 0x15, 0xf7, 0xef, 0xa6, 0xda, 0x97, 0x78, - 0x2c, 0xb8, 0xeb, 0x60, 0x69, 0x0d, 0xaa, 0x92, 0xc4, 0xf6, 0xdf, 0x4b, 0xd0, 0x82, 0x04, 0xc9, - 0xa2, 0xd1, 0x31, 0x5d, 0xa4, 0x2b, 0xa1, 0xf6, 0xeb, 0x3f, 0x14, 0xe3, 0x58, 0xd4, 0x40, 0xe5, - 0x59, 0x15, 0xee, 0x02, 0x16, 0x44, 0x1a, 0x89, 0x53, 0xd2, 0x3f, 0x4a, 0x14, 0x91, 0xa8, 0xdd, - 0x48, 0xe2, 0x70, 0x32, 0x7a, 0x1f, 0x5e, 0x32, 0x40, 0xd2, 0x0e, 0xd6, 0x12, 0x41, 0x8d, 0xb8, - 0xfd, 0xd3, 0x22, 0xe4, 0x10, 0x8a, 0xc6, 0x44, 0x0d, 0xd9, 0xcf, 0xb8, 0xac, 0xde, 0xd3, 0xe1, - 0xaa, 0x14, 0x45, 0xdc, 0xfe, 0x99, 0xd4, 0x70, 0x6b, 0x42, 0x83, 0xac, 0x42, 0x87, 0x5c, 0x67, - 0x8b, 0x50, 0x82, 0xe1, 0x6e, 0x36, 0xfd, 0x9f, 0x8a, 0x6c, 0x69, 0x07, 0x17, 0x22, 0xda, 0x8d, - 0xc6, 0x6f, 0xc9, 0x5c, 0xcd, 0x81, 0x93, 0xcd, 0xff, 0xb9, 0x84, 0xdb, 0x05, 0x7c, 0xac, 0x03, - 0x1f, 0xc2, 0xcb, 0x57, 0xa9, 0x28, 0xba, 0xf0, 0x0b, 0xa9, 0xe5, 0xf6, 0x14, 0x2d, 0x79, 0x27, - 0xd4, 0xa0, 0x9d, 0xa6, 0xc3, 0x8c, 0x9a, 0x5a, 0x22, 0x6e, 0xff, 0x73, 0x31, 0x68, 0xdb, 0x82, - 0x9d, 0x83, 0x0f, 0xb9, 0x4e, 0x3e, 0x13, 0xa6, 0xba, 0x1f, 0x71, 0xfb, 0x97, 0x45, 0xf2, 0x15, - 0x40, 0xd9, 0xff, 0x43, 0xde, 0xfa, 0x69, 0x29, 0xdf, 0xfa, 0x1a, 0xdb, 0x7c, 0xf2, 0x0a, 0x34, - 0x23, 0x16, 0x9f, 0x74, 0x8f, 0xe4, 0x89, 0x41, 0x7e, 0xcc, 0xd2, 0x90, 0x54, 0x21, 0xda, 0xc1, - 0x60, 0x19, 0xb0, 0x01, 0x0d, 0x59, 0x4c, 0xdd, 0xcf, 0x86, 0x74, 0x48, 0x73, 0x69, 0xb9, 0xc5, - 0x5e, 0xd6, 0xdc, 0xef, 0x08, 0xa6, 0x02, 0xbd, 0x03, 0x76, 0x0e, 0x3a, 0x4d, 0xa9, 0x77, 0x4e, - 0xd3, 0x1c, 0xa6, 0x76, 0xba, 0x9a, 0xbf, 0x2d, 0xd9, 0x12, 0xd8, 0xfa, 0x1c, 0x2a, 0xdd, 0x24, - 0xcd, 0xc8, 0x6b, 0x30, 0x7f, 0x8a, 0xc7, 0x5e, 0x7c, 0xfa, 0xb9, 0x9f, 0x62, 0x92, 0x57, 0x60, - 0x81, 0x71, 0xbc, 0x27, 0xf6, 0x42, 0x01, 0x54, 0x2f, 0xa0, 0x46, 0x89, 0x2f, 0x78, 0x70, 0xfb, - 0x47, 0x65, 0xb0, 0xe4, 0xfb, 0xc8, 0xfd, 0xd4, 0x8b, 0xe8, 0x76, 0x32, 0x8c, 0x03, 0xf2, 0x00, - 0x2a, 0xc6, 0xbd, 0xe2, 0x75, 0xf3, 0x15, 0x25, 0x0a, 0x18, 0xf7, 0x0c, 0x28, 0x48, 0x5a, 0x50, - 0x1b, 0xc6, 0xa7, 0x82, 0x45, 0x83, 0x91, 0xf3, 0xb3, 0x82, 0x4c, 0x6e, 0xc0, 0x9c, 0x7c, 0xd9, - 0xa5, 0x9c, 0xa1, 0xbe, 0xc8, 0x3a, 0xd4, 0x7c, 0x2f, 0xf4, 0xf7, 0x87, 0xb1, 0xcf, 0xa7, 0x9c, - 0xe6, 0x15, 0x4c, 0xf2, 0x3b, 0x50, 0xef, 0x89, 0x46, 0xba, 0xf8, 0x3c, 0x41, 0xbd, 0xec, 0x1d, - 0x39, 0x70, 0x47, 0x36, 0xbe, 0x64, 0x20, 0xdf, 0x80, 0x05, 0x3f, 0x1a, 0xc8, 0xb3, 0x03, 0xe3, - 0xda, 0x44, 0x3d, 0xc5, 0x45, 0x99, 0x9d, 0x68, 0xb0, 0xeb, 0x65, 0x1e, 0xde, 0xe7, 0xd5, 0xfd, - 0xe2, 0xa3, 0xf5, 0xc3, 0x12, 0xd4, 0x0d, 0xa7, 0x3c, 0xcf, 0x1f, 0x28, 0x30, 0xe1, 0x8f, 0xaf, - 0xc1, 0x2c, 0xcf, 0x3c, 0x35, 0x32, 0xf9, 0xfb, 0xdf, 0x71, 0x3f, 0x3b, 0x52, 0x88, 0xac, 0xc3, - 0x0c, 0x8d, 0xf5, 0x38, 0x5d, 0x25, 0x2b, 0x44, 0x5a, 0xbf, 0x2e, 0xc1, 0x9c, 0xe4, 0x90, 0xd7, - 0xa1, 0xd6, 0x1b, 0xc6, 0xbe, 0x8b, 0x37, 0x25, 0x93, 0x47, 0xec, 0x55, 0xc1, 0xdc, 0xa5, 0xdc, - 0x9f, 0x38, 0x66, 0x2d, 0x7f, 0xd1, 0x31, 0xab, 0x79, 0xfe, 0x3c, 0xf3, 0xbc, 0xf3, 0xe7, 0xd7, - 0x61, 0x16, 0x1d, 0xae, 0xde, 0x36, 0x2e, 0x4d, 0xb4, 0xdc, 0x91, 0xfc, 0x22, 0x14, 0x67, 0x9f, - 0x17, 0x8a, 0xdf, 0x86, 0x06, 0x9e, 0xce, 0xb3, 0xb8, 0x2f, 0xba, 0x40, 0x1e, 0xc0, 0x42, 0x5f, - 0x7d, 0xcb, 0xa3, 0xde, 0xc9, 0x5e, 0x36, 0xfa, 0x06, 0xa0, 0xf5, 0x18, 0xea, 0x5a, 0x41, 0x97, - 0x66, 0xe4, 0x3d, 0x68, 0x8e, 0xe0, 0x75, 0x56, 0xa9, 0x6b, 0x1e, 0xd3, 0x96, 0xb3, 0x60, 0x2a, - 0xe2, 0xad, 0xef, 0x97, 0x60, 0x4e, 0x3e, 0xa6, 0x25, 0x6f, 0x1b, 0xad, 0xc8, 0x9f, 0x25, 0xe6, - 0x9d, 0x35, 0xec, 0x15, 0x8d, 0xe9, 0xd2, 0x8c, 0xbf, 0xe0, 0x19, 0xb8, 0x0d, 0xf3, 0x4f, 0x69, - 0x8a, 0x8f, 0x32, 0x65, 0x56, 0xe8, 0xcf, 0xd6, 0x1b, 0x50, 0x13, 0x6d, 0x91, 0x0f, 0x12, 0xbf, - 0xf0, 0x4a, 0xa7, 0xf5, 0xc7, 0x25, 0x98, 0x57, 0xcf, 0x7f, 0xc9, 0x7d, 0x80, 0x41, 0x9a, 0x7c, - 0x3a, 0xd2, 0xe9, 0xc5, 0x02, 0x22, 0x9f, 0x66, 0xd6, 0x84, 0x88, 0xbc, 0xe2, 0x79, 0x04, 0x37, - 0xfa, 0x34, 0xa6, 0xa9, 0x27, 0x76, 0x02, 0xea, 0xec, 0x40, 0xbe, 0xe4, 0x2a, 0xe3, 0x4b, 0xae, - 0x95, 0x9c, 0x2b, 0x4f, 0x10, 0xe4, 0x93, 0xae, 0x17, 0xab, 0x2f, 0xaf, 0x41, 0x73, 0xf4, 0x91, - 0x31, 0x59, 0xd1, 0xe7, 0xec, 0xf2, 0x34, 0x53, 0x7e, 0x6c, 0xfc, 0xe1, 0x8c, 0xfc, 0x7f, 0x03, - 0xbc, 0xb4, 0x5c, 0x82, 0x05, 0xf1, 0x37, 0x7f, 0x01, 0x63, 0x5d, 0xd3, 0xa4, 0xfc, 0x4a, 0xd2, - 0x2a, 0x69, 0x52, 0x7e, 0x1f, 0x67, 0x95, 0xc9, 0x32, 0x2c, 0x0a, 0x92, 0x71, 0x13, 0x65, 0xcd, - 0x90, 0x06, 0x54, 0x51, 0x5b, 0x32, 0xe8, 0x58, 0x15, 0xb2, 0x00, 0x35, 0xf1, 0x85, 0x97, 0x18, - 0xd6, 0x6c, 0xae, 0x04, 0xb7, 0xf1, 0x5b, 0xfd, 0xbe, 0x35, 0xa7, 0xe5, 0x3f, 0x4a, 0x58, 0x6c, - 0xcd, 0xeb, 0xaf, 0x27, 0x2c, 0x0c, 0xad, 0x2a, 0xb9, 0x01, 0x44, 0x7c, 0x8d, 0xbe, 0x36, 0xb6, - 0x6a, 0xc4, 0x86, 0x15, 0x93, 0xae, 0xdf, 0x83, 0x5a, 0x40, 0x08, 0x34, 0x05, 0xa7, 0xb8, 0x9f, - 0xb3, 0xea, 0x64, 0x15, 0x6e, 0x20, 0x6d, 0xe2, 0xa9, 0x8f, 0xd5, 0xd0, 0xf6, 0x44, 0x09, 0xb7, - 0x16, 0x48, 0x13, 0x40, 0x7c, 0xc9, 0x9c, 0xb2, 0x9a, 0xfa, 0x5b, 0x8e, 0xb4, 0xb5, 0x48, 0x16, - 0xa1, 0x5e, 0x7c, 0x6f, 0x5a, 0x96, 0x6e, 0xe0, 0xa8, 0xcf, 0xad, 0x25, 0xed, 0x19, 0xe3, 0xdd, - 0xad, 0xb5, 0x42, 0x5e, 0x02, 0x5b, 0xa1, 0x27, 0xae, 0x36, 0xac, 0xeb, 0x1b, 0xef, 0x42, 0xc3, - 0x7c, 0x5d, 0x2a, 0x6c, 0x1d, 0x7b, 0x9c, 0x9f, 0x9c, 0xa5, 0xc9, 0xb0, 0x7f, 0x66, 0x5d, 0x13, - 0xae, 0xcc, 0xed, 0x58, 0x25, 0x52, 0x85, 0xca, 0x63, 0x8f, 0x9f, 0x59, 0xe5, 0x8d, 0x6f, 0xc2, - 0xe2, 0xd8, 0xab, 0x62, 0xc1, 0xec, 0x1c, 0x75, 0xf6, 0xac, 0x6b, 0xe2, 0xd7, 0xfe, 0x56, 0xf7, - 0xc4, 0x2a, 0x91, 0x15, 0xb0, 0x1e, 0xb7, 0x3f, 0x7c, 0xec, 0xee, 0x1c, 0x1d, 0x1e, 0x3b, 0x7b, - 0xdd, 0x6e, 0xfb, 0xa8, 0x63, 0x95, 0x37, 0xee, 0x03, 0x14, 0xcf, 0xd8, 0x48, 0x0d, 0x66, 0xf1, - 0x24, 0x47, 0x02, 0x4f, 0xd8, 0x93, 0x8f, 0xad, 0x12, 0xa9, 0xc3, 0xbc, 0x9a, 0xda, 0xad, 0xf2, - 0xc6, 0x43, 0x58, 0x54, 0xdb, 0x37, 0xd1, 0xb7, 0x27, 0x2c, 0x16, 0x53, 0x0d, 0x69, 0x77, 0x3e, - 0xde, 0x3a, 0x68, 0xef, 0xba, 0xed, 0xce, 0xee, 0xde, 0xf7, 0xdc, 0x27, 0xed, 0xce, 0xae, 0xd4, - 0xf0, 0xb8, 0xd3, 0xfd, 0xc4, 0x2a, 0x6d, 0x9c, 0xc2, 0xca, 0xb4, 0x87, 0xa7, 0xe4, 0x36, 0xdc, - 0xd4, 0xc8, 0xdd, 0x76, 0xf7, 0x64, 0xab, 0xb3, 0xb3, 0xe7, 0x1e, 0xee, 0x9d, 0x38, 0xed, 0x1d, - 0xeb, 0x1a, 0x99, 0x83, 0xf2, 0xc1, 0x5b, 0x56, 0x09, 0xff, 0x6e, 0x5a, 0x65, 0x02, 0x30, 0xb7, - 0x73, 0xd4, 0x6d, 0x77, 0xf6, 0xac, 0x19, 0x11, 0x47, 0xed, 0x4e, 0x67, 0xcf, 0x71, 0x8f, 0x9d, - 0xa3, 0xdd, 0xef, 0xee, 0x9c, 0x58, 0x95, 0x8d, 0xb7, 0x8a, 0x27, 0xb4, 0xd8, 0x95, 0x15, 0xb0, - 0xda, 0xf1, 0x53, 0x2f, 0x64, 0x41, 0x4e, 0xb3, 0xae, 0x89, 0xbe, 0x1c, 0xc9, 0x7a, 0x6a, 0x95, - 0x36, 0x7e, 0xaf, 0x78, 0xdf, 0x89, 0x90, 0x9b, 0xb0, 0x6c, 0x7e, 0x2b, 0xb8, 0x75, 0x6d, 0x9c, - 0xd1, 0x49, 0xba, 0x7e, 0x92, 0x52, 0xab, 0x44, 0x6e, 0xc1, 0x75, 0x93, 0xf1, 0x09, 0xcb, 0xce, - 0x24, 0xab, 0xbc, 0xf1, 0xcb, 0x12, 0x54, 0xf5, 0xe3, 0xa0, 0x22, 0x9f, 0x62, 0x9a, 0x62, 0xa4, - 0x5f, 0x23, 0xd7, 0x61, 0x09, 0x33, 0x83, 0xf6, 0xb2, 0xa3, 0x61, 0xa6, 0xc8, 0x25, 0x1d, 0x51, - 0x0e, 0xeb, 0x9f, 0x19, 0xf4, 0x32, 0xb1, 0xa0, 0x21, 0xd3, 0x4f, 0x3e, 0xf1, 0xb0, 0x66, 0x44, - 0x07, 0x31, 0xfb, 0xe2, 0x8c, 0xe5, 0xd4, 0x8a, 0x68, 0xd1, 0x88, 0xda, 0x9c, 0x35, 0x4b, 0xee, - 0xc0, 0x2d, 0x0d, 0x98, 0x64, 0xcf, 0x6d, 0xac, 0x41, 0xc3, 0x7c, 0x94, 0xa4, 0x2d, 0x8a, 0x20, - 0x93, 0x4d, 0xde, 0xf8, 0x06, 0x2c, 0x4d, 0x3c, 0x80, 0x10, 0xc3, 0xd3, 0xee, 0x48, 0xcf, 0x1e, - 0xb6, 0x3b, 0xee, 0xe1, 0xd6, 0xf7, 0xac, 0x92, 0xc0, 0x6e, 0x1f, 0x1c, 0x1d, 0x1d, 0xba, 0xfb, - 0xed, 0x83, 0x93, 0x3d, 0xc7, 0x2a, 0x6f, 0x6c, 0x8c, 0x61, 0x31, 0x4c, 0x45, 0xb8, 0x1d, 0xed, - 0x6c, 0x1d, 0x58, 0xd7, 0xc4, 0xe8, 0x7e, 0x78, 0x70, 0xb4, 0xbd, 0x75, 0x60, 0x95, 0x36, 0xb6, - 0x61, 0x69, 0xe2, 0xf2, 0x56, 0xe4, 0xc3, 0x7e, 0x92, 0xfa, 0x54, 0x92, 0x64, 0x78, 0x6d, 0x0d, - 0xb3, 0xc4, 0x2a, 0x89, 0xa4, 0x47, 0x96, 0x2c, 0x2b, 0x2c, 0xee, 0x5b, 0xe5, 0x8d, 0x6f, 0xc3, - 0xe2, 0xd8, 0x12, 0x4a, 0x24, 0xd0, 0x7e, 0x12, 0x86, 0xc9, 0x33, 0x21, 0x81, 0xf9, 0x74, 0x9c, - 0x52, 0x9f, 0x06, 0xe2, 0xb3, 0x24, 0x72, 0x7d, 0x07, 0xaf, 0xd7, 0x32, 0x27, 0x79, 0x66, 0x95, - 0x37, 0x8e, 0xc0, 0x1a, 0x5f, 0xb6, 0x90, 0x79, 0x98, 0x69, 0xc7, 0x99, 0x75, 0x4d, 0x34, 0x7c, - 0x3f, 0x4c, 0xbc, 0x4c, 0x66, 0xc7, 0x2e, 0xf5, 0x59, 0xe4, 0x85, 0x56, 0x59, 0x94, 0x93, 0x5d, - 0x2f, 0xa3, 0x27, 0x2c, 0xa2, 0xb2, 0x14, 0xee, 0x0e, 0xe5, 0xad, 0x9f, 0x55, 0x11, 0x99, 0x33, - 0xb6, 0x88, 0x11, 0x5d, 0x10, 0x7b, 0x07, 0xd9, 0x7d, 0xb4, 0xc6, 0xad, 0x12, 0xba, 0x42, 0xcc, - 0x6d, 0xdc, 0x2a, 0x6f, 0x7f, 0xf5, 0x57, 0xbf, 0xb9, 0x5b, 0xfa, 0xb7, 0xdf, 0xdc, 0x2d, 0xfd, - 0xc7, 0x6f, 0xee, 0x96, 0x7e, 0xf4, 0x9f, 0x77, 0xaf, 0xc1, 0x75, 0x3f, 0x89, 0xee, 0x8b, 0x79, - 0xcf, 0xf7, 0x06, 0xf7, 0x33, 0x16, 0x9c, 0xe2, 0x4c, 0x70, 0x5c, 0xfa, 0xdf, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x82, 0xf9, 0x0d, 0xfa, 0x90, 0x36, 0x00, 0x00, + // 5196 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7b, 0x4b, 0x73, 0x1c, 0xc9, + 0x71, 0x3f, 0x67, 0x30, 0x00, 0x66, 0x72, 0x06, 0x83, 0x46, 0x01, 0x24, 0x9b, 0xe0, 0x92, 0xc4, + 0x8e, 0xf6, 0x01, 0xe1, 0xaf, 0x25, 0x77, 0x41, 0x6a, 0x1f, 0xd2, 0x7f, 0xa5, 0xc5, 0x73, 0x39, + 0x4b, 0x60, 0x00, 0xf5, 0x40, 0xbb, 0x8a, 0xb0, 0x23, 0x3a, 0x1a, 0xdd, 0x35, 0x83, 0x5a, 0xf4, + 0x63, 0xb6, 0xab, 0x87, 0x04, 0xf6, 0xa4, 0xb3, 0x7d, 0x71, 0x58, 0x61, 0x59, 0x7e, 0xca, 0x96, + 0x5f, 0x92, 0x25, 0xeb, 0xe0, 0x4f, 0xe0, 0xa3, 0x8e, 0x3e, 0xeb, 0xe0, 0x70, 0xc8, 0x27, 0x7f, + 0x03, 0x87, 0x4f, 0x8e, 0xca, 0xaa, 0xea, 0xae, 0x79, 0x80, 0xcb, 0x0d, 0xeb, 0xe0, 0x13, 0xa6, + 0x33, 0xf3, 0x97, 0x59, 0x8f, 0xcc, 0xac, 0xaa, 0xac, 0x02, 0x34, 0xe9, 0x05, 0xf5, 0x87, 0x59, + 0x92, 0xde, 0x1f, 0xa4, 0x49, 0x96, 0x90, 0x4a, 0xc6, 0x06, 0xa7, 0xab, 0x16, 0xbd, 0x18, 0xa4, + 0x94, 0x73, 0x96, 0xc4, 0x92, 0xbe, 0xda, 0xe0, 0xfe, 0x19, 0x8d, 0x3c, 0xf5, 0xb5, 0xd2, 0x4f, + 0xfa, 0x09, 0xfe, 0x7c, 0x20, 0x7e, 0x49, 0x6a, 0xeb, 0x67, 0x35, 0xa8, 0xee, 0x29, 0x75, 0xe4, + 0x15, 0x28, 0x67, 0x03, 0xbb, 0xb4, 0x56, 0x5a, 0x6f, 0x6e, 0x36, 0xef, 0x0b, 0xad, 0xf7, 0x05, + 0xef, 0xe4, 0x72, 0x40, 0xb7, 0x2b, 0xbf, 0xfa, 0xb7, 0x7b, 0xd7, 0x9c, 0x72, 0x36, 0x20, 0x1b, + 0x50, 0xcd, 0x4e, 0x43, 0x97, 0xfb, 0x5e, 0x6c, 0x97, 0xd7, 0x4a, 0xeb, 0xf5, 0xcd, 0x45, 0x29, + 0x7b, 0xe2, 0x9d, 0x86, 0xb4, 0xeb, 0x7b, 0xb1, 0x33, 0x9f, 0x9d, 0x86, 0xe2, 0x87, 0x90, 0x65, + 0xc1, 0x85, 0x94, 0x9d, 0x31, 0x65, 0xdb, 0x71, 0x40, 0x2f, 0xa4, 0x2c, 0x0b, 0xf0, 0x07, 0x79, + 0x03, 0x6a, 0x9c, 0x86, 0xd4, 0xcf, 0x58, 0x12, 0xdb, 0x15, 0x53, 0xb8, 0xab, 0xc9, 0x4e, 0x21, + 0x41, 0x1e, 0x42, 0xdd, 0xeb, 0xf7, 0x53, 0xda, 0xf7, 0x10, 0x30, 0x8b, 0x80, 0x25, 0x09, 0xd8, + 0x2a, 0x18, 0x8e, 0x29, 0x45, 0xee, 0x42, 0x25, 0x4b, 0x06, 0x1d, 0x7b, 0x0e, 0xa5, 0x41, 0xb5, + 0x3b, 0x19, 0x74, 0x1c, 0xa4, 0x93, 0x97, 0x61, 0x36, 0x64, 0x11, 0xcb, 0xec, 0x79, 0x14, 0xa8, + 0x4b, 0x81, 0x03, 0x41, 0x72, 0x24, 0x87, 0xec, 0xc0, 0x12, 0xbd, 0xf0, 0xcf, 0xbc, 0xb8, 0x4f, + 0xdd, 0x94, 0xfa, 0x94, 0x3d, 0xa5, 0xa9, 0x5d, 0x45, 0xf1, 0x1b, 0x7a, 0xcc, 0x24, 0xdb, 0x51, + 0x5c, 0xc7, 0xa2, 0x63, 0x14, 0xd1, 0x8e, 0x4f, 0x13, 0x16, 0xdb, 0x35, 0xb3, 0x1d, 0x1f, 0x25, + 0x2c, 0x76, 0x90, 0x4e, 0xee, 0x41, 0x5d, 0x4f, 0xb2, 0xcb, 0x02, 0x1b, 0xd6, 0x4a, 0xeb, 0x35, + 0x07, 0x34, 0xa9, 0x1d, 0x08, 0x05, 0xe7, 0x2c, 0x0c, 0xed, 0xba, 0xa9, 0xe0, 0x09, 0x0b, 0x43, + 0x07, 0xe9, 0xe4, 0x7d, 0x58, 0xcc, 0x5b, 0xc9, 0x69, 0x1c, 0xd0, 0xd4, 0x6e, 0xa0, 0xe8, 0xca, + 0x68, 0x1b, 0xbb, 0xc8, 0x73, 0x9a, 0x74, 0xe4, 0x9b, 0xbc, 0x09, 0x70, 0x9c, 0x26, 0x9f, 0xaa, + 0xc9, 0x58, 0x40, 0xa4, 0x25, 0x91, 0x05, 0xdd, 0x31, 0x64, 0xc8, 0x47, 0xb0, 0x32, 0xf0, 0xd2, + 0x8c, 0x89, 0x0f, 0x37, 0x13, 0x9e, 0x20, 0x67, 0xbd, 0x89, 0x58, 0x5b, 0x61, 0xb5, 0x44, 0xe1, + 0x2a, 0x64, 0x30, 0x41, 0x13, 0x9d, 0xe3, 0x49, 0x9a, 0xd9, 0x8b, 0x66, 0xe7, 0xba, 0x49, 0x9a, + 0x39, 0x48, 0x27, 0xaf, 0xc0, 0xdc, 0x33, 0x16, 0x07, 0xc9, 0x33, 0xdb, 0x42, 0x89, 0x86, 0x94, + 0xf8, 0x04, 0x69, 0x8e, 0xe2, 0x91, 0x0e, 0xbc, 0xdc, 0x63, 0x31, 0x75, 0xfb, 0xa9, 0xc7, 0x62, + 0x1a, 0xb8, 0xfc, 0x6c, 0xd8, 0xeb, 0x89, 0x66, 0x65, 0x29, 0xf5, 0x22, 0xd7, 0x4f, 0x86, 0x71, + 0x66, 0x2f, 0xad, 0x95, 0xd6, 0x2b, 0xca, 0xb9, 0xef, 0x08, 0xf1, 0x0f, 0xa5, 0x74, 0x57, 0x0a, + 0x77, 0x51, 0x76, 0x47, 0x88, 0x92, 0x8f, 0xe0, 0xde, 0x54, 0x7d, 0xa7, 0x5e, 0xe6, 0x9f, 0xb9, + 0x9c, 0x7d, 0x4e, 0x6d, 0x62, 0x68, 0xbb, 0x3d, 0xa9, 0x6d, 0x5b, 0x48, 0x76, 0xd9, 0xe7, 0x54, + 0xf4, 0x80, 0x5e, 0x0c, 0xbc, 0x38, 0xb0, 0x97, 0xcd, 0x1e, 0xec, 0x21, 0xcd, 0x51, 0x3c, 0xf2, + 0x3a, 0xcc, 0xcb, 0x5f, 0x9b, 0xf6, 0x0a, 0x8a, 0x2d, 0x98, 0x62, 0x9b, 0x8e, 0xe6, 0x8a, 0xd9, + 0x3e, 0x4d, 0x13, 0x2f, 0xf0, 0x3d, 0x9e, 0xb9, 0x9f, 0x0d, 0x69, 0x7a, 0x69, 0x5f, 0x37, 0x67, + 0x7b, 0x5b, 0x33, 0xbf, 0x23, 0x78, 0x4e, 0xf3, 0x74, 0xe4, 0x9b, 0x3c, 0x82, 0x06, 0x13, 0xf1, + 0xe8, 0x86, 0x49, 0x72, 0x3e, 0x1c, 0xd8, 0xb6, 0x19, 0x4b, 0x18, 0xa9, 0x07, 0x49, 0x72, 0xfe, + 0xdd, 0x81, 0x53, 0x67, 0xfa, 0x63, 0x38, 0x20, 0x77, 0x00, 0x06, 0x5e, 0x4a, 0xe3, 0xcc, 0x65, + 0xc1, 0x85, 0x7d, 0x6b, 0xad, 0xb4, 0xbe, 0xe0, 0xd4, 0x24, 0xa5, 0x1d, 0x5c, 0x90, 0x63, 0xb8, + 0x41, 0x2f, 0x06, 0xa1, 0xc7, 0x62, 0xb7, 0x97, 0xa4, 0xae, 0x9f, 0xc4, 0xb1, 0x72, 0xa7, 0x55, + 0x54, 0xbf, 0x9a, 0xf7, 0x45, 0xc8, 0xec, 0x27, 0xe9, 0x4e, 0x2e, 0xe1, 0xac, 0xd0, 0x29, 0xd4, + 0xd6, 0x2f, 0x66, 0xa0, 0x39, 0xea, 0xb7, 0x64, 0xdd, 0xc8, 0x58, 0x64, 0xd4, 0xb3, 0x27, 0xb2, + 0xd6, 0x12, 0x8d, 0xfd, 0x24, 0xa0, 0x81, 0x9b, 0x79, 0xfc, 0xdc, 0x8d, 0x68, 0xe6, 0xd9, 0xe5, + 0xb5, 0x99, 0xf5, 0x86, 0xb3, 0xa8, 0x18, 0x27, 0x1e, 0x3f, 0x3f, 0xa4, 0x99, 0x47, 0xde, 0x82, + 0x66, 0xe1, 0xcb, 0xe7, 0xf4, 0x92, 0xdb, 0x33, 0x6b, 0x33, 0x85, 0x27, 0xee, 0x5d, 0x0c, 0x52, + 0x67, 0x21, 0x97, 0x78, 0x42, 0x2f, 0x39, 0x79, 0x05, 0x66, 0xfd, 0x33, 0x16, 0x06, 0x2a, 0x71, + 0x19, 0xd9, 0x53, 0x04, 0xac, 0x23, 0x99, 0xe4, 0x55, 0x98, 0xcd, 0x2e, 0x07, 0x94, 0xdb, 0xb3, + 0xa8, 0x4f, 0xa5, 0xb7, 0x7d, 0x46, 0xc3, 0x40, 0x34, 0xd7, 0x91, 0x5c, 0xf2, 0x0e, 0x2c, 0x7a, + 0x61, 0xe8, 0xf6, 0x04, 0xdd, 0x95, 0x80, 0xb9, 0xe9, 0x80, 0x05, 0x2f, 0x0c, 0xf3, 0x2f, 0x4e, + 0xde, 0x87, 0xba, 0x9f, 0x44, 0x7a, 0x19, 0xc0, 0x24, 0xd6, 0xdc, 0xbc, 0x2e, 0x41, 0x3b, 0x05, + 0xe3, 0x30, 0x09, 0xf4, 0xd0, 0x98, 0xf2, 0xe4, 0x00, 0x6e, 0x0c, 0x07, 0x3a, 0x3c, 0x32, 0x6a, + 0x0c, 0x54, 0x15, 0xcd, 0xdf, 0x54, 0xbd, 0x92, 0xc3, 0xb5, 0x7d, 0x99, 0x51, 0xde, 0x0d, 0x99, + 0x4f, 0x9d, 0x65, 0x0d, 0xdb, 0xc9, 0xa8, 0x1e, 0xc5, 0xd6, 0xef, 0x95, 0xa0, 0x6e, 0x38, 0x0f, + 0x79, 0x13, 0x56, 0xa4, 0x97, 0x9d, 0x79, 0x71, 0x10, 0x52, 0x37, 0xe9, 0xf5, 0x38, 0xcd, 0xb8, + 0x5d, 0x5a, 0x9b, 0x59, 0x5f, 0x70, 0x08, 0xf2, 0x1e, 0x23, 0xeb, 0x48, 0x72, 0x84, 0x87, 0x9d, + 0x53, 0x3a, 0x70, 0x93, 0x54, 0xe4, 0x2f, 0xb1, 0xd6, 0x54, 0x9d, 0x9a, 0xa0, 0x1c, 0x09, 0x82, + 0x58, 0x5c, 0x70, 0x58, 0x53, 0x1a, 0xab, 0x09, 0x1a, 0x1f, 0xf6, 0x9c, 0xdf, 0x7a, 0x17, 0x96, + 0x26, 0x9a, 0x4d, 0xbe, 0x02, 0x0b, 0xa6, 0x4f, 0xc8, 0xa6, 0x34, 0x9c, 0x86, 0xe1, 0x0f, 0xbc, + 0xf5, 0xeb, 0x12, 0x58, 0xe3, 0x19, 0x7d, 0xba, 0x37, 0x95, 0xa6, 0x7b, 0xd3, 0x9b, 0x50, 0x37, + 0x67, 0xb2, 0x3c, 0x7d, 0x26, 0xa1, 0x57, 0x4c, 0x63, 0x0b, 0xbd, 0x7a, 0xe6, 0x2a, 0xaf, 0x46, + 0x7f, 0xde, 0x85, 0x7b, 0x49, 0xca, 0xfa, 0x2c, 0xf6, 0x42, 0x9c, 0xab, 0x41, 0x1a, 0x24, 0xfe, + 0x90, 0xa6, 0x46, 0x7b, 0x2a, 0xd8, 0x9e, 0xdb, 0x5a, 0x6c, 0x27, 0xa3, 0xc7, 0x4a, 0x28, 0x9f, + 0xa3, 0x1f, 0xcc, 0x40, 0x63, 0xab, 0xd3, 0xc1, 0x34, 0xd0, 0x8e, 0x7b, 0x09, 0x79, 0x07, 0x00, + 0xf3, 0x07, 0x36, 0x76, 0x34, 0xb0, 0xb4, 0x9c, 0x11, 0x58, 0xb5, 0xcf, 0x34, 0x81, 0xb4, 0x61, + 0x31, 0x60, 0x3c, 0xf3, 0x62, 0x9f, 0x0a, 0xeb, 0x29, 0xf3, 0x71, 0xc2, 0x9a, 0x3a, 0xce, 0x3f, + 0xa6, 0x7e, 0x96, 0xa4, 0xbb, 0x4a, 0xe4, 0x10, 0x25, 0x94, 0x96, 0x66, 0x30, 0x42, 0x25, 0xb7, + 0x60, 0x36, 0x4b, 0x06, 0xee, 0x39, 0x8e, 0xc0, 0x82, 0x12, 0x12, 0xeb, 0xf3, 0x13, 0xf2, 0xaa, + 0x70, 0xf0, 0x70, 0x18, 0xc5, 0x6e, 0xec, 0x45, 0x14, 0x83, 0xad, 0xa6, 0x04, 0x40, 0x32, 0x3a, + 0x5e, 0x44, 0xc9, 0xcb, 0x50, 0x53, 0x62, 0x2c, 0xc0, 0x9d, 0xc1, 0x8c, 0x12, 0xaa, 0x4a, 0x32, + 0x2e, 0xa0, 0xf5, 0x94, 0xf6, 0xdc, 0xa7, 0xd4, 0x77, 0x7b, 0x0f, 0x37, 0x71, 0x43, 0xd0, 0x70, + 0x6a, 0x29, 0xed, 0x7d, 0x4c, 0xfd, 0xfd, 0x87, 0x9b, 0xe4, 0x1e, 0x54, 0xa5, 0xb7, 0xb2, 0x00, + 0x57, 0x77, 0xad, 0x61, 0x1e, 0xa9, 0x6d, 0x91, 0x9c, 0x1b, 0x91, 0x77, 0xe1, 0xea, 0xb6, 0xe3, + 0x1a, 0x5d, 0xd2, 0x51, 0x15, 0x79, 0x17, 0xba, 0xab, 0x64, 0x03, 0x9a, 0x67, 0x31, 0x7f, 0xe6, + 0xd2, 0x9e, 0xcb, 0xa9, 0x97, 0xfa, 0x67, 0x98, 0xcc, 0x75, 0xbf, 0x1a, 0x82, 0xb7, 0xd7, 0xeb, + 0x22, 0xe7, 0xa3, 0x4a, 0x75, 0xde, 0xaa, 0xb6, 0x7e, 0x7f, 0x06, 0x1a, 0xfb, 0x27, 0xdd, 0x17, + 0x9a, 0x15, 0x2d, 0x37, 0x7d, 0x56, 0xcc, 0x5e, 0x94, 0xa7, 0xf5, 0x62, 0x03, 0xe6, 0xe5, 0x90, + 0xe8, 0x1c, 0x67, 0xe9, 0x6c, 0x81, 0xe3, 0x14, 0xf7, 0x12, 0x47, 0x0b, 0x90, 0x97, 0xa1, 0x61, + 0x0c, 0x3e, 0x47, 0xff, 0xaa, 0x39, 0xf5, 0x62, 0xdc, 0x39, 0xf9, 0x4a, 0xde, 0x50, 0x7a, 0x91, + 0xe1, 0xc8, 0xd7, 0x46, 0x1b, 0x45, 0x2f, 0x32, 0xf2, 0x06, 0x2c, 0x2a, 0xa1, 0xe4, 0x9c, 0xc6, + 0xec, 0x73, 0x9a, 0xe2, 0xf0, 0x6b, 0xc9, 0xa6, 0x94, 0xd4, 0x3c, 0xb2, 0xac, 0xdd, 0x01, 0x70, + 0x89, 0x91, 0x8e, 0xf0, 0xae, 0x36, 0xd4, 0x1b, 0xc6, 0x3e, 0x0e, 0x68, 0x73, 0x73, 0x59, 0x6d, + 0x14, 0x7c, 0x2f, 0xf4, 0xd2, 0xfd, 0x61, 0xec, 0x77, 0x59, 0x7f, 0xc4, 0xba, 0xa0, 0x91, 0x07, + 0x00, 0x11, 0xae, 0xd8, 0x62, 0xbf, 0x6c, 0x5f, 0x1f, 0x4f, 0xec, 0x1a, 0x80, 0x32, 0x82, 0xd0, + 0xfa, 0xfe, 0x2c, 0xd4, 0x8a, 0xbd, 0xc9, 0x3d, 0xa8, 0xca, 0xdd, 0x0d, 0x0b, 0x70, 0x22, 0xf2, + 0x11, 0x45, 0xea, 0xe8, 0x88, 0x96, 0xbf, 0x68, 0x44, 0x6d, 0xa8, 0x04, 0x94, 0xfb, 0xe8, 0xe8, + 0x55, 0xed, 0xe8, 0x82, 0x42, 0xbe, 0x06, 0x64, 0x90, 0xb2, 0xc8, 0x4b, 0x2f, 0xdd, 0xdc, 0x93, + 0xe5, 0x88, 0xcf, 0x38, 0x96, 0xe2, 0x28, 0x8d, 0x01, 0x27, 0x1f, 0x80, 0x15, 0xd3, 0x8b, 0xcc, + 0x4d, 0xa9, 0x17, 0xb8, 0x34, 0xee, 0xb3, 0x98, 0xe2, 0xe0, 0x37, 0xb5, 0xf1, 0x3d, 0xa4, 0x19, + 0x3e, 0xd2, 0x14, 0xf2, 0x0e, 0xf5, 0x02, 0xc9, 0x21, 0x5f, 0x83, 0xb9, 0x54, 0xe4, 0x17, 0xbd, + 0xd2, 0xa8, 0x4c, 0xfa, 0x84, 0x5e, 0x3a, 0x82, 0xac, 0x50, 0x4a, 0x86, 0xbc, 0x07, 0xb7, 0x74, + 0xeb, 0x06, 0x29, 0xed, 0xb1, 0x0b, 0xb3, 0x91, 0xf3, 0xd8, 0xc8, 0x1b, 0x4a, 0xe0, 0x18, 0xf9, + 0x45, 0x53, 0x47, 0x73, 0x7a, 0x75, 0x3c, 0xa7, 0xaf, 0x41, 0x83, 0x71, 0xb7, 0x27, 0xf6, 0x31, + 0xb8, 0x7d, 0xac, 0xa1, 0x00, 0x30, 0xbe, 0xef, 0xf1, 0x0c, 0x27, 0xe0, 0x10, 0xee, 0x0c, 0x86, + 0xfc, 0x8c, 0x06, 0x6e, 0x90, 0x3c, 0x8b, 0xdd, 0x1e, 0x0b, 0x33, 0x8a, 0xdb, 0x8b, 0x00, 0x57, + 0x63, 0x6e, 0xc3, 0xc4, 0x5a, 0xbd, 0x2a, 0x01, 0xbb, 0xc9, 0xb3, 0x78, 0x1f, 0xc5, 0x77, 0x72, + 0x69, 0xb2, 0x03, 0xcb, 0xe9, 0x30, 0xce, 0x58, 0x44, 0xb5, 0xaa, 0x90, 0xf1, 0xcc, 0xae, 0xa3, + 0x12, 0xe5, 0x51, 0x8e, 0x14, 0x90, 0x58, 0x67, 0x29, 0x35, 0x3f, 0x0f, 0x18, 0x17, 0x1e, 0x6d, + 0x89, 0x5c, 0xf0, 0xcc, 0x63, 0x99, 0x8b, 0xaa, 0x22, 0x8e, 0xdb, 0xed, 0x59, 0x35, 0x6e, 0x0b, + 0x91, 0x77, 0xf1, 0x89, 0xc7, 0xb2, 0x13, 0x16, 0xd1, 0x43, 0x4e, 0x1e, 0x40, 0xcd, 0x8b, 0x63, + 0xb5, 0x51, 0x93, 0x9b, 0xeb, 0xb1, 0x1c, 0x8b, 0x6e, 0x52, 0xf5, 0xe2, 0x18, 0xbf, 0x5a, 0x3f, + 0xae, 0x00, 0x99, 0xdc, 0x3b, 0xff, 0xdf, 0xf4, 0xc5, 0xe7, 0xfa, 0xc6, 0xec, 0x73, 0x7d, 0xe3, + 0x2b, 0x50, 0xec, 0xaa, 0x50, 0x7c, 0x0e, 0xc5, 0x1b, 0x39, 0x51, 0x08, 0x8d, 0x7b, 0xc8, 0xfc, + 0x97, 0xf7, 0x90, 0xea, 0x6f, 0xc3, 0x43, 0x6a, 0xff, 0x6b, 0x0f, 0x81, 0x17, 0xf4, 0x90, 0xfa, + 0x0b, 0x78, 0xc8, 0x7f, 0xcf, 0x42, 0x45, 0x9c, 0x1f, 0xc9, 0x5b, 0x50, 0x13, 0x27, 0x48, 0x73, + 0xa5, 0x68, 0x16, 0xc7, 0x4b, 0x23, 0x03, 0x54, 0x3f, 0x55, 0xdf, 0xe4, 0x5b, 0xd0, 0x44, 0x88, + 0x38, 0x5e, 0x4a, 0x5c, 0xd9, 0x5c, 0x61, 0x04, 0x6e, 0xac, 0x0c, 0xd0, 0xf8, 0xd4, 0xa0, 0x7d, + 0x99, 0x7d, 0x98, 0x58, 0x99, 0x59, 0x1c, 0xd3, 0x14, 0xcf, 0x0c, 0x15, 0x73, 0x65, 0x46, 0xb2, + 0x38, 0x38, 0xbc, 0x09, 0xcd, 0x90, 0xf6, 0x32, 0x17, 0xdb, 0x84, 0xbb, 0xef, 0xd9, 0x89, 0xf9, + 0x6a, 0x08, 0x09, 0xd1, 0x30, 0xdc, 0x7c, 0x6f, 0xc2, 0x62, 0xca, 0xfa, 0x67, 0x26, 0x64, 0x6e, + 0x72, 0xc3, 0x8e, 0x22, 0x39, 0xe6, 0x4d, 0xa8, 0x0f, 0xd2, 0xe4, 0x94, 0xaa, 0x5d, 0xd9, 0xfc, + 0x15, 0xbb, 0x32, 0x94, 0x91, 0xbb, 0xb2, 0x37, 0xa1, 0x7e, 0x3a, 0x64, 0xf9, 0x3e, 0xae, 0x7a, + 0x05, 0x02, 0x65, 0x24, 0xe2, 0x21, 0x2c, 0x62, 0x4f, 0x0c, 0xd7, 0xab, 0x4d, 0xb4, 0x0b, 0x3b, + 0x6b, 0xb8, 0xdb, 0xd7, 0xc1, 0x92, 0x9d, 0x79, 0x6e, 0x4a, 0x93, 0x1d, 0x1e, 0x85, 0x25, 0xd9, + 0xd9, 0xa8, 0x9f, 0xd7, 0x27, 0x61, 0x28, 0x63, 0xc0, 0x1e, 0xc3, 0x6d, 0x09, 0xa3, 0x9f, 0x19, + 0x48, 0xb7, 0x97, 0x26, 0x91, 0xcb, 0x62, 0xbb, 0x31, 0xa1, 0xe1, 0x26, 0x8a, 0xef, 0x7d, 0x56, + 0xe8, 0xd8, 0x4f, 0x93, 0xa8, 0x1d, 0x93, 0x47, 0x70, 0x93, 0x71, 0x37, 0x1e, 0x86, 0xa1, 0xeb, + 0x3d, 0xf3, 0x52, 0xea, 0x72, 0x1a, 0x31, 0x9c, 0x11, 0x4c, 0x71, 0x55, 0x67, 0x99, 0xf1, 0xce, + 0x30, 0x0c, 0xb7, 0x04, 0xb3, 0x4b, 0x23, 0x86, 0xee, 0x7a, 0x45, 0x70, 0x35, 0xbf, 0x4c, 0x70, + 0xb5, 0xfe, 0xb3, 0x0c, 0x0b, 0x23, 0x42, 0x64, 0x05, 0xca, 0x2a, 0x27, 0xea, 0x00, 0x2b, 0xb3, + 0x80, 0x3c, 0x02, 0x8b, 0x27, 0xc3, 0xd4, 0xa7, 0xb8, 0xf6, 0x4b, 0x4b, 0xe5, 0xc9, 0x09, 0x91, + 0x32, 0xe2, 0x37, 0x86, 0xee, 0x23, 0xb0, 0x32, 0x2f, 0xed, 0xd3, 0xcc, 0x40, 0x4d, 0x9e, 0x07, + 0x9b, 0x52, 0x26, 0x47, 0x6d, 0x02, 0xc9, 0x6d, 0x15, 0x85, 0x1c, 0x73, 0xc3, 0x6a, 0x69, 0x3b, + 0x79, 0x51, 0x67, 0x13, 0x48, 0x6e, 0xa9, 0xc0, 0x98, 0xbb, 0x28, 0x4b, 0x5b, 0xc9, 0x31, 0x6f, + 0xc3, 0x7c, 0xda, 0x93, 0x51, 0x3b, 0x87, 0x51, 0x7b, 0x73, 0xca, 0xa0, 0x19, 0xa1, 0x3b, 0x97, + 0xf6, 0x30, 0x68, 0x25, 0x2e, 0x4a, 0x02, 0xaa, 0x8e, 0x89, 0xd3, 0x70, 0xc6, 0x41, 0x71, 0x2e, + 0xed, 0x89, 0xaf, 0xd6, 0x0f, 0xca, 0x50, 0xcb, 0x8b, 0x77, 0x5f, 0xbc, 0x02, 0xfd, 0x56, 0x37, + 0xa0, 0x7a, 0x89, 0xaa, 0x4c, 0x2c, 0x51, 0x37, 0x60, 0x6e, 0x18, 0xb3, 0xcf, 0x86, 0x72, 0xdb, + 0x53, 0x75, 0xd4, 0xd7, 0x15, 0x4b, 0xd7, 0xdc, 0x15, 0x4b, 0xd7, 0xbb, 0xd0, 0xec, 0x65, 0x5c, + 0x66, 0x5d, 0x97, 0xc5, 0xbd, 0x44, 0x95, 0x01, 0xc7, 0xb6, 0xda, 0xd8, 0xa8, 0x46, 0x2f, 0xe3, + 0xf9, 0x57, 0xeb, 0x07, 0x25, 0xa8, 0xe5, 0x55, 0x4a, 0xb2, 0x01, 0x60, 0x44, 0x61, 0x69, 0xc2, + 0x57, 0x0c, 0x2e, 0x79, 0x04, 0xcd, 0x74, 0x10, 0x9b, 0x51, 0x2b, 0x3d, 0x52, 0x95, 0x7a, 0x9c, + 0x41, 0xac, 0xb2, 0xd7, 0x20, 0x36, 0xc2, 0x36, 0x2f, 0x37, 0xcc, 0x3c, 0xa7, 0xdc, 0xd0, 0xfa, + 0x7e, 0xc9, 0x2c, 0xe3, 0x91, 0x35, 0x98, 0x15, 0x1e, 0x3c, 0xad, 0x45, 0x92, 0x41, 0x36, 0xa0, + 0x26, 0x1a, 0x23, 0xa5, 0xa6, 0xb6, 0xa3, 0x9a, 0xca, 0x1f, 0x2f, 0xda, 0x84, 0x7f, 0x29, 0x43, + 0xdd, 0xa8, 0xc6, 0x92, 0x57, 0xa1, 0xda, 0x4f, 0x93, 0xe1, 0xc0, 0x3d, 0xbd, 0x9c, 0xd2, 0x8c, + 0x79, 0xe4, 0x6d, 0x5f, 0x0a, 0x31, 0xaf, 0xdf, 0x97, 0x9b, 0xfb, 0xc9, 0x08, 0x9d, 0xf7, 0xfa, + 0x7d, 0xdc, 0xcb, 0xaf, 0x41, 0x55, 0xd6, 0x1d, 0x68, 0x30, 0xb2, 0x6f, 0xc9, 0xa9, 0xe4, 0x01, + 0x34, 0x44, 0x8f, 0x72, 0x9b, 0x95, 0x69, 0x9d, 0x82, 0x74, 0x10, 0x7f, 0xa8, 0x2c, 0x2b, 0x40, + 0x6e, 0x7d, 0xf6, 0x2a, 0xc0, 0x96, 0x6a, 0x43, 0x3e, 0x0e, 0x73, 0xcf, 0xab, 0xfc, 0xbc, 0x07, + 0x8d, 0x41, 0x4a, 0x51, 0xed, 0x64, 0xcc, 0x9d, 0xb0, 0xfd, 0xd0, 0xe3, 0x67, 0xc7, 0x29, 0xdd, + 0xea, 0xf7, 0x45, 0x94, 0x89, 0x75, 0x47, 0xff, 0x6e, 0xfd, 0xa4, 0x04, 0x95, 0x93, 0x64, 0xd0, + 0x21, 0xaf, 0x43, 0x15, 0x77, 0xcd, 0xc5, 0xd8, 0xa9, 0xb2, 0xe1, 0xf6, 0x65, 0x3b, 0xa3, 0x91, + 0x33, 0x8f, 0xdc, 0xed, 0x4b, 0xb2, 0xaa, 0xab, 0xd8, 0x65, 0xa3, 0x1e, 0xa9, 0xca, 0xd7, 0x2f, + 0x34, 0x6d, 0x62, 0x14, 0x8a, 0x9d, 0x58, 0x3e, 0x6c, 0xa3, 0xe6, 0xea, 0xb9, 0xc4, 0xf6, 0x65, + 0xeb, 0x9f, 0x4b, 0x30, 0x8b, 0x65, 0xf2, 0xc2, 0x78, 0xe9, 0x39, 0xc6, 0xcb, 0x5f, 0xc6, 0xf8, + 0xcc, 0x17, 0x18, 0x27, 0x6f, 0xc3, 0x52, 0x96, 0x0e, 0x63, 0xdf, 0xcb, 0xa8, 0x58, 0xfd, 0xe5, + 0xc9, 0xae, 0x32, 0xb9, 0xf8, 0x69, 0xa1, 0x27, 0xf4, 0x12, 0x4f, 0x76, 0x1f, 0x40, 0xe5, 0x09, + 0x0b, 0x43, 0xf2, 0x12, 0xcc, 0xf9, 0x49, 0x1c, 0xb7, 0x77, 0x47, 0xda, 0xac, 0x68, 0xa2, 0x43, + 0x72, 0x1f, 0x56, 0x36, 0x3c, 0x4c, 0x92, 0x5a, 0x5b, 0xb0, 0x32, 0xad, 0x80, 0x49, 0xbe, 0x0a, + 0x0b, 0x45, 0xc1, 0x53, 0x27, 0x47, 0xad, 0xb8, 0x51, 0xb0, 0xda, 0x41, 0xeb, 0xe7, 0x33, 0x60, + 0xeb, 0x11, 0x90, 0x7f, 0x59, 0x12, 0x77, 0x87, 0x91, 0x48, 0x4d, 0x64, 0x03, 0x96, 0x70, 0x6d, + 0x1c, 0xa4, 0x89, 0x4f, 0x39, 0xa7, 0x81, 0x8b, 0x09, 0xa5, 0xb4, 0x5e, 0x71, 0x16, 0x05, 0xe3, + 0x58, 0xd3, 0x3b, 0x22, 0x78, 0x97, 0xe2, 0x61, 0x24, 0x44, 0x83, 0xa1, 0x4f, 0x03, 0x37, 0x4d, + 0x9e, 0x71, 0xe9, 0x01, 0xce, 0x62, 0x3c, 0x8c, 0x8e, 0x15, 0xdd, 0x49, 0x9e, 0x71, 0xf2, 0x2a, + 0x34, 0x85, 0x2c, 0xcb, 0x68, 0xea, 0xc9, 0xac, 0x33, 0x83, 0x82, 0x0b, 0xf1, 0x30, 0x6a, 0xe7, + 0xc4, 0xf1, 0x6b, 0x88, 0xca, 0xc4, 0x35, 0xc4, 0x1a, 0xd4, 0xfd, 0x24, 0xf6, 0x87, 0x69, 0x4a, + 0x63, 0xff, 0x12, 0x93, 0x6f, 0xc5, 0x31, 0x49, 0xe4, 0x00, 0x56, 0x32, 0xd6, 0x13, 0xee, 0x8d, + 0xdb, 0x75, 0x91, 0xe8, 0xb0, 0x36, 0x30, 0x67, 0xde, 0x0b, 0xa8, 0x00, 0x10, 0x4b, 0xca, 0x8e, + 0xe4, 0x3f, 0xbe, 0xe6, 0x10, 0x85, 0x33, 0xa8, 0xa2, 0xdd, 0xe9, 0x50, 0xe8, 0xe0, 0xc3, 0x68, + 0x90, 0xe9, 0x1a, 0x67, 0xc3, 0x59, 0x48, 0x87, 0x3b, 0x05, 0x91, 0x7c, 0x54, 0x18, 0xc5, 0x1d, + 0x37, 0x97, 0xc3, 0xa9, 0xae, 0x69, 0x46, 0x8d, 0x8a, 0x5d, 0xb7, 0x1a, 0xee, 0xdc, 0xa4, 0x41, + 0xdb, 0x6e, 0x00, 0xec, 0xd2, 0xcc, 0x63, 0x21, 0x26, 0xfa, 0x3e, 0xac, 0x28, 0x5c, 0x3e, 0x57, + 0x58, 0xa1, 0x39, 0x82, 0x65, 0xaa, 0x09, 0xca, 0x1c, 0xa3, 0x3a, 0xd3, 0xde, 0x1d, 0xf5, 0xf3, + 0xf1, 0x59, 0x76, 0x08, 0x1d, 0xa5, 0x30, 0xca, 0x5b, 0xbf, 0x0b, 0xab, 0xca, 0x90, 0x43, 0xfb, + 0x2c, 0x89, 0x3b, 0xc3, 0xe8, 0xa8, 0xd7, 0x8e, 0x55, 0x4d, 0xe9, 0x1e, 0xd4, 0x99, 0xfa, 0xad, + 0xbd, 0xab, 0xe6, 0x80, 0x26, 0xb5, 0x03, 0x71, 0xcc, 0x4e, 0x11, 0xe7, 0xc6, 0xc3, 0x48, 0x79, + 0x41, 0x2d, 0xd5, 0x9a, 0x5a, 0xff, 0x75, 0x07, 0xc8, 0xe4, 0xa0, 0x93, 0x47, 0xb0, 0x12, 0x44, + 0x3d, 0xa6, 0xee, 0x6e, 0x62, 0x1a, 0xb8, 0x03, 0xcf, 0x3f, 0x57, 0x1e, 0xb7, 0x5d, 0xb6, 0x4b, + 0x0e, 0x91, 0xfc, 0xae, 0x64, 0x1f, 0x0b, 0xae, 0x89, 0x3a, 0x67, 0x83, 0x41, 0x8e, 0x2a, 0x4f, + 0xa0, 0x24, 0x5b, 0xa2, 0xde, 0x01, 0x5b, 0xa1, 0x02, 0x2f, 0xf3, 0x72, 0x83, 0xe8, 0xb5, 0xd2, + 0x19, 0xaf, 0x4b, 0xfe, 0xae, 0x97, 0x79, 0xca, 0x1e, 0xfa, 0xee, 0x38, 0x50, 0xd9, 0x44, 0x60, + 0x65, 0x02, 0x28, 0xb9, 0x08, 0x7c, 0x17, 0x6e, 0x66, 0x49, 0xe6, 0x85, 0xae, 0x82, 0xa7, 0xdc, + 0x0d, 0x13, 0x2f, 0x10, 0x47, 0xb1, 0xd9, 0xbc, 0xa9, 0xcb, 0x28, 0xb2, 0x8b, 0x12, 0x0e, 0x3f, + 0x48, 0xbc, 0x00, 0x8f, 0x63, 0x2b, 0xa3, 0x48, 0x2a, 0x61, 0x73, 0x68, 0x6e, 0xc9, 0x84, 0x50, + 0x04, 0x7c, 0x5d, 0x9b, 0x92, 0x27, 0x06, 0x1e, 0x7b, 0x03, 0x7e, 0x96, 0x64, 0x02, 0x33, 0x8f, + 0x18, 0xa9, 0x6f, 0x5b, 0x70, 0xbb, 0x8a, 0x79, 0x88, 0x07, 0xe0, 0x30, 0xf1, 0xbd, 0xd0, 0x95, + 0x33, 0xc5, 0xd1, 0x61, 0x2b, 0x4e, 0x03, 0x89, 0xd2, 0x0f, 0x30, 0x76, 0x53, 0x1a, 0x25, 0x19, + 0xcd, 0xa5, 0x6a, 0x32, 0x76, 0x25, 0x55, 0x8b, 0xbd, 0x06, 0x8b, 0x43, 0x4e, 0x53, 0xd9, 0xd6, + 0xd3, 0xcb, 0x8c, 0xca, 0x03, 0x67, 0xc5, 0x59, 0x10, 0x64, 0xd1, 0x4e, 0xac, 0x84, 0x93, 0xb7, + 0xe0, 0xba, 0x6c, 0x6a, 0x48, 0xbd, 0x34, 0xd6, 0x80, 0x88, 0xe3, 0xb1, 0xb3, 0xe2, 0x10, 0x64, + 0x1e, 0x48, 0x9e, 0xea, 0xdd, 0xff, 0x87, 0xdb, 0x01, 0xe3, 0x62, 0x2d, 0x43, 0x59, 0xdf, 0xf3, + 0xcf, 0xa8, 0x7b, 0xc6, 0x32, 0x65, 0xa6, 0x81, 0xc0, 0x9b, 0x52, 0x44, 0x40, 0x76, 0x84, 0xc0, + 0x63, 0x96, 0x49, 0x83, 0xdf, 0x82, 0x97, 0x26, 0xd1, 0x11, 0xe3, 0x5c, 0xc1, 0x17, 0x10, 0x6e, + 0x8f, 0xc1, 0x0f, 0x19, 0xe7, 0x12, 0xff, 0x36, 0xd8, 0xe3, 0xd3, 0xe8, 0x9f, 0x51, 0xff, 0x5c, + 0xb4, 0xb9, 0x69, 0x0c, 0xae, 0x9e, 0xc3, 0x1d, 0xc1, 0x3c, 0xe4, 0x62, 0x2f, 0xc8, 0x33, 0x4f, + 0xcf, 0x9e, 0x1e, 0xbb, 0x45, 0x44, 0x58, 0xc8, 0x11, 0xc6, 0xf4, 0xf0, 0xad, 0x42, 0x95, 0xd3, + 0x7e, 0x44, 0xe3, 0x8c, 0xe3, 0x2d, 0x63, 0xc5, 0xc9, 0xbf, 0x65, 0x70, 0x79, 0xfa, 0xd2, 0x60, + 0x49, 0x07, 0x97, 0x27, 0x6f, 0x0c, 0x04, 0x3b, 0xa0, 0x61, 0xe6, 0x49, 0x97, 0x24, 0x92, 0x8d, + 0x14, 0x74, 0xc3, 0x7b, 0x50, 0x97, 0x6c, 0xd9, 0xdd, 0x65, 0xe4, 0x4b, 0x84, 0xec, 0xe0, 0x6b, + 0xb0, 0x18, 0x3d, 0xf5, 0x7d, 0x97, 0xc5, 0x83, 0x61, 0x26, 0x95, 0xac, 0xc8, 0x99, 0x13, 0xe4, + 0xb6, 0xa0, 0xa2, 0xa2, 0x75, 0xb0, 0x0c, 0x39, 0xa9, 0xed, 0x3a, 0x0a, 0x36, 0x73, 0x41, 0xa9, + 0x51, 0x4b, 0x26, 0xc3, 0x2c, 0x57, 0x79, 0xa3, 0x90, 0x3c, 0x42, 0x32, 0xea, 0x5c, 0x83, 0x46, + 0x18, 0x61, 0x4c, 0x49, 0xa9, 0x9b, 0xb2, 0x75, 0x61, 0x24, 0x02, 0x09, 0x25, 0xbe, 0x09, 0xab, + 0xa6, 0x6b, 0xa3, 0x71, 0x75, 0x67, 0x14, 0x71, 0xbc, 0x3a, 0xac, 0x38, 0x37, 0x0b, 0xef, 0x6e, + 0x17, 0xfc, 0x43, 0xc3, 0xd9, 0x24, 0xf8, 0x94, 0x65, 0x91, 0x37, 0x10, 0xb8, 0x5b, 0x86, 0xb3, + 0x21, 0x6e, 0x1b, 0x59, 0x87, 0x9c, 0xbc, 0x01, 0xcb, 0x11, 0x8b, 0x5d, 0x19, 0x17, 0x85, 0xa1, + 0x55, 0x39, 0x6f, 0x11, 0x8b, 0x0f, 0x04, 0xa7, 0xab, 0x2d, 0x08, 0x71, 0xef, 0x62, 0x42, 0xfc, + 0xb6, 0x12, 0xf7, 0x2e, 0x46, 0xc5, 0x1f, 0xc0, 0x8a, 0xd0, 0xae, 0x02, 0xaa, 0x90, 0x7f, 0x49, + 0x46, 0x76, 0xc4, 0x62, 0x07, 0x59, 0x23, 0x00, 0xef, 0x62, 0x12, 0x70, 0x47, 0x01, 0xbc, 0x8b, + 0x31, 0xc0, 0x31, 0x2c, 0x2b, 0x5f, 0x73, 0x93, 0x9e, 0xab, 0x53, 0xb4, 0x7d, 0x17, 0x57, 0x86, + 0xb5, 0x91, 0xa5, 0x68, 0x4a, 0xa6, 0x77, 0x96, 0x14, 0xd8, 0x48, 0xfe, 0x45, 0x02, 0xc4, 0x49, + 0x1d, 0xc9, 0x9c, 0xf7, 0xcc, 0x04, 0x78, 0xf8, 0xd4, 0xf7, 0xa7, 0x67, 0x4e, 0x09, 0x34, 0x33, + 0xe7, 0xda, 0x04, 0xd0, 0xc8, 0x9c, 0x1f, 0xc0, 0x1d, 0x05, 0x0c, 0x23, 0x7d, 0x4e, 0x1f, 0x31, + 0xfb, 0x32, 0xa2, 0x6f, 0x49, 0xa1, 0x83, 0x48, 0x9e, 0x1e, 0x4d, 0xd3, 0x53, 0x35, 0x98, 0xf6, + 0x5b, 0x53, 0x35, 0x18, 0x6d, 0xf8, 0x36, 0xdc, 0x91, 0xae, 0xf3, 0x14, 0x6f, 0x92, 0x5c, 0x16, + 0x5c, 0xc8, 0xf4, 0x8d, 0xb5, 0x0a, 0xfe, 0xd0, 0x0e, 0x64, 0xde, 0x40, 0x21, 0x79, 0xdb, 0xd4, + 0x0e, 0x2e, 0x44, 0x02, 0xdf, 0x4f, 0x93, 0xa8, 0xfb, 0x90, 0xec, 0xc0, 0xbd, 0xe7, 0x28, 0x08, + 0x18, 0x3f, 0xb7, 0x29, 0xaa, 0x58, 0x9d, 0xae, 0x62, 0x97, 0xf1, 0x73, 0xb2, 0x07, 0x6b, 0xcf, + 0x51, 0x82, 0xb9, 0xcc, 0xee, 0xa1, 0x96, 0xdb, 0xd3, 0xb5, 0x60, 0x32, 0xbb, 0xba, 0x33, 0xba, + 0x36, 0xd8, 0xbf, 0xaa, 0x33, 0xaa, 0x40, 0x38, 0xad, 0x33, 0xf2, 0x76, 0x29, 0x57, 0x71, 0x36, + 0xad, 0x33, 0xf2, 0x9e, 0x49, 0x29, 0x39, 0x82, 0x57, 0xaf, 0x52, 0xf2, 0x94, 0x71, 0x96, 0x89, + 0xed, 0x66, 0x12, 0x50, 0x6e, 0x33, 0x54, 0xb5, 0x36, 0x4d, 0xd5, 0xc7, 0x52, 0xb0, 0x23, 0xe4, + 0x48, 0x17, 0x5e, 0xbf, 0x4a, 0x61, 0xc0, 0xb8, 0xef, 0xa5, 0x41, 0xae, 0xf2, 0x53, 0x54, 0xd9, + 0x9a, 0xa6, 0x72, 0x57, 0x8b, 0x4a, 0xa5, 0xfb, 0xf0, 0xf2, 0x84, 0x52, 0x4c, 0xbf, 0x4f, 0xa9, + 0x9f, 0x77, 0xf6, 0x7c, 0xda, 0x98, 0x8b, 0x7c, 0xfe, 0x31, 0xf5, 0x55, 0x6f, 0x0f, 0xe0, 0x95, + 0xe9, 0x7a, 0xb0, 0xa2, 0xc5, 0x73, 0x55, 0x21, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x08, 0xe5, 0x94, + 0xb6, 0xf7, 0xe1, 0x76, 0x2f, 0xe3, 0x6e, 0xac, 0x4b, 0x65, 0x11, 0x8d, 0x92, 0xf4, 0xd2, 0x8d, + 0x13, 0x2c, 0x6c, 0xd8, 0x3f, 0x2c, 0xe1, 0x65, 0xd5, 0xcd, 0x5e, 0xc6, 0x3b, 0xb2, 0x40, 0x26, + 0x05, 0x3a, 0x92, 0x2f, 0x12, 0xa1, 0x01, 0xcf, 0x58, 0x7c, 0xe9, 0x4a, 0xe0, 0x1f, 0x4b, 0xe0, + 0x92, 0x06, 0x9e, 0xb0, 0xf8, 0x12, 0xeb, 0x2d, 0x62, 0x4f, 0x31, 0x0e, 0xd1, 0xd6, 0x7e, 0x24, + 0x41, 0xcb, 0x26, 0x48, 0x5b, 0x7a, 0x00, 0x2b, 0x06, 0x2c, 0x88, 0x7a, 0xca, 0xd0, 0x9f, 0x48, + 0x8c, 0xa5, 0x31, 0xbb, 0x51, 0x4f, 0xda, 0x79, 0x08, 0x37, 0xc6, 0x00, 0xda, 0xcc, 0x9f, 0x4a, + 0x08, 0x31, 0x20, 0xda, 0xca, 0x0e, 0xdc, 0x15, 0x20, 0x11, 0xca, 0x57, 0x8c, 0xc8, 0x9f, 0xc9, + 0x63, 0xcb, 0x6a, 0x2f, 0xe3, 0x22, 0x9e, 0xa7, 0x0d, 0xca, 0x3b, 0x60, 0x8f, 0x2a, 0x31, 0xc6, + 0xe5, 0xcf, 0x25, 0x7c, 0xc5, 0x80, 0x17, 0x43, 0xf3, 0x4d, 0x58, 0x9d, 0x02, 0xd4, 0x96, 0xff, + 0x42, 0x42, 0x6f, 0x8c, 0x41, 0xb5, 0x55, 0x35, 0xae, 0x05, 0xb8, 0x18, 0xa3, 0xbf, 0x94, 0xc8, + 0x65, 0x03, 0x99, 0x0f, 0xd3, 0x7b, 0x70, 0x6b, 0x12, 0xa6, 0x4d, 0xfe, 0x58, 0x02, 0xaf, 0x8f, + 0x02, 0xc7, 0x26, 0xbf, 0x08, 0x7a, 0x74, 0xcb, 0x88, 0xdb, 0x7f, 0x25, 0x61, 0x62, 0xf2, 0x75, + 0xb8, 0x0b, 0x96, 0xdc, 0x50, 0x8e, 0x40, 0x8c, 0x74, 0xf3, 0xd7, 0xc5, 0xe4, 0x4f, 0xe4, 0x99, + 0x0f, 0xe0, 0xce, 0x14, 0x98, 0xac, 0x84, 0x89, 0x44, 0x6b, 0xff, 0x44, 0x82, 0xed, 0x31, 0x30, + 0x4a, 0xec, 0xb3, 0x90, 0x8a, 0xbd, 0xde, 0xa4, 0x06, 0xae, 0x1e, 0x78, 0x3d, 0xb4, 0xff, 0x46, + 0xe2, 0x6f, 0x8c, 0xe2, 0xbb, 0xc8, 0xef, 0x3e, 0x9c, 0x6e, 0x5f, 0xa1, 0x31, 0xe3, 0xfe, 0xed, + 0x54, 0xfb, 0x12, 0x8f, 0x09, 0x77, 0x1d, 0x2c, 0xad, 0x41, 0x65, 0x92, 0xd8, 0xfe, 0x3b, 0x09, + 0x5a, 0x90, 0x20, 0x99, 0x34, 0x3a, 0xe6, 0x10, 0xe9, 0x4c, 0xa8, 0xc7, 0xf5, 0xef, 0x8b, 0x79, + 0x2c, 0x72, 0xa0, 0x1a, 0x59, 0xe5, 0xee, 0x02, 0x16, 0x44, 0x1a, 0x89, 0x4b, 0xd2, 0x3f, 0x48, + 0x14, 0x91, 0xa8, 0xdd, 0x48, 0xe2, 0x70, 0x31, 0x7a, 0x1f, 0x5e, 0x32, 0x40, 0xd2, 0x0e, 0xe6, + 0x12, 0x41, 0x8d, 0xb8, 0xfd, 0xd3, 0xc2, 0xe5, 0x10, 0x8a, 0xc6, 0x44, 0x0e, 0xd9, 0xcf, 0xb8, + 0xcc, 0xde, 0xd3, 0xe1, 0x2a, 0x15, 0x45, 0xdc, 0xfe, 0x99, 0xd4, 0x70, 0x6b, 0x42, 0x83, 0xcc, + 0x42, 0x87, 0x5c, 0x47, 0x8b, 0x50, 0x82, 0xee, 0x6e, 0x36, 0xfd, 0x1f, 0x8b, 0x68, 0x69, 0x07, + 0x17, 0xc2, 0xdb, 0x8d, 0xc6, 0x6f, 0xc9, 0x58, 0xcd, 0x81, 0x93, 0xcd, 0xff, 0xb9, 0x84, 0xdb, + 0x05, 0x7c, 0xac, 0x03, 0x1f, 0xc2, 0xcb, 0x57, 0xa9, 0x28, 0xba, 0xf0, 0x0b, 0xa9, 0xe5, 0xf6, + 0x14, 0x2d, 0x79, 0x27, 0xd4, 0xa4, 0x9d, 0xa6, 0xc3, 0x8c, 0x9a, 0x5a, 0x22, 0x6e, 0xff, 0x53, + 0x31, 0x69, 0xdb, 0x82, 0x9d, 0x83, 0x0f, 0xb9, 0x0e, 0x3e, 0x13, 0xa6, 0xba, 0x1f, 0x71, 0xfb, + 0x97, 0x45, 0xf0, 0x15, 0x40, 0xd9, 0xff, 0x43, 0xde, 0xfa, 0x69, 0x29, 0x3f, 0xfa, 0x1a, 0xc7, + 0x7c, 0xf2, 0x0a, 0x34, 0x23, 0x16, 0x9f, 0x74, 0x8f, 0x64, 0xc5, 0x20, 0x2f, 0xb3, 0x34, 0x24, + 0x55, 0x88, 0x76, 0xd0, 0x59, 0x06, 0x6c, 0x40, 0x43, 0x16, 0x53, 0xf7, 0xb3, 0x21, 0x1d, 0xd2, + 0x5c, 0x5a, 0x1e, 0xb1, 0x97, 0x35, 0xf7, 0x3b, 0x82, 0xa9, 0x40, 0xef, 0x80, 0x9d, 0x83, 0x4e, + 0x53, 0xea, 0x9d, 0xd3, 0x34, 0x87, 0xa9, 0x93, 0xae, 0xe6, 0x6f, 0x4b, 0xb6, 0x04, 0xb6, 0x3e, + 0x87, 0x4a, 0x37, 0x49, 0x33, 0xf2, 0x1a, 0xcc, 0x9f, 0x62, 0xd9, 0x8b, 0x4f, 0xaf, 0xfb, 0x29, + 0x26, 0x79, 0x05, 0x16, 0x18, 0xc7, 0x7b, 0x62, 0x2f, 0x14, 0x40, 0xf5, 0x64, 0x6a, 0x94, 0xf8, + 0x82, 0x85, 0xdb, 0x3f, 0x2c, 0x83, 0x25, 0x1f, 0x54, 0xee, 0xa7, 0x5e, 0x44, 0xb7, 0x93, 0x61, + 0x1c, 0x90, 0x07, 0x50, 0x31, 0xee, 0x15, 0xaf, 0x9b, 0xcf, 0x2e, 0x51, 0xc0, 0xb8, 0x67, 0x40, + 0x41, 0xd2, 0x82, 0xda, 0x30, 0x3e, 0x15, 0x2c, 0x1a, 0x8c, 0xd4, 0xcf, 0x0a, 0x32, 0xb9, 0x01, + 0x73, 0xf2, 0x29, 0x98, 0x1a, 0x0c, 0xf5, 0x45, 0xd6, 0xa1, 0xe6, 0x7b, 0xa1, 0xbf, 0x3f, 0x8c, + 0x7d, 0x3e, 0xa5, 0x9a, 0x57, 0x30, 0xc9, 0xff, 0x83, 0x7a, 0x4f, 0x34, 0xd2, 0xc5, 0xe7, 0x09, + 0xea, 0x29, 0xf0, 0x48, 0xc1, 0x1d, 0xd9, 0xf8, 0x92, 0x81, 0x7c, 0x03, 0x16, 0xfc, 0x68, 0x20, + 0x6b, 0x07, 0xc6, 0xb5, 0x89, 0x7a, 0xbb, 0x8b, 0x32, 0x3b, 0xd1, 0x60, 0xd7, 0xcb, 0x3c, 0xbc, + 0xcf, 0xab, 0xfb, 0xc5, 0x47, 0xeb, 0x87, 0x25, 0xa8, 0x1b, 0x83, 0xf2, 0xbc, 0xf1, 0x40, 0x81, + 0x89, 0xf1, 0xf8, 0x1a, 0xcc, 0xf2, 0xcc, 0x53, 0x33, 0x93, 0x3f, 0x18, 0x1e, 0x1f, 0x67, 0x47, + 0x0a, 0x91, 0x75, 0x98, 0xa1, 0xb1, 0x9e, 0xa7, 0xab, 0x64, 0x85, 0x48, 0xeb, 0xd7, 0x25, 0x98, + 0x93, 0x1c, 0xf2, 0x3a, 0xd4, 0x7a, 0xc3, 0xd8, 0x77, 0xf1, 0xa6, 0x64, 0xb2, 0xc4, 0x5e, 0x15, + 0xcc, 0x5d, 0xca, 0xfd, 0x89, 0x32, 0x6b, 0xf9, 0x8b, 0xca, 0xac, 0x66, 0xfd, 0x79, 0xe6, 0x79, + 0xf5, 0xe7, 0xd7, 0x61, 0x16, 0x07, 0x5c, 0x3d, 0x86, 0x5c, 0x9a, 0x68, 0xb9, 0x23, 0xf9, 0x85, + 0x2b, 0xce, 0x3e, 0xcf, 0x15, 0xbf, 0x0d, 0x0d, 0xac, 0xce, 0xb3, 0xb8, 0x2f, 0xba, 0x40, 0x1e, + 0xc0, 0x42, 0x5f, 0x7d, 0xcb, 0x52, 0xef, 0x64, 0x2f, 0x1b, 0x7d, 0x03, 0xd0, 0x7a, 0x0c, 0x75, + 0xad, 0xa0, 0x4b, 0x33, 0xf2, 0x1e, 0x34, 0x47, 0xf0, 0x3a, 0xaa, 0xd4, 0x35, 0x8f, 0x69, 0xcb, + 0x59, 0x30, 0x15, 0xf1, 0xd6, 0xf7, 0x4b, 0x30, 0x27, 0x5f, 0xdf, 0x92, 0xb7, 0x8d, 0x56, 0xe4, + 0xef, 0x18, 0xf3, 0xce, 0x1a, 0xf6, 0x8a, 0xc6, 0x74, 0x69, 0xc6, 0x5f, 0xb0, 0x06, 0x6e, 0xc3, + 0xfc, 0x53, 0x9a, 0xe2, 0x2b, 0x4e, 0x19, 0x15, 0xfa, 0xb3, 0xf5, 0x06, 0xd4, 0x44, 0x5b, 0xe4, + 0x0b, 0xc6, 0x2f, 0xbc, 0xd2, 0x69, 0xfd, 0x51, 0x09, 0xe6, 0xd5, 0x7b, 0x61, 0x72, 0x1f, 0x60, + 0x90, 0x26, 0x9f, 0x8e, 0x74, 0x7a, 0xb1, 0x80, 0xc8, 0xb7, 0x9c, 0x35, 0x21, 0x22, 0xaf, 0x78, + 0x1e, 0xc1, 0x8d, 0x3e, 0x8d, 0x69, 0xea, 0x89, 0x93, 0x80, 0xaa, 0x1d, 0xc8, 0xa7, 0x5f, 0x65, + 0x7c, 0xfa, 0xb5, 0x92, 0x73, 0x65, 0x05, 0x41, 0xbe, 0x01, 0x7b, 0xb1, 0xfc, 0xf2, 0x1a, 0x34, + 0x47, 0x5f, 0x25, 0x93, 0x15, 0x5d, 0x67, 0x97, 0xd5, 0x4c, 0xf9, 0xb1, 0xf1, 0x07, 0x33, 0xf2, + 0x1f, 0x14, 0xf0, 0xd2, 0x72, 0x09, 0x16, 0xc4, 0xdf, 0xfc, 0x05, 0x8c, 0x75, 0x4d, 0x93, 0xf2, + 0x2b, 0x49, 0xab, 0xa4, 0x49, 0xf9, 0x7d, 0x9c, 0x55, 0x26, 0xcb, 0xb0, 0x28, 0x48, 0xc6, 0x4d, + 0x94, 0x35, 0x43, 0x1a, 0x50, 0x45, 0x6d, 0xc9, 0xa0, 0x63, 0x55, 0xc8, 0x02, 0xd4, 0xc4, 0x17, + 0x5e, 0x62, 0x58, 0xb3, 0xb9, 0x12, 0x3c, 0xc6, 0x6f, 0xf5, 0xfb, 0xd6, 0x9c, 0x96, 0xff, 0x28, + 0x61, 0xb1, 0x35, 0xaf, 0xbf, 0x9e, 0xb0, 0x30, 0xb4, 0xaa, 0xe4, 0x06, 0x10, 0xf1, 0x35, 0xfa, + 0x3c, 0xd9, 0xaa, 0x11, 0x1b, 0x56, 0x4c, 0xba, 0x7e, 0x40, 0x6a, 0x01, 0x21, 0xd0, 0x14, 0x9c, + 0xe2, 0x7e, 0xce, 0xaa, 0x93, 0x55, 0xb8, 0x81, 0xb4, 0x89, 0xa7, 0x3e, 0x56, 0x43, 0xdb, 0x13, + 0x29, 0xdc, 0x5a, 0x20, 0x4d, 0x00, 0xf1, 0x25, 0x63, 0xca, 0x6a, 0xea, 0x6f, 0x39, 0xd3, 0xd6, + 0x22, 0x59, 0x84, 0x7a, 0xf1, 0xbd, 0x69, 0x59, 0xba, 0x81, 0xa3, 0x63, 0x6e, 0x2d, 0xe9, 0x91, + 0x31, 0x1e, 0xea, 0x5a, 0x2b, 0xe4, 0x25, 0xb0, 0x15, 0x7a, 0xe2, 0x6a, 0xc3, 0xba, 0xbe, 0xf1, + 0x2e, 0x34, 0xcc, 0xe7, 0xa8, 0xc2, 0xd6, 0xb1, 0xc7, 0xf9, 0xc9, 0x59, 0x9a, 0x0c, 0xfb, 0x67, + 0xd6, 0x35, 0x31, 0x94, 0xb9, 0x1d, 0xab, 0x44, 0xaa, 0x50, 0x79, 0xec, 0xf1, 0x33, 0xab, 0xbc, + 0xf1, 0x4d, 0x58, 0x1c, 0x7b, 0x86, 0x2c, 0x98, 0x9d, 0xa3, 0xce, 0x9e, 0x75, 0x4d, 0xfc, 0xda, + 0xdf, 0xea, 0x9e, 0x58, 0x25, 0xb2, 0x02, 0xd6, 0xe3, 0xf6, 0x87, 0x8f, 0xdd, 0x9d, 0xa3, 0xc3, + 0x63, 0x67, 0xaf, 0xdb, 0x6d, 0x1f, 0x75, 0xac, 0xf2, 0xc6, 0x7d, 0x80, 0xe2, 0x19, 0x1b, 0xa9, + 0xc1, 0x2c, 0x56, 0x72, 0x24, 0xf0, 0x84, 0x3d, 0xf9, 0xd8, 0x2a, 0x91, 0x3a, 0xcc, 0xab, 0xa5, + 0xdd, 0x2a, 0x6f, 0x3c, 0x84, 0x45, 0x75, 0x7c, 0x13, 0x7d, 0x7b, 0xc2, 0x62, 0xb1, 0xd4, 0x90, + 0x76, 0xe7, 0xe3, 0xad, 0x83, 0xf6, 0xae, 0xdb, 0xee, 0xec, 0xee, 0x7d, 0xcf, 0x7d, 0xd2, 0xee, + 0xec, 0x4a, 0x0d, 0x8f, 0x3b, 0xdd, 0x4f, 0xac, 0xd2, 0xc6, 0x29, 0xac, 0x4c, 0x7b, 0xa9, 0x4a, + 0x6e, 0xc3, 0x4d, 0x8d, 0xdc, 0x6d, 0x77, 0x4f, 0xb6, 0x3a, 0x3b, 0x7b, 0xee, 0xe1, 0xde, 0x89, + 0xd3, 0xde, 0xb1, 0xae, 0x91, 0x39, 0x28, 0x1f, 0xbc, 0x65, 0x95, 0xf0, 0xef, 0xa6, 0x55, 0x26, + 0x00, 0x73, 0x3b, 0x47, 0xdd, 0x76, 0x67, 0xcf, 0x9a, 0x11, 0x7e, 0xd4, 0xee, 0x74, 0xf6, 0x1c, + 0xf7, 0xd8, 0x39, 0xda, 0xfd, 0xee, 0xce, 0x89, 0x55, 0xd9, 0x78, 0xab, 0x78, 0x73, 0x8b, 0x5d, + 0x59, 0x01, 0xab, 0x1d, 0x3f, 0xf5, 0x42, 0x16, 0xe4, 0x34, 0xeb, 0x9a, 0xe8, 0xcb, 0x91, 0xcc, + 0xa7, 0x56, 0x69, 0xe3, 0x77, 0x8a, 0x07, 0xa1, 0x08, 0xb9, 0x09, 0xcb, 0xe6, 0xb7, 0x82, 0x5b, + 0xd7, 0xc6, 0x19, 0x9d, 0xa4, 0xeb, 0x27, 0x29, 0xb5, 0x4a, 0xe4, 0x16, 0x5c, 0x37, 0x19, 0x9f, + 0xb0, 0xec, 0x4c, 0xb2, 0xca, 0x1b, 0xbf, 0x2c, 0x41, 0x55, 0x3f, 0x0e, 0x2a, 0xe2, 0x29, 0xa6, + 0x29, 0x7a, 0xfa, 0x35, 0x72, 0x1d, 0x96, 0x30, 0x32, 0x68, 0x2f, 0x3b, 0x1a, 0x66, 0x8a, 0x5c, + 0xd2, 0x1e, 0xe5, 0xb0, 0xfe, 0x99, 0x41, 0x2f, 0x13, 0x0b, 0x1a, 0x32, 0xfc, 0xe4, 0x13, 0x0f, + 0x6b, 0x46, 0x74, 0x10, 0xa3, 0x2f, 0xce, 0x58, 0x4e, 0xad, 0x88, 0x16, 0x8d, 0xa8, 0xcd, 0x59, + 0xb3, 0xe4, 0x0e, 0xdc, 0xd2, 0x80, 0x49, 0xf6, 0xdc, 0xc6, 0x1a, 0x34, 0xcc, 0x47, 0x49, 0xda, + 0xa2, 0x70, 0x32, 0xd9, 0xe4, 0x8d, 0x6f, 0xc0, 0xd2, 0xc4, 0x03, 0x08, 0x31, 0x3d, 0xed, 0x8e, + 0x1c, 0xd9, 0xc3, 0x76, 0xc7, 0x3d, 0xdc, 0xfa, 0x9e, 0x55, 0x12, 0xd8, 0xed, 0x83, 0xa3, 0xa3, + 0x43, 0x77, 0xbf, 0x7d, 0x70, 0xb2, 0xe7, 0x58, 0xe5, 0x8d, 0x8d, 0x31, 0x2c, 0xba, 0xa9, 0x70, + 0xb7, 0xa3, 0x9d, 0xad, 0x03, 0xeb, 0x9a, 0x98, 0xdd, 0x0f, 0x0f, 0x8e, 0xb6, 0xb7, 0x0e, 0xac, + 0xd2, 0xc6, 0x36, 0x2c, 0x4d, 0x5c, 0xde, 0x8a, 0x78, 0xd8, 0x4f, 0x52, 0x9f, 0x4a, 0x92, 0x74, + 0xaf, 0xad, 0x61, 0x96, 0x58, 0x25, 0x11, 0xf4, 0xc8, 0x92, 0x69, 0x85, 0xc5, 0x7d, 0xab, 0xbc, + 0xf1, 0x6d, 0x58, 0x1c, 0xdb, 0x42, 0x89, 0x00, 0xda, 0x4f, 0xc2, 0x30, 0x79, 0x26, 0x24, 0x30, + 0x9e, 0x8e, 0x53, 0xea, 0xd3, 0x40, 0x7c, 0x96, 0x44, 0xac, 0xef, 0xe0, 0xf5, 0x5a, 0xe6, 0x24, + 0xcf, 0xac, 0xf2, 0xc6, 0x11, 0x58, 0xe3, 0xdb, 0x16, 0x32, 0x0f, 0x33, 0xed, 0x38, 0xb3, 0xae, + 0x89, 0x86, 0xef, 0x87, 0x89, 0x97, 0xc9, 0xe8, 0xd8, 0xa5, 0x3e, 0x8b, 0xbc, 0xd0, 0x2a, 0x8b, + 0x74, 0xb2, 0xeb, 0x65, 0xf4, 0x84, 0x45, 0x54, 0xa6, 0xc2, 0xdd, 0xa1, 0xbc, 0xf5, 0xb3, 0x2a, + 0x22, 0x72, 0xc6, 0x36, 0x31, 0xa2, 0x0b, 0xe2, 0xec, 0x20, 0xbb, 0x8f, 0xd6, 0xb8, 0x55, 0xc2, + 0xa1, 0x10, 0x6b, 0x1b, 0xb7, 0xca, 0xdb, 0x5f, 0xfd, 0xd5, 0x6f, 0xee, 0x96, 0xfe, 0xf5, 0x37, + 0x77, 0x4b, 0xff, 0xfe, 0x9b, 0xbb, 0xa5, 0x1f, 0xfd, 0xc7, 0xdd, 0x6b, 0x70, 0xdd, 0x4f, 0xa2, + 0xfb, 0x62, 0xdd, 0xf3, 0xbd, 0xc1, 0xfd, 0x8c, 0x05, 0xa7, 0xb8, 0x12, 0x1c, 0x97, 0xfe, 0x27, + 0x00, 0x00, 0xff, 0xff, 0x95, 0xa1, 0x7e, 0xb9, 0xc1, 0x36, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index 8d2b7a90..ad8c56a1 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -182,6 +182,9 @@ message FTSQueryInfo { // Distinguish match_word, match_expression, match_prefix, match_regexp optional ScalarFuncSig query_func = 20 [(gogoproto.nullable) = false]; + + // Filter pushed down to tici + repeated Expr match_expr = 21 [(gogoproto.nullable) = false]; } message TableScan { From fec16a8c7c01ba21fe1942bc9a283ada0d08ac77 Mon Sep 17 00:00:00 2001 From: Yiding Cui Date: Tue, 27 Jan 2026 15:09:46 +0900 Subject: [PATCH 7/8] expression: add FTS_MATCH_PHRASE (#389) (cherry picked from commit 4768c71070e41ca8d986cfde0d8e1aadebff7c77) --- go-tipb/expression.pb.go | 741 ++++++++++++++++++++------------------- proto/expression.proto | 1 + scripts/proto.lock | 4 + 3 files changed, 377 insertions(+), 369 deletions(-) diff --git a/go-tipb/expression.pb.go b/go-tipb/expression.pb.go index de482d56..871b850c 100644 --- a/go-tipb/expression.pb.go +++ b/go-tipb/expression.pb.go @@ -631,6 +631,7 @@ const ( ScalarFuncSig_FTSMatchExpression ScalarFuncSig = 5202 ScalarFuncSig_FTSMatchPrefix ScalarFuncSig = 5203 ScalarFuncSig_FTSMatchRegexp ScalarFuncSig = 5204 + ScalarFuncSig_FTSMatchPhrase ScalarFuncSig = 5205 // time ScalarFuncSig_DateFormatSig ScalarFuncSig = 6001 ScalarFuncSig_DateLiteral ScalarFuncSig = 6002 @@ -1271,6 +1272,7 @@ var ScalarFuncSig_name = map[int32]string{ 5202: "FTSMatchExpression", 5203: "FTSMatchPrefix", 5204: "FTSMatchRegexp", + 5205: "FTSMatchPhrase", 6001: "DateFormatSig", 6002: "DateLiteral", 6003: "DateDiff", @@ -1908,6 +1910,7 @@ var ScalarFuncSig_value = map[string]int32{ "FTSMatchExpression": 5202, "FTSMatchPrefix": 5203, "FTSMatchRegexp": 5204, + "FTSMatchPhrase": 5205, "DateFormatSig": 6001, "DateLiteral": 6002, "DateDiff": 6003, @@ -3588,373 +3591,373 @@ var ( func init() { proto.RegisterFile("expression.proto", fileDescriptorExpression) } var fileDescriptorExpression = []byte{ - // 5880 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x7b, 0x67, 0x78, 0x24, 0xc5, - 0xb9, 0x2e, 0xb3, 0x81, 0xdd, 0xed, 0x4d, 0x45, 0xb3, 0x8b, 0x86, 0x35, 0x5e, 0x49, 0xc8, 0xf7, - 0x4a, 0xc6, 0xf7, 0x6a, 0x16, 0x81, 0x47, 0xfe, 0x71, 0xd2, 0xac, 0x12, 0xe3, 0x23, 0x69, 0xb5, - 0x9a, 0x91, 0xf0, 0xf9, 0xc5, 0xd3, 0x9a, 0x29, 0x8d, 0xda, 0xcc, 0x74, 0x0f, 0xdd, 0x35, 0xbb, - 0x92, 0x4f, 0x78, 0xc8, 0x39, 0xdb, 0xc0, 0x92, 0x37, 0x12, 0x9d, 0x33, 0x39, 0xda, 0xec, 0x12, - 0x6c, 0x30, 0x39, 0xc3, 0x02, 0x26, 0xdb, 0x60, 0x72, 0xf4, 0x79, 0xbe, 0xb7, 0xc2, 0x74, 0x8f, - 0xe4, 0x5f, 0xea, 0x7a, 0xbf, 0xf4, 0xd6, 0x57, 0x5f, 0x55, 0x57, 0x55, 0x8f, 0x2c, 0xc6, 0xa7, - 0xab, 0x01, 0x0f, 0x43, 0xd7, 0xf7, 0x3a, 0xab, 0x81, 0x2f, 0x7c, 0x7b, 0x81, 0x70, 0xab, 0x13, - 0x6b, 0x56, 0x54, 0xb8, 0x70, 0x8a, 0x8e, 0x70, 0x24, 0xba, 0x66, 0x55, 0xc9, 0x2f, 0xf9, 0x78, - 0x4c, 0xd1, 0x93, 0x44, 0x0f, 0x7e, 0x3b, 0x61, 0x2d, 0xe9, 0x77, 0x79, 0xb9, 0x98, 0x9f, 0xa9, - 0x72, 0x7b, 0x95, 0x35, 0x4f, 0x54, 0x93, 0x89, 0x96, 0x44, 0xc7, 0xc2, 0xf5, 0x0b, 0x76, 0x3f, - 0xd7, 0xbc, 0xcf, 0xe8, 0x3c, 0x51, 0xb5, 0x93, 0xd6, 0x82, 0xc9, 0xb2, 0x53, 0x4a, 0xce, 0x6b, - 0x49, 0x74, 0x2c, 0x57, 0x38, 0x10, 0x29, 0xe1, 0x5e, 0x72, 0x7e, 0xc4, 0x02, 0x88, 0xbd, 0xd6, - 0x5a, 0x54, 0xe4, 0x05, 0xb7, 0xe2, 0x94, 0x93, 0x0b, 0x22, 0x42, 0x0d, 0x92, 0xbc, 0xe0, 0x97, - 0xcb, 0x8e, 0xe0, 0xc9, 0x85, 0x51, 0xb9, 0x02, 0x21, 0x9f, 0x72, 0x82, 0x90, 0x8b, 0xe4, 0xbe, - 0x2d, 0x89, 0x8e, 0x25, 0x46, 0x2e, 0x41, 0x7b, 0x8d, 0xb5, 0x90, 0x97, 0x79, 0x25, 0x4c, 0x2e, - 0x6a, 0x99, 0x6f, 0xa4, 0x12, 0x22, 0x99, 0x13, 0x04, 0xce, 0x4c, 0x72, 0x71, 0x4b, 0xa2, 0x63, - 0xb1, 0x96, 0x01, 0x3a, 0xf8, 0x9d, 0x79, 0xd6, 0x82, 0xbe, 0xe9, 0x6a, 0x60, 0x7f, 0xcd, 0x74, - 0x75, 0x45, 0xd7, 0x8a, 0x4e, 0xca, 0x58, 0x27, 0xe1, 0x94, 0x86, 0x48, 0xd7, 0x99, 0x35, 0x7f, - 0x93, 0x53, 0x46, 0xcf, 0x97, 0x8d, 0xd2, 0xa3, 0xfd, 0x7f, 0xad, 0xc5, 0x85, 0x29, 0xb7, 0x5c, - 0x0c, 0xd0, 0xed, 0xf9, 0x1d, 0x4b, 0xbb, 0xac, 0xba, 0xf5, 0xa8, 0x91, 0xd9, 0xdf, 0xb0, 0xe6, - 0x87, 0x6e, 0x09, 0x9d, 0x5f, 0xd1, 0xb5, 0xbf, 0x54, 0xc9, 0x15, 0x9c, 0xb2, 0x13, 0xf4, 0xd7, - 0xbc, 0x42, 0xce, 0x2d, 0xa9, 0x28, 0xa4, 0x65, 0x77, 0x5a, 0xd6, 0x24, 0x0d, 0xc2, 0x51, 0x62, - 0xa6, 0x2a, 0x13, 0xb2, 0xb4, 0x6b, 0xa5, 0xb4, 0x31, 0x83, 0x33, 0xba, 0x64, 0xd2, 0x8c, 0x53, - 0x8b, 0xb5, 0x2c, 0xa8, 0x7a, 0x47, 0x39, 0x41, 0x29, 0x3c, 0x8a, 0xf2, 0x4f, 0x29, 0x5a, 0x3e, - 0x6a, 0x05, 0x55, 0x2f, 0x13, 0x94, 0xc2, 0x41, 0xee, 0xd9, 0xed, 0xd6, 0xb2, 0x29, 0x27, 0x3c, - 0xaa, 0xe8, 0x86, 0xc2, 0xf5, 0x0a, 0x22, 0xb9, 0x28, 0x92, 0x8a, 0xa5, 0x53, 0x4e, 0xd8, 0xab, - 0x04, 0x76, 0xbb, 0xb5, 0xd8, 0x0f, 0x8a, 0x3c, 0x38, 0x6a, 0x82, 0xf2, 0x45, 0xfd, 0x59, 0x26, - 0x03, 0xaf, 0x9f, 0xc9, 0x0a, 0x5e, 0x19, 0x5d, 0x04, 0xe9, 0xfa, 0x19, 0xbb, 0xdb, 0x5a, 0xea, - 0x94, 0x4a, 0x44, 0x7e, 0xc8, 0x2f, 0xf2, 0xe4, 0x12, 0x74, 0x6c, 0xb5, 0xd4, 0xcd, 0x48, 0x81, - 0x70, 0x7d, 0x8f, 0x84, 0xa3, 0x51, 0xcd, 0x83, 0xbf, 0x61, 0x2d, 0x1a, 0xad, 0x7a, 0x48, 0x7a, - 0x8b, 0xb5, 0x90, 0xaa, 0x35, 0x4c, 0x26, 0x66, 0x65, 0x4e, 0x0a, 0x0e, 0x2e, 0x5b, 0xfb, 0xca, - 0xc0, 0xf6, 0x5a, 0x6b, 0x01, 0x41, 0x18, 0xa2, 0xb8, 0x2a, 0x70, 0xaa, 0xbd, 0x22, 0x0f, 0x0b, - 0x18, 0x1b, 0xdd, 0x33, 0x20, 0x76, 0x87, 0xb5, 0x98, 0xb2, 0x03, 0xeb, 0xf9, 0xb0, 0x5e, 0x2e, - 0xad, 0x15, 0x8d, 0xd1, 0x45, 0x81, 0x7c, 0x38, 0xe4, 0xe5, 0x85, 0xd6, 0x62, 0x3d, 0xea, 0xf6, - 0x62, 0x6b, 0xc1, 0x70, 0xad, 0x5c, 0x66, 0xfb, 0xd8, 0x4b, 0xac, 0x85, 0x59, 0x4f, 0xa4, 0x0f, - 0x67, 0x09, 0xdb, 0xb2, 0xf6, 0x1d, 0x73, 0xf1, 0x3c, 0xcf, 0x5e, 0x6a, 0x2d, 0xea, 0x2f, 0xfb, - 0x8e, 0x38, 0xac, 0x8b, 0xcd, 0x37, 0x8d, 0xf4, 0xe1, 0x6c, 0x01, 0x69, 0xe5, 0x44, 0xe0, 0x7a, - 0x25, 0xb6, 0x90, 0x8c, 0xd7, 0xcf, 0x08, 0x1e, 0xb2, 0x7d, 0xed, 0x65, 0xd6, 0xe2, 0xa1, 0x99, - 0xf0, 0x98, 0xf2, 0x7a, 0x57, 0x30, 0x6e, 0x33, 0x6b, 0x19, 0x5a, 0xbd, 0x72, 0x0a, 0xb0, 0x49, - 0x7b, 0x3f, 0x6b, 0xb9, 0x44, 0x6a, 0x81, 0x43, 0xb9, 0x63, 0x25, 0x7b, 0xb9, 0xb5, 0x04, 0x50, - 0x9f, 0x57, 0xab, 0xb0, 0x29, 0xe3, 0xe1, 0x08, 0x3e, 0xcd, 0x5c, 0xd3, 0xca, 0x71, 0xc1, 0xbe, - 0x6b, 0x54, 0xf3, 0x6e, 0x85, 0xb3, 0xa3, 0x4d, 0xf3, 0xdb, 0xa1, 0xef, 0xb1, 0xb2, 0xbd, 0xda, - 0xda, 0x2f, 0xef, 0xf6, 0xae, 0x1f, 0xe7, 0x05, 0xe1, 0x07, 0x9a, 0xf6, 0x8c, 0xbd, 0xc2, 0x5a, - 0x32, 0xee, 0x94, 0x6b, 0x7c, 0xd0, 0x0d, 0x05, 0xbb, 0x28, 0x41, 0xed, 0x1e, 0xbf, 0x5c, 0xab, - 0x78, 0xa3, 0x7c, 0x92, 0xed, 0xa1, 0xfe, 0x2e, 0xec, 0xf1, 0x6b, 0x9e, 0x60, 0x37, 0x34, 0xd9, - 0x8b, 0xad, 0xf9, 0xb9, 0x5a, 0x85, 0xdd, 0x88, 0xa7, 0xcc, 0xa6, 0x12, 0xbb, 0x09, 0x4f, 0x43, - 0xae, 0xc7, 0x6e, 0x96, 0x4f, 0xce, 0x34, 0xbb, 0xa5, 0x89, 0x6c, 0xfa, 0xdd, 0x20, 0x14, 0xec, - 0xd6, 0x26, 0x9b, 0x59, 0x4b, 0x07, 0x02, 0xbf, 0x56, 0xed, 0xf1, 0xbd, 0x82, 0x23, 0xd8, 0x6d, - 0x4d, 0xf6, 0x4a, 0xcb, 0xca, 0x94, 0x4a, 0x47, 0xad, 0x77, 0x45, 0xc6, 0x2b, 0xb2, 0xdb, 0x9b, - 0x28, 0xa4, 0x02, 0x36, 0x04, 0xec, 0x8e, 0xa8, 0xc2, 0x77, 0xfc, 0x80, 0xdd, 0x29, 0xe3, 0x8a, - 0x22, 0xbb, 0xab, 0xc9, 0x5e, 0x4a, 0x79, 0x2d, 0x16, 0xf9, 0x26, 0x76, 0x37, 0xec, 0x64, 0x63, - 0xc4, 0xaf, 0xb2, 0xdf, 0xc1, 0x4e, 0xb6, 0x73, 0x4e, 0xa5, 0xca, 0x7e, 0x0f, 0xed, 0x71, 0x27, - 0x20, 0xe9, 0x3d, 0x4d, 0xf6, 0x32, 0x6b, 0xd1, 0xb8, 0x13, 0x40, 0xb4, 0xbb, 0xc9, 0x5e, 0x6e, - 0x2d, 0x1e, 0x77, 0x02, 0xd7, 0xf1, 0x0a, 0x9c, 0xed, 0x69, 0xb2, 0xf7, 0xb3, 0x96, 0x51, 0x9a, - 0x32, 0xb4, 0x24, 0x64, 0x4a, 0x25, 0x76, 0x6f, 0x93, 0x6d, 0x5b, 0xcb, 0x09, 0xda, 0x30, 0xf1, - 0x5d, 0x5e, 0x10, 0x84, 0xdd, 0xd7, 0x64, 0x27, 0xad, 0xfd, 0x33, 0xd5, 0x6a, 0xe0, 0x4f, 0x23, - 0x25, 0x7a, 0xca, 0xb0, 0xfb, 0xc1, 0x65, 0xd4, 0xdf, 0x3c, 0x5c, 0xab, 0x4c, 0xf0, 0x80, 0x6d, - 0x6b, 0xb6, 0x97, 0x58, 0x0b, 0x46, 0x1d, 0xef, 0x68, 0xb6, 0xbd, 0x99, 0x44, 0xbd, 0xdc, 0x0b, - 0x39, 0xda, 0x3b, 0x9a, 0x29, 0x74, 0x4f, 0xad, 0xc2, 0xc9, 0x9a, 0xed, 0x6c, 0xa6, 0x04, 0x8d, - 0xf0, 0xa0, 0xc0, 0x3d, 0x01, 0x85, 0x5d, 0xcd, 0x94, 0xbe, 0x61, 0xe1, 0x96, 0x39, 0xbb, 0x0a, - 0x7e, 0x06, 0xb9, 0x53, 0x64, 0x57, 0x37, 0x53, 0x16, 0x06, 0x9d, 0x12, 0xbb, 0xa6, 0x99, 0x3a, - 0x8a, 0xfc, 0x62, 0xe0, 0xd8, 0xb5, 0x08, 0x31, 0xe8, 0xe8, 0xf6, 0x75, 0x08, 0x31, 0x2c, 0xa6, - 0x64, 0xf3, 0x7a, 0xe8, 0xd7, 0x57, 0x1a, 0x76, 0xee, 0xf0, 0x21, 0x6f, 0x4c, 0x58, 0xcb, 0x63, - 0x6b, 0x8f, 0xbd, 0xd2, 0x5a, 0x3a, 0xe6, 0x85, 0x55, 0x5e, 0x70, 0x27, 0x5d, 0x5e, 0x64, 0xfb, - 0x50, 0x71, 0xf6, 0x38, 0xa1, 0xc8, 0x7a, 0x22, 0x13, 0x66, 0x3d, 0xc1, 0x12, 0x54, 0x9c, 0x06, - 0x19, 0xe5, 0x4e, 0x99, 0xcd, 0xb3, 0xf7, 0xb7, 0x56, 0x1a, 0x48, 0xd5, 0xfb, 0x7c, 0x7b, 0x95, - 0xc5, 0x0c, 0xa8, 0x4b, 0x7b, 0x41, 0xcc, 0x1a, 0x05, 0xba, 0x90, 0x2a, 0xb2, 0xae, 0xa8, 0x2b, - 0x7e, 0xdf, 0x98, 0x26, 0x6a, 0x77, 0x91, 0x86, 0x28, 0xaa, 0x64, 0x63, 0xd9, 0xb6, 0xb5, 0xa2, - 0x0e, 0x81, 0xce, 0x52, 0x1d, 0x59, 0x62, 0x8a, 0xcf, 0x32, 0x1d, 0x46, 0xa2, 0x9a, 0xd0, 0xf2, - 0xb8, 0x03, 0x30, 0x5a, 0x61, 0x1f, 0x60, 0xd9, 0x11, 0x55, 0x4d, 0x69, 0x65, 0x5c, 0x17, 0x9c, - 0x98, 0x0e, 0xa6, 0x1c, 0x4a, 0x5a, 0xab, 0x74, 0x30, 0x83, 0x82, 0xd9, 0x6a, 0xbb, 0xc9, 0xda, - 0x3f, 0x06, 0x2b, 0x72, 0x07, 0xd8, 0x49, 0x6b, 0x55, 0x4c, 0xa0, 0xf9, 0x35, 0xcd, 0xf2, 0x04, - 0x8a, 0x49, 0xfb, 0x40, 0x6b, 0x75, 0xdc, 0x40, 0xb3, 0x3c, 0x70, 0x96, 0x05, 0x88, 0xae, 0xd1, - 0x83, 0x24, 0x43, 0x4a, 0x9e, 0x6b, 0x35, 0x7b, 0x0d, 0x82, 0x66, 0xb3, 0xee, 0xbf, 0x46, 0x15, - 0xcb, 0x16, 0x4d, 0x5f, 0xe3, 0x9a, 0x64, 0x6b, 0xa3, 0x1b, 0x70, 0x3c, 0x58, 0x77, 0xca, 0xa8, - 0x6b, 0x8a, 0x6d, 0x8d, 0xfa, 0x60, 0xf8, 0x35, 0x3d, 0xbc, 0x64, 0x2d, 0xf9, 0x75, 0xe8, 0x8c, - 0x4b, 0x08, 0xec, 0xbe, 0xae, 0x8d, 0x25, 0xa6, 0xb8, 0x1d, 0xa2, 0x7b, 0x2d, 0x51, 0xcd, 0xec, - 0x1b, 0x71, 0x07, 0xe0, 0xf5, 0xff, 0x74, 0xf7, 0x94, 0xaa, 0x66, 0xf5, 0xff, 0xe3, 0xba, 0xe0, - 0xd4, 0x69, 0x92, 0xa9, 0xb4, 0x24, 0xaf, 0x2e, 0xed, 0xa2, 0x0e, 0x83, 0xdb, 0x61, 0x66, 0x1c, - 0x0d, 0xae, 0xf8, 0x1d, 0x6e, 0x06, 0xcc, 0x48, 0x34, 0xc7, 0x6f, 0xce, 0x76, 0x06, 0x9e, 0x69, - 0x7b, 0x8d, 0x75, 0x40, 0x83, 0x89, 0xe6, 0xda, 0x3d, 0xdb, 0x06, 0x7c, 0xbf, 0xa5, 0x73, 0x88, - 0x55, 0x0c, 0x5c, 0xff, 0x49, 0x77, 0x4b, 0x42, 0xe0, 0xf9, 0xcf, 0x3a, 0x87, 0x12, 0x53, 0x1c, - 0xff, 0x45, 0x77, 0x56, 0xa2, 0x9a, 0xdf, 0xbf, 0xc6, 0x1d, 0x80, 0xdb, 0xbf, 0xe9, 0xf8, 0x4a, - 0x55, 0xf3, 0xca, 0xc4, 0x75, 0xc1, 0x69, 0x3d, 0x2d, 0x6d, 0x3d, 0xbe, 0x53, 0xe6, 0x61, 0x81, - 0x13, 0xa3, 0xd7, 0x5b, 0x68, 0x9d, 0xd5, 0x08, 0x08, 0xbd, 0xd1, 0x62, 0xaf, 0xb2, 0x56, 0x6a, - 0x48, 0x47, 0x7e, 0xb3, 0xc5, 0xde, 0xdf, 0x5a, 0xa1, 0x51, 0xc5, 0xf2, 0xad, 0x98, 0x35, 0xd8, - 0xbc, 0xdd, 0x62, 0xaf, 0xb6, 0x98, 0xb1, 0xd6, 0x64, 0xfe, 0x12, 0xd3, 0x04, 0x97, 0xbf, 0xb6, - 0xd0, 0x6b, 0x78, 0x30, 0x4f, 0x34, 0x8a, 0xf4, 0x76, 0x1e, 0xcc, 0x23, 0x3e, 0xa7, 0xb7, 0xe4, - 0x60, 0xbe, 0xfe, 0x06, 0x5e, 0x66, 0x2d, 0x1e, 0xcc, 0xab, 0x88, 0x25, 0xa9, 0x88, 0x50, 0x53, - 0xf6, 0x0a, 0xcb, 0x1a, 0xcc, 0x9b, 0x18, 0xae, 0x94, 0xc1, 0xf9, 0x77, 0xe1, 0xbb, 0x8f, 0x7c, - 0x7b, 0x80, 0xfb, 0xe0, 0xdb, 0x87, 0xef, 0x3e, 0xed, 0xbb, 0x0a, 0xdf, 0x7d, 0xca, 0xf7, 0x31, - 0x52, 0x11, 0xbe, 0x03, 0xf8, 0xee, 0x33, 0xbe, 0x43, 0x29, 0x83, 0x6f, 0x41, 0xbe, 0x07, 0xc0, - 0x7b, 0x9a, 0xe0, 0x01, 0xc9, 0x7b, 0x86, 0x7c, 0x0f, 0x18, 0xde, 0xdf, 0x23, 0xdf, 0x03, 0x9a, - 0xf7, 0x7f, 0x4a, 0x45, 0xf8, 0xfe, 0x2f, 0xf2, 0x3d, 0x50, 0xe7, 0xfd, 0xdf, 0x52, 0x06, 0xdf, - 0xff, 0x23, 0x5f, 0xce, 0xdc, 0x11, 0x1c, 0xcb, 0x2d, 0xfb, 0x08, 0x89, 0xd3, 0x08, 0x02, 0x7d, - 0x8c, 0x01, 0xd2, 0x90, 0x8e, 0xf7, 0x09, 0x06, 0x48, 0xa3, 0x2a, 0xec, 0xa7, 0x31, 0x6b, 0x44, - 0xff, 0xac, 0x85, 0x5e, 0x45, 0x83, 0x5c, 0x2e, 0xe7, 0xec, 0xf3, 0x16, 0xbc, 0xa9, 0xb8, 0x5a, - 0x4a, 0xd9, 0x17, 0xb0, 0x40, 0x5b, 0x7b, 0xfe, 0xb2, 0x85, 0x48, 0x01, 0x52, 0x6e, 0xff, 0x5e, - 0x37, 0x82, 0xcf, 0x63, 0x5b, 0x49, 0x23, 0xeb, 0x09, 0x1e, 0x6c, 0x72, 0xca, 0xe4, 0xf6, 0xb8, - 0x56, 0x72, 0xa3, 0x11, 0x78, 0x3e, 0xbe, 0x95, 0xde, 0xa2, 0x03, 0x18, 0x93, 0xe3, 0x13, 0xb4, - 0x11, 0x18, 0x90, 0x83, 0x72, 0x02, 0x76, 0x38, 0x03, 0x66, 0x54, 0x4e, 0x4c, 0x10, 0xc3, 0x01, - 0x3d, 0x2c, 0x27, 0x29, 0x5d, 0x44, 0x3a, 0x39, 0x41, 0x6f, 0xce, 0x81, 0xfa, 0xc0, 0x9c, 0xa2, - 0xa4, 0xc8, 0xde, 0xa9, 0xd8, 0x1b, 0xf5, 0x6d, 0xa4, 0x10, 0x67, 0x42, 0xd0, 0xb7, 0x11, 0x21, - 0xce, 0x42, 0x88, 0xbe, 0x8d, 0x3a, 0xc4, 0xd9, 0x08, 0xd1, 0xb7, 0x51, 0x85, 0x38, 0x47, 0xe9, - 0x22, 0xc4, 0xb9, 0x08, 0xd1, 0xb7, 0xd1, 0x84, 0x38, 0x4f, 0x49, 0x11, 0xe2, 0x7c, 0x84, 0x18, - 0x46, 0x2f, 0x2e, 0x84, 0x60, 0x58, 0xf6, 0x42, 0xee, 0xd3, 0x86, 0x4d, 0x2f, 0xb6, 0x20, 0xc4, - 0xb0, 0xee, 0xc5, 0xc5, 0x4a, 0x17, 0x21, 0x2e, 0x41, 0x88, 0xe1, 0x7a, 0x2f, 0x2e, 0x55, 0x52, - 0x84, 0xb8, 0x4c, 0x7a, 0xaa, 0x95, 0xcb, 0xb2, 0x27, 0x5b, 0xa5, 0x36, 0xda, 0x08, 0xb5, 0x2d, - 0x41, 0x3b, 0x21, 0x09, 0xe8, 0x70, 0xdb, 0x69, 0x33, 0xb0, 0x4c, 0x62, 0x2a, 0xe4, 0x8e, 0x88, - 0x1d, 0xc2, 0xee, 0x4c, 0x50, 0x89, 0x28, 0x3b, 0x1d, 0x7a, 0x57, 0x44, 0x0b, 0xe1, 0xaf, 0x02, - 0xf1, 0x91, 0x72, 0x4d, 0xae, 0x4f, 0xbb, 0x13, 0xd8, 0x0e, 0x95, 0x6b, 0x66, 0x11, 0xda, 0x93, - 0xa0, 0x8d, 0x1b, 0x21, 0xc4, 0xee, 0x3e, 0xb0, 0x1d, 0x72, 0x3d, 0xa5, 0x7f, 0x3f, 0x88, 0xa0, - 0xad, 0x0d, 0x1e, 0x80, 0x47, 0x40, 0x64, 0xf1, 0x47, 0xa9, 0x51, 0x2b, 0x0b, 0xb7, 0x5a, 0x9e, - 0x81, 0xd1, 0x83, 0x09, 0x2a, 0x69, 0x0d, 0x69, 0xbb, 0x87, 0x10, 0x5a, 0xa3, 0x64, 0xfa, 0x27, - 0x90, 0xed, 0x75, 0x37, 0xb9, 0x45, 0xb9, 0x58, 0x3d, 0x8c, 0x54, 0x48, 0x40, 0x9b, 0x3d, 0x92, - 0x50, 0xb5, 0x27, 0x61, 0xb2, 0x7b, 0x34, 0x41, 0xab, 0x92, 0x81, 0xb4, 0xe6, 0x63, 0xe8, 0xc9, - 0x90, 0x5f, 0x84, 0xaf, 0xc7, 0xe1, 0x7c, 0xc8, 0x2f, 0x6a, 0xf1, 0x13, 0x18, 0x95, 0x21, 0xbf, - 0x48, 0x2e, 0x9e, 0x4c, 0xd0, 0x56, 0x33, 0x42, 0x66, 0xcc, 0x0b, 0xdd, 0x92, 0xc7, 0x8b, 0xec, - 0xa9, 0x84, 0x7d, 0x90, 0xd5, 0xa4, 0xf2, 0xa1, 0x51, 0x23, 0x7d, 0x3a, 0x61, 0xaf, 0xb1, 0x56, - 0x37, 0x48, 0x73, 0x52, 0xf6, 0x4c, 0x54, 0x96, 0x8b, 0xdb, 0x3d, 0x8b, 0x78, 0x31, 0x99, 0xb2, - 0x7a, 0x2e, 0x61, 0x7f, 0xc5, 0x3a, 0x40, 0xd2, 0x9a, 0x15, 0xee, 0xf9, 0x84, 0x7d, 0xa0, 0xb5, - 0x2a, 0x2e, 0x54, 0x76, 0x2f, 0x44, 0x44, 0x0d, 0xc1, 0x5e, 0x4c, 0xd8, 0x4d, 0x96, 0x1d, 0x15, - 0x29, 0x9b, 0xbd, 0x09, 0xfb, 0xab, 0x56, 0x52, 0x0f, 0xdd, 0xac, 0x68, 0x2f, 0x49, 0x2a, 0x0d, - 0x62, 0x65, 0xfb, 0x72, 0x4c, 0xd8, 0x10, 0xf1, 0x15, 0x49, 0x26, 0x26, 0x54, 0x76, 0x7f, 0x4e, - 0xd8, 0x6d, 0xd6, 0x5a, 0x2d, 0xea, 0xf7, 0x83, 0x42, 0xdd, 0xce, 0xd8, 0xbf, 0x9a, 0xb0, 0x5b, - 0xad, 0x83, 0xe6, 0x56, 0x52, 0x7e, 0x5e, 0x9b, 0x43, 0xa5, 0x81, 0xc5, 0xeb, 0x50, 0x89, 0x96, - 0xca, 0xac, 0x40, 0x6f, 0x24, 0xec, 0x66, 0x6b, 0xcd, 0x5c, 0x2a, 0x2a, 0xcc, 0x9b, 0x48, 0x51, - 0x54, 0x21, 0xd6, 0x9b, 0xb7, 0x66, 0xd9, 0x37, 0x70, 0x78, 0x1b, 0x55, 0x96, 0x99, 0xc0, 0xdc, - 0xf8, 0x15, 0xa3, 0x8a, 0xcc, 0x4c, 0x84, 0x63, 0xd4, 0xfa, 0xb5, 0x6e, 0xa1, 0x3e, 0x7f, 0xc3, - 0x70, 0x0c, 0x9b, 0x30, 0xf3, 0xea, 0xb7, 0x0c, 0x2f, 0x55, 0xee, 0xd2, 0x92, 0x9b, 0xf7, 0x7b, - 0x79, 0x81, 0xdd, 0x10, 0x87, 0xc8, 0xc9, 0x8d, 0x06, 0xea, 0xe5, 0x05, 0x09, 0xdd, 0x14, 0x87, - 0xc8, 0xf0, 0x66, 0x86, 0x43, 0x10, 0x77, 0xe5, 0x62, 0x7d, 0x0b, 0xa3, 0x79, 0xd5, 0x5f, 0xf6, - 0xfd, 0xc0, 0xf8, 0xbe, 0xb5, 0x01, 0x23, 0x4f, 0xb7, 0xd5, 0x31, 0xe3, 0xfd, 0xf6, 0x06, 0x8c, - 0x6c, 0xef, 0x60, 0xb4, 0x4a, 0x00, 0x83, 0xff, 0x3b, 0x99, 0x3c, 0x9e, 0xd5, 0x3c, 0x39, 0xf7, - 0xf6, 0x20, 0x3c, 0xda, 0xe4, 0xe2, 0xde, 0x7a, 0x93, 0xac, 0xef, 0x63, 0xf6, 0x01, 0xd6, 0x7e, - 0x68, 0x1e, 0xe9, 0x8a, 0xa9, 0xfe, 0xc0, 0x29, 0xc8, 0xb5, 0x86, 0xd1, 0xb4, 0x8e, 0xe1, 0x64, - 0xfd, 0xc0, 0x6c, 0x98, 0xbc, 0xfc, 0x01, 0xd9, 0x1c, 0xf4, 0x4b, 0x87, 0x66, 0x82, 0x12, 0x7b, - 0x18, 0x21, 0x06, 0xfd, 0x52, 0x57, 0x26, 0x28, 0x85, 0xec, 0x11, 0x86, 0x73, 0x9d, 0x5f, 0xea, - 0x62, 0x8f, 0x32, 0x5a, 0xe2, 0x49, 0x6f, 0x1d, 0x7b, 0x8c, 0xa9, 0x63, 0x63, 0x91, 0x3d, 0xce, - 0xa8, 0x62, 0xe9, 0x91, 0x9c, 0xe6, 0x38, 0x2f, 0xe2, 0xc0, 0x37, 0xc0, 0x3d, 0xf6, 0x04, 0xa3, - 0x93, 0xe0, 0x88, 0xbf, 0x99, 0x3d, 0x09, 0xfd, 0x1e, 0xdf, 0xdb, 0xc4, 0x9e, 0x82, 0x9b, 0x9e, - 0xd1, 0x9e, 0xc3, 0xba, 0xd8, 0xd3, 0x80, 0x69, 0xe0, 0xd9, 0x33, 0xf2, 0xf1, 0x98, 0x40, 0xb0, - 0x67, 0xf1, 0x98, 0x29, 0xf8, 0x21, 0x7b, 0x4e, 0x3e, 0x86, 0xae, 0xc7, 0x9e, 0x07, 0xb1, 0x8c, - 0x70, 0x3c, 0xf0, 0x7c, 0x01, 0x99, 0xa2, 0xa6, 0x24, 0xfa, 0x22, 0x62, 0xf5, 0xf8, 0x21, 0xdb, - 0xab, 0x9e, 0x04, 0x7b, 0x09, 0x3d, 0xeb, 0xe5, 0xa5, 0x80, 0xf3, 0x90, 0xbd, 0x0c, 0xbc, 0x6f, - 0xba, 0xca, 0x5e, 0x61, 0xf6, 0x22, 0x6b, 0xde, 0x48, 0x96, 0xfd, 0x19, 0x0a, 0xa3, 0x4e, 0xd1, - 0x75, 0xbc, 0x90, 0xbd, 0x0a, 0x85, 0x9c, 0xeb, 0xb1, 0xd7, 0xf0, 0x94, 0x77, 0x3c, 0xf6, 0x3a, - 0xa3, 0xb5, 0x36, 0x1f, 0xd4, 0xbc, 0x82, 0x23, 0xb0, 0x66, 0xbe, 0x81, 0x22, 0xd1, 0x08, 0xf2, - 0xfd, 0x26, 0x1d, 0xb1, 0x56, 0x6a, 0x48, 0x97, 0xe1, 0x5b, 0x31, 0xc5, 0x31, 0xd7, 0x13, 0xec, - 0x6d, 0x94, 0xea, 0xa0, 0x5f, 0x72, 0x0b, 0x4e, 0x39, 0xe3, 0x15, 0xd9, 0xe5, 0x49, 0xec, 0x18, - 0x24, 0xb0, 0x21, 0x60, 0x57, 0x24, 0x23, 0x0a, 0xdf, 0xf1, 0x03, 0x76, 0x65, 0x92, 0xe2, 0x8f, - 0x79, 0x4e, 0x30, 0x33, 0xec, 0x63, 0x67, 0xb2, 0x35, 0x49, 0xc1, 0x34, 0xa2, 0x83, 0x6d, 0x4b, - 0x52, 0x30, 0x8d, 0x82, 0xd5, 0xf6, 0x18, 0xf4, 0xed, 0xdc, 0x86, 0x61, 0xb6, 0x23, 0x49, 0x25, - 0x08, 0xc8, 0xbc, 0x76, 0x76, 0x26, 0xe9, 0xed, 0x57, 0xc7, 0x60, 0xbb, 0x2b, 0x49, 0x95, 0x55, - 0x07, 0x75, 0x98, 0xab, 0xe0, 0x40, 0xb5, 0xb2, 0x21, 0xee, 0x9c, 0xae, 0x86, 0x03, 0xfd, 0xe2, - 0x54, 0xe0, 0x35, 0xe8, 0x08, 0xf9, 0x52, 0xc0, 0xb5, 0x60, 0x23, 0x5f, 0xc1, 0x0a, 0xba, 0x0e, - 0x3a, 0xf4, 0x0a, 0x56, 0xc0, 0xf5, 0xc8, 0x46, 0xd6, 0x13, 0xaa, 0xfd, 0x43, 0x28, 0xd0, 0xdb, - 0x57, 0x01, 0x3f, 0x82, 0x82, 0xbc, 0x8e, 0xc9, 0xb9, 0x25, 0xf6, 0xe3, 0x24, 0xd5, 0x04, 0x6e, - 0x63, 0xa8, 0xf9, 0x13, 0x2d, 0xfe, 0x8e, 0x8f, 0xf6, 0x4f, 0x75, 0x7b, 0x98, 0x97, 0xa8, 0xfd, - 0xb3, 0xba, 0xff, 0x7c, 0x50, 0xe3, 0xec, 0xe7, 0x11, 0x92, 0x00, 0x7e, 0x11, 0xef, 0x1e, 0xb0, - 0x5f, 0x42, 0x09, 0x46, 0xfd, 0x4e, 0x39, 0xe4, 0xec, 0x57, 0x18, 0x12, 0x69, 0x25, 0x91, 0x5f, - 0xcb, 0x0c, 0x68, 0x33, 0x09, 0xfe, 0x46, 0x0e, 0x2d, 0x9f, 0x14, 0xb9, 0x29, 0x77, 0x52, 0xb0, - 0x1b, 0x64, 0x30, 0xb7, 0x34, 0xa5, 0x80, 0x1b, 0x91, 0x63, 0xc3, 0x86, 0x66, 0x0f, 0x3a, 0xf9, - 0xfb, 0x24, 0xbd, 0x74, 0xea, 0xac, 0x8c, 0xe0, 0x9e, 0x24, 0xbd, 0x16, 0x63, 0xec, 0x8c, 0x6c, - 0x37, 0x8c, 0xea, 0x2c, 0x8d, 0x60, 0x4f, 0x92, 0xde, 0x97, 0x11, 0xb6, 0x46, 0x72, 0x6f, 0x92, - 0xde, 0x43, 0x71, 0xd6, 0x46, 0x78, 0x9f, 0xce, 0xac, 0xbc, 0x51, 0xfb, 0x2d, 0x7a, 0x38, 0xc0, - 0xc5, 0x88, 0x13, 0x38, 0x15, 0xb5, 0x91, 0xba, 0x29, 0x89, 0x3d, 0x26, 0x17, 0xe3, 0x4e, 0xc0, - 0x6e, 0x46, 0x63, 0xd4, 0xdf, 0x4c, 0x89, 0xbe, 0x05, 0x8d, 0x9c, 0x94, 0xdc, 0x8a, 0xa4, 0xe2, - 0x86, 0xc7, 0xd4, 0xd1, 0x6d, 0xf0, 0xa7, 0x30, 0xbd, 0xe5, 0xba, 0x3d, 0x69, 0xae, 0xf8, 0x50, - 0x99, 0x77, 0x20, 0x63, 0xb2, 0x8d, 0xf2, 0xbd, 0x33, 0x02, 0xa0, 0x4c, 0xef, 0x42, 0x51, 0x49, - 0x40, 0x91, 0xba, 0x3b, 0xa2, 0x83, 0xdd, 0xdd, 0xef, 0x92, 0xb4, 0xde, 0x64, 0x3d, 0xf2, 0xb8, - 0xad, 0x99, 0x78, 0x65, 0x3d, 0x39, 0x3f, 0x9a, 0x65, 0x35, 0x68, 0x4e, 0xf2, 0xbe, 0x2b, 0xeb, - 0x29, 0x47, 0x3b, 0x95, 0x2e, 0x9c, 0xec, 0x6a, 0x96, 0x45, 0x60, 0xb8, 0x5e, 0xa5, 0xa4, 0xd8, - 0x1a, 0x5e, 0x2d, 0x3d, 0x4d, 0x52, 0xe6, 0x28, 0xcc, 0x49, 0x2d, 0xd0, 0x46, 0x1b, 0xa1, 0x4e, - 0x6e, 0xa1, 0x14, 0x48, 0x40, 0x87, 0x3b, 0x05, 0x27, 0x0a, 0x89, 0xa9, 0x90, 0xa7, 0x46, 0xec, - 0x10, 0xf6, 0x34, 0x1c, 0x5e, 0x94, 0x9d, 0x0e, 0x7d, 0x7a, 0x0b, 0x3a, 0x34, 0x49, 0x91, 0xce, - 0x68, 0x01, 0x8d, 0x49, 0x44, 0x39, 0xb3, 0x45, 0xd2, 0xd0, 0x11, 0xce, 0xc2, 0x91, 0x26, 0x3b, - 0xa9, 0xbc, 0x9f, 0xad, 0x74, 0xe1, 0xf9, 0x1c, 0x15, 0xca, 0x78, 0x3d, 0x37, 0x12, 0x1b, 0x9d, - 0x3a, 0x4f, 0xa9, 0xcb, 0xed, 0x3d, 0xce, 0x3a, 0x3d, 0x4e, 0xc8, 0x8f, 0x9c, 0xe2, 0x48, 0xe5, - 0x3b, 0xf2, 0xe4, 0xaa, 0x10, 0xc4, 0x7f, 0x57, 0x9e, 0x90, 0x15, 0xa4, 0x59, 0xfc, 0x4d, 0x9e, - 0x90, 0x15, 0xaa, 0xb8, 0xbc, 0x17, 0xb3, 0x06, 0xa3, 0xf7, 0xe5, 0x09, 0x59, 0x5b, 0x6b, 0x5e, - 0x1f, 0xc4, 0x34, 0x41, 0xe6, 0x43, 0x50, 0xcd, 0xa0, 0x9a, 0x82, 0x99, 0xaa, 0x60, 0x17, 0xb4, - 0x29, 0xa0, 0xcf, 0x93, 0xc0, 0x85, 0x6d, 0x78, 0x6b, 0xfb, 0x15, 0x7c, 0x5d, 0x62, 0x17, 0xb5, - 0xe1, 0xc6, 0xb7, 0xf7, 0x9b, 0x6c, 0x0b, 0x04, 0x23, 0x4e, 0x18, 0x6e, 0xf6, 0x83, 0x22, 0xbb, - 0xb8, 0x0d, 0x53, 0xd9, 0xf1, 0x8a, 0x7e, 0x45, 0x5e, 0x7c, 0x5f, 0xd2, 0x86, 0xd7, 0xd0, 0x11, - 0x99, 0x43, 0xd9, 0xa5, 0xfa, 0xb1, 0x8b, 0x5d, 0x86, 0x00, 0x63, 0x5e, 0x41, 0x7b, 0xbc, 0xbc, - 0x8d, 0xa6, 0x5b, 0x1d, 0xe0, 0xc5, 0x41, 0xee, 0x95, 0xc4, 0x14, 0xbb, 0xa2, 0x8d, 0xe8, 0xd6, - 0xb9, 0x65, 0xc7, 0xd9, 0x95, 0x1a, 0x52, 0xec, 0xb2, 0xe3, 0x6c, 0x6b, 0x1b, 0x8e, 0x4e, 0x5e, - 0xc1, 0x2f, 0x72, 0xb6, 0x0d, 0x8d, 0x5e, 0x8e, 0xc6, 0x76, 0x50, 0xcd, 0x0d, 0x1d, 0xc6, 0x76, - 0x80, 0x6a, 0xaf, 0x23, 0x9c, 0x09, 0x27, 0xe4, 0xec, 0xda, 0x36, 0xec, 0x14, 0xb0, 0x33, 0xf0, - 0x37, 0x87, 0xec, 0x3a, 0x50, 0xef, 0xa9, 0x05, 0x01, 0xf7, 0xc4, 0x58, 0xc8, 0x03, 0x76, 0x3d, - 0xf8, 0xe2, 0xf1, 0x87, 0x6d, 0xf2, 0x5a, 0xc1, 0xf3, 0x38, 0x3e, 0x6c, 0x64, 0x7b, 0xd9, 0x8f, - 0x00, 0x0d, 0xe2, 0x78, 0x1b, 0xf2, 0x40, 0x64, 0x7b, 0xd9, 0x8f, 0xd1, 0x89, 0x28, 0x44, 0xd3, - 0x3f, 0xdb, 0xcb, 0x7e, 0xd2, 0x86, 0x2b, 0x68, 0x1e, 0x84, 0x34, 0x02, 0x3f, 0x45, 0x24, 0x79, - 0x21, 0x2f, 0x91, 0x9f, 0xb5, 0xc9, 0x6d, 0xc8, 0x66, 0xb9, 0x38, 0xfc, 0xbc, 0x8d, 0x0a, 0x32, - 0x57, 0xe6, 0xbc, 0xca, 0xee, 0x69, 0x93, 0xfb, 0x85, 0xc2, 0xd1, 0x6c, 0xb7, 0x4c, 0x2e, 0x2f, - 0x73, 0x27, 0xe4, 0x40, 0xf6, 0xb4, 0x51, 0x81, 0xe8, 0x4b, 0x3f, 0x6f, 0x46, 0xde, 0xfa, 0xde, - 0xdb, 0x46, 0x03, 0x6f, 0x6e, 0x89, 0x34, 0x7c, 0x5f, 0x9b, 0x3a, 0x3c, 0x1b, 0xe4, 0x7e, 0x74, - 0x81, 0x56, 0x02, 0x03, 0x3d, 0x00, 0x08, 0x97, 0x9d, 0x1a, 0xfa, 0x43, 0x1b, 0xd5, 0x9b, 0xba, - 0xb6, 0xd3, 0xe0, 0x1f, 0xa1, 0x87, 0x5b, 0x33, 0x0d, 0x3d, 0xd8, 0x26, 0xa7, 0x3b, 0x17, 0x19, - 0xe1, 0x7b, 0xec, 0x21, 0xd3, 0x1c, 0x16, 0xbe, 0xc3, 0xfe, 0xd4, 0x26, 0x17, 0x07, 0x2e, 0xd2, - 0x10, 0x3f, 0x5c, 0x6f, 0x43, 0xfe, 0x08, 0x06, 0x2d, 0x1b, 0x66, 0x47, 0x36, 0x1d, 0xce, 0x1e, - 0x85, 0x77, 0xd9, 0xa0, 0xa2, 0x73, 0x04, 0x7b, 0x2c, 0x02, 0x0d, 0x39, 0xd5, 0x2a, 0x2f, 0xb2, - 0xc7, 0xeb, 0x26, 0x69, 0xf6, 0x84, 0x1c, 0xac, 0xb1, 0x6c, 0x2f, 0x7b, 0x12, 0xc5, 0x35, 0xee, - 0x0a, 0x1e, 0x86, 0x47, 0x38, 0xe1, 0x14, 0x7b, 0x4a, 0x29, 0x42, 0xfa, 0x34, 0x02, 0x53, 0xf6, - 0x73, 0x53, 0x4e, 0x50, 0x64, 0xcf, 0xb4, 0x99, 0xef, 0x14, 0xae, 0x87, 0xb7, 0xda, 0xb3, 0x92, - 0x79, 0xd9, 0x3d, 0x9a, 0x53, 0xf3, 0xd1, 0x56, 0x6c, 0xe7, 0x54, 0xeb, 0xb1, 0x56, 0x6c, 0x28, - 0x79, 0x89, 0x4f, 0x57, 0xa9, 0xfd, 0x78, 0x2b, 0xad, 0x44, 0xb2, 0x3d, 0x96, 0xef, 0xff, 0x16, - 0x61, 0x4f, 0x44, 0x30, 0x6d, 0xf7, 0x64, 0x2b, 0xb6, 0x96, 0x06, 0xd3, 0xba, 0x4f, 0xb5, 0x52, - 0x76, 0x25, 0x8e, 0xa5, 0x92, 0xc0, 0xa7, 0x5b, 0xe5, 0x1b, 0xcb, 0x80, 0x5a, 0xfb, 0x99, 0x56, - 0xec, 0x38, 0x21, 0x18, 0xe5, 0xd5, 0xb2, 0x53, 0x80, 0xf3, 0x67, 0x5b, 0xb1, 0x65, 0x8c, 0xc2, - 0xda, 0xe2, 0xb9, 0x56, 0x2a, 0x11, 0xc5, 0xb7, 0x36, 0x11, 0xca, 0x00, 0xcf, 0xb7, 0xca, 0x97, - 0x58, 0x1d, 0xd5, 0xfa, 0x2f, 0x80, 0x0f, 0x2d, 0x0b, 0x7d, 0xd3, 0x22, 0x70, 0x0a, 0x74, 0x8a, - 0x60, 0xa7, 0xb5, 0x6b, 0x70, 0xcc, 0x3b, 0xa6, 0xe6, 0x0b, 0x04, 0x3d, 0xbd, 0x9d, 0x12, 0x47, - 0x60, 0x7e, 0xa6, 0x0a, 0xe4, 0x8c, 0x76, 0xbd, 0xbd, 0xc8, 0x71, 0xd8, 0x9d, 0xd9, 0xae, 0x3f, - 0xa5, 0xc8, 0x09, 0x41, 0xd8, 0x59, 0xc6, 0x57, 0xa4, 0x03, 0x67, 0x1b, 0xc5, 0x51, 0x5e, 0xf1, - 0x37, 0x01, 0x3b, 0xa7, 0x5d, 0x7f, 0x9a, 0x19, 0xe2, 0x41, 0x09, 0xd0, 0xb9, 0xed, 0xf1, 0x4f, - 0x33, 0x84, 0x9d, 0xd7, 0x1e, 0xfb, 0x82, 0x43, 0xd0, 0xf9, 0xed, 0x94, 0x25, 0x82, 0xc6, 0x9d, - 0xb2, 0x5b, 0x04, 0x21, 0xb7, 0xc4, 0xbe, 0xdf, 0x4e, 0xa9, 0xa0, 0x56, 0x8f, 0xef, 0x09, 0xc7, - 0xf5, 0x42, 0x42, 0x7f, 0xd0, 0x4e, 0xb9, 0xae, 0x7f, 0x01, 0xaa, 0x56, 0xb9, 0xdc, 0x0b, 0x5d, - 0x10, 0x17, 0xd4, 0x7b, 0x70, 0x61, 0x3b, 0x0d, 0xa5, 0x21, 0x36, 0xe2, 0x88, 0xc2, 0x14, 0xe1, - 0x17, 0xb5, 0xd3, 0x28, 0xd4, 0xf1, 0x80, 0x87, 0x3c, 0x90, 0x7d, 0xd9, 0xd2, 0x4e, 0xf9, 0x8e, - 0x86, 0x1e, 0x71, 0x04, 0x8c, 0x2e, 0x36, 0x5d, 0x1a, 0x09, 0xb8, 0x10, 0xe0, 0x7f, 0x89, 0xe9, - 0xd2, 0x46, 0x9d, 0xec, 0x4b, 0x8d, 0x5a, 0x8e, 0x3b, 0x81, 0x8c, 0x77, 0x99, 0x21, 0x98, 0x13, - 0x7e, 0xe0, 0x50, 0x8a, 0xbe, 0x07, 0xe5, 0xcb, 0x8d, 0x7d, 0x2f, 0xaf, 0xca, 0x30, 0x57, 0x98, - 0xc1, 0xfa, 0x77, 0x3e, 0x83, 0x7e, 0x5f, 0x69, 0x3c, 0xca, 0x95, 0x96, 0xb0, 0xad, 0x26, 0x71, - 0xa4, 0x85, 0x73, 0x00, 0xc1, 0xdb, 0x4c, 0x20, 0xe4, 0x53, 0x2e, 0x05, 0x24, 0xd8, 0x1e, 0x17, - 0x6c, 0x10, 0x53, 0x3c, 0x80, 0xc5, 0x8e, 0x46, 0x6a, 0xfd, 0x01, 0x07, 0xb5, 0x9d, 0x66, 0x0c, - 0x86, 0x78, 0x65, 0x82, 0x07, 0x1b, 0x26, 0x09, 0xdd, 0x05, 0xc2, 0xe3, 0xbc, 0x90, 0x09, 0xf3, - 0x7c, 0x1a, 0x49, 0xfe, 0x10, 0x65, 0x32, 0xce, 0x0b, 0xfd, 0x81, 0x5f, 0xd1, 0xe0, 0x47, 0x28, - 0xb0, 0x71, 0x5e, 0xe8, 0x75, 0x2b, 0x88, 0xf3, 0x31, 0x08, 0x8f, 0xf3, 0xc2, 0xe0, 0xa1, 0xbd, - 0x6e, 0x28, 0x1c, 0x4f, 0x96, 0xd3, 0x27, 0x06, 0xee, 0x8a, 0xc2, 0x9f, 0xb6, 0xd3, 0x11, 0x79, - 0x9c, 0x17, 0x86, 0x79, 0xc9, 0x11, 0xee, 0x26, 0x9e, 0xf5, 0x3c, 0x1e, 0x8c, 0x04, 0x7e, 0xb1, - 0x26, 0x6b, 0xe9, 0x33, 0x8c, 0xe0, 0x38, 0x2f, 0xf4, 0xf8, 0xa1, 0xeb, 0xf1, 0xa8, 0xed, 0xe7, - 0x9a, 0xe2, 0x60, 0xd7, 0xb0, 0x1f, 0x54, 0x08, 0xfa, 0xa2, 0xdd, 0x5e, 0x6b, 0x1d, 0x18, 0xfd, - 0xa6, 0x11, 0xff, 0xc0, 0x7a, 0x73, 0x07, 0xed, 0x07, 0x49, 0x1e, 0xc3, 0xe5, 0x15, 0xfd, 0x2d, - 0x1d, 0xf6, 0x41, 0x56, 0xd3, 0x1c, 0x42, 0xbc, 0xf9, 0x6f, 0xed, 0xd0, 0xae, 0x1b, 0xa4, 0xea, - 0x75, 0x7f, 0x5b, 0x07, 0xf5, 0x64, 0x0e, 0xb9, 0xde, 0x24, 0xdc, 0xfe, 0x8f, 0xdc, 0x63, 0x6b, - 0x70, 0x47, 0x87, 0xdd, 0x62, 0x7d, 0x65, 0x2e, 0x73, 0xbd, 0x4b, 0xb8, 0xf3, 0x1f, 0xd9, 0x63, - 0xc3, 0x70, 0x57, 0x87, 0xfd, 0x7f, 0xac, 0x96, 0x39, 0xa4, 0xf1, 0x04, 0xdc, 0xdd, 0x41, 0x13, - 0x65, 0xa4, 0x5c, 0x6b, 0xc0, 0x2f, 0xe8, 0xc0, 0x2d, 0x10, 0x9d, 0x83, 0xe2, 0x82, 0x0b, 0x3b, - 0x68, 0x43, 0xae, 0xef, 0xbe, 0xe2, 0xb2, 0x8b, 0x20, 0x8b, 0xc7, 0xd3, 0xaf, 0x9e, 0x2d, 0x90, - 0xe9, 0x5b, 0xff, 0xb8, 0xdd, 0xc5, 0x1d, 0x54, 0x71, 0x83, 0xf9, 0x38, 0x7a, 0x89, 0x44, 0xfb, - 0xe2, 0xe8, 0xa5, 0x40, 0x07, 0x1a, 0x74, 0x2f, 0x83, 0x77, 0x7d, 0xb9, 0x1d, 0x97, 0x5d, 0x8e, - 0xae, 0xe0, 0x86, 0x3a, 0x2e, 0xb8, 0x42, 0xba, 0x6a, 0x08, 0x70, 0x25, 0xd0, 0xbe, 0x8d, 0x71, - 0x74, 0x2b, 0xd0, 0xe1, 0x06, 0xdd, 0x6d, 0x1d, 0xb4, 0x66, 0xc8, 0x0b, 0xd3, 0xb8, 0x64, 0x3b, - 0x24, 0x31, 0x4c, 0x9d, 0xe7, 0x76, 0xcc, 0x25, 0xc1, 0xa9, 0x6b, 0x67, 0x87, 0x2a, 0xed, 0xa8, - 0x44, 0x1e, 0xac, 0x76, 0xa1, 0x1a, 0xe6, 0x30, 0x32, 0x87, 0x97, 0xab, 0x3a, 0xec, 0x56, 0xeb, - 0xa0, 0xb9, 0x8c, 0x8d, 0xca, 0xd5, 0x88, 0x2c, 0xb7, 0xbb, 0x71, 0xb6, 0xd7, 0xa0, 0x77, 0xd9, - 0xc9, 0x38, 0x7a, 0xad, 0x1c, 0x32, 0xb5, 0x0d, 0x8d, 0xcb, 0xae, 0xeb, 0xa0, 0xb9, 0xd6, 0x9f, - 0xcf, 0x0d, 0xd1, 0xd2, 0x7a, 0x24, 0x6d, 0x2c, 0x1f, 0x42, 0x9e, 0x35, 0xd4, 0x67, 0x7e, 0xe5, - 0xc4, 0xfe, 0xd4, 0x41, 0xeb, 0x84, 0x16, 0x8c, 0x04, 0x7c, 0xd2, 0x9d, 0x66, 0x0f, 0xc7, 0x40, - 0xf9, 0x9a, 0x63, 0x8f, 0x74, 0xe0, 0x2c, 0xea, 0x08, 0xde, 0xef, 0x07, 0x15, 0x07, 0x13, 0xfe, - 0xdd, 0x4e, 0x5a, 0x16, 0x09, 0x1b, 0x74, 0x05, 0x0f, 0x68, 0x77, 0xdd, 0xa9, 0x76, 0x89, 0xbc, - 0xd7, 0x9d, 0x9c, 0x64, 0xef, 0x75, 0xea, 0xeb, 0x6e, 0x9a, 0x38, 0x80, 0xde, 0xef, 0x24, 0x2a, - 0xd4, 0x94, 0x93, 0xd1, 0x08, 0x3e, 0xe8, 0xc4, 0xf9, 0x4f, 0x4d, 0xa1, 0x06, 0xe1, 0x87, 0x9d, - 0xf6, 0x57, 0xad, 0xa4, 0x16, 0xea, 0xbf, 0x46, 0xfc, 0x11, 0x9c, 0xd6, 0x6d, 0x8c, 0xe0, 0x63, - 0x38, 0x95, 0x82, 0x59, 0x56, 0x9f, 0x74, 0xd2, 0xa0, 0xaa, 0xf5, 0x38, 0x1e, 0xef, 0xd3, 0x4e, - 0x5a, 0x02, 0xb5, 0x2b, 0x03, 0x7f, 0xd6, 0x49, 0xdb, 0x24, 0xea, 0x1e, 0xfb, 0x1c, 0x8f, 0x47, - 0xf8, 0xb5, 0x80, 0x7d, 0xd1, 0x89, 0x0b, 0x68, 0xd7, 0xab, 0x09, 0xce, 0xbe, 0xec, 0x94, 0x67, - 0xcd, 0x82, 0xef, 0x15, 0xd9, 0xdf, 0x91, 0xa0, 0x21, 0xb7, 0x10, 0xf8, 0x0a, 0x39, 0x36, 0x45, - 0x9b, 0xd3, 0x21, 0xdf, 0x13, 0x53, 0xec, 0xb8, 0x14, 0xee, 0xe4, 0xe9, 0x79, 0xd8, 0xa9, 0x70, - 0x76, 0x7c, 0x0a, 0x77, 0xfc, 0xfe, 0x66, 0x2a, 0x8b, 0x4c, 0x50, 0x62, 0x27, 0xa4, 0xf0, 0x05, - 0x41, 0x02, 0x7e, 0x4d, 0x10, 0x76, 0x62, 0x0a, 0x97, 0x48, 0xce, 0x0c, 0x4c, 0x4e, 0x82, 0x49, - 0xaf, 0x33, 0xb3, 0x61, 0x52, 0xfa, 0x3c, 0x19, 0x3e, 0x01, 0x1c, 0xc9, 0xf9, 0xd1, 0xec, 0x94, - 0x7a, 0xfb, 0x3f, 0xb8, 0x13, 0xb0, 0x53, 0x53, 0x34, 0x22, 0x24, 0x22, 0x9f, 0x43, 0xb4, 0xc7, - 0x3f, 0x2d, 0x45, 0x15, 0xa6, 0x21, 0xbf, 0x26, 0x80, 0x9e, 0x8e, 0x38, 0x84, 0xf6, 0x3a, 0x33, - 0xec, 0x0c, 0xc4, 0xa1, 0x96, 0xf2, 0x73, 0x66, 0x8a, 0xba, 0x8f, 0xc7, 0xb3, 0x52, 0x94, 0x2b, - 0x7a, 0x8c, 0xb9, 0x3d, 0x3b, 0x45, 0x25, 0x1d, 0x85, 0xb5, 0xeb, 0x73, 0xc0, 0x69, 0x80, 0x0b, - 0x59, 0x49, 0xec, 0xdc, 0x14, 0xb6, 0xc8, 0x33, 0x21, 0x25, 0x16, 0x57, 0x81, 0x61, 0x95, 0x9d, - 0x97, 0xa2, 0xd5, 0x2f, 0x02, 0xfa, 0x35, 0x41, 0xf8, 0xf9, 0xa9, 0xc8, 0x41, 0x03, 0x23, 0xf1, - 0x7d, 0xf0, 0x57, 0x08, 0x0d, 0xd5, 0x3a, 0xca, 0xd3, 0x0f, 0x1a, 0x51, 0x5c, 0xd3, 0x5d, 0x00, - 0xda, 0x58, 0xc5, 0x2f, 0x4c, 0xc9, 0x73, 0x44, 0xc5, 0x14, 0xef, 0x45, 0xe8, 0xf2, 0x58, 0xbe, - 0x07, 0x6e, 0xb7, 0x80, 0xff, 0x58, 0xbe, 0x87, 0x54, 0x42, 0xe1, 0x54, 0xaa, 0x7a, 0x58, 0x2e, - 0x4e, 0x51, 0x51, 0x35, 0x4a, 0xd4, 0xf8, 0x5c, 0x02, 0x61, 0xa6, 0x58, 0x24, 0x27, 0x02, 0x3b, - 0xfc, 0x62, 0xfd, 0x03, 0x52, 0x8a, 0x2a, 0x2e, 0x2e, 0x54, 0xef, 0xa4, 0xcb, 0x10, 0x2e, 0x53, - 0x2c, 0xa2, 0xd8, 0x1c, 0x81, 0xa2, 0xc3, 0xda, 0x70, 0xb9, 0x36, 0xd2, 0x87, 0x88, 0xba, 0xbf, - 0x2b, 0x52, 0x54, 0xf7, 0x51, 0x91, 0xf2, 0x76, 0x25, 0xb2, 0xa7, 0xbc, 0x49, 0x0c, 0xbe, 0xb6, - 0x1a, 0x76, 0xe6, 0x7c, 0x53, 0xf7, 0xb6, 0xcd, 0xb0, 0xab, 0x0b, 0x95, 0xbf, 0xed, 0x31, 0x76, - 0x4a, 0x2c, 0xd7, 0x4c, 0x4d, 0x81, 0x38, 0x47, 0xbd, 0xed, 0x44, 0x59, 0xd4, 0x05, 0xca, 0xd3, - 0x2e, 0x30, 0xc8, 0xd5, 0x26, 0xe6, 0xca, 0xcf, 0x55, 0x60, 0x10, 0x17, 0x2a, 0xbb, 0xab, 0xc1, - 0x20, 0x57, 0x9b, 0x98, 0x95, 0x9f, 0x6b, 0xb4, 0xd1, 0xec, 0xfc, 0x5c, 0x0b, 0x72, 0x51, 0x91, - 0xf2, 0x76, 0x9d, 0xac, 0x2e, 0xe9, 0x2d, 0x92, 0x9f, 0xeb, 0x0d, 0xbb, 0x39, 0xf2, 0xf3, 0x43, - 0xc3, 0x6e, 0x56, 0x7e, 0x7e, 0x14, 0x63, 0x17, 0xcd, 0xcf, 0x8f, 0x35, 0x85, 0xc6, 0xfc, 0xfc, - 0x04, 0xf9, 0xa9, 0x0b, 0x94, 0xa7, 0x9f, 0x22, 0xc8, 0x98, 0xe7, 0x4e, 0x9b, 0xea, 0x52, 0x45, - 0xcc, 0x7e, 0x06, 0x8b, 0x98, 0x88, 0xf6, 0x42, 0x3f, 0x9f, 0x0d, 0xf7, 0xf2, 0x02, 0xfb, 0x45, - 0x4a, 0xfe, 0x22, 0xcd, 0xdb, 0xc4, 0x03, 0x91, 0xff, 0x1e, 0xfb, 0x65, 0x0a, 0x9f, 0xf7, 0x9c, - 0xa3, 0x91, 0x3d, 0xf6, 0x2b, 0xd3, 0xc4, 0x6c, 0xf8, 0x35, 0xb4, 0x47, 0x78, 0xe0, 0xfa, 0xc5, - 0x4c, 0xb1, 0xc8, 0x7e, 0x83, 0x09, 0x2f, 0xdb, 0x58, 0xfa, 0x7e, 0x8b, 0xc9, 0xb1, 0xb1, 0xe6, - 0x04, 0x82, 0x07, 0xec, 0x06, 0xa8, 0xe7, 0x78, 0x21, 0xef, 0xc3, 0xfc, 0xc6, 0x94, 0x3c, 0x16, - 0x56, 0x78, 0x9e, 0x56, 0x3a, 0x76, 0x53, 0x4a, 0x1f, 0x70, 0xc1, 0x87, 0x3c, 0xde, 0x9c, 0xa2, - 0x85, 0x31, 0xef, 0xf7, 0x3a, 0x33, 0x21, 0xbb, 0x45, 0xea, 0xab, 0x55, 0x31, 0x64, 0xb7, 0x62, - 0x09, 0x50, 0x53, 0x4a, 0xcf, 0xb3, 0xdb, 0x30, 0x48, 0x11, 0x50, 0x4d, 0xb1, 0xdb, 0xb1, 0x2c, - 0x1a, 0xe7, 0x98, 0xd8, 0x77, 0xc0, 0x81, 0xc1, 0xe4, 0x25, 0xfc, 0x9d, 0x29, 0xbd, 0x8a, 0x03, - 0xd4, 0xf3, 0xfc, 0x2e, 0x74, 0x65, 0xd0, 0x09, 0x05, 0x2d, 0x6d, 0x77, 0xc3, 0x5b, 0x4e, 0x04, - 0x44, 0x4d, 0xc8, 0xe4, 0xfc, 0x4e, 0x96, 0x47, 0x14, 0xa3, 0x6a, 0x64, 0xbf, 0x6f, 0xc0, 0xf5, - 0x58, 0xde, 0x83, 0x40, 0xb4, 0xd7, 0xd6, 0xc3, 0x00, 0x52, 0xbb, 0x67, 0xc1, 0xc4, 0x8b, 0xed, - 0xc1, 0xd2, 0xa4, 0x0e, 0x88, 0xc6, 0xf7, 0xbd, 0x31, 0x54, 0x7b, 0xbe, 0x4f, 0x4f, 0x3c, 0xd2, - 0x8b, 0xbe, 0xaa, 0xd8, 0xfd, 0xd1, 0xf9, 0xa5, 0x2e, 0xb2, 0x3d, 0xc1, 0x1e, 0x88, 0x2e, 0x31, - 0xea, 0xc5, 0xa7, 0x76, 0xb5, 0x7f, 0x88, 0x5a, 0x64, 0x3d, 0xfd, 0x33, 0x81, 0x3f, 0x22, 0x01, - 0x75, 0x98, 0xbc, 0x3c, 0x98, 0xa2, 0xfd, 0x85, 0xc2, 0x34, 0x45, 0xa5, 0xff, 0x50, 0x74, 0xc6, - 0x6b, 0x19, 0x3e, 0xfb, 0xea, 0x49, 0x30, 0x8b, 0xeb, 0xc3, 0xd1, 0x5a, 0xaf, 0x73, 0x7d, 0x24, - 0x3a, 0xdd, 0xe3, 0x5c, 0x1f, 0x8d, 0x5a, 0xd4, 0xb9, 0x3e, 0x26, 0x07, 0xcb, 0xc0, 0xe4, 0xe5, - 0x71, 0x70, 0x55, 0x58, 0x03, 0xd7, 0x27, 0xa2, 0xb3, 0x2f, 0xca, 0xf5, 0x49, 0x94, 0x3f, 0x0d, - 0x0d, 0xea, 0xf1, 0xa9, 0x94, 0xbe, 0xfb, 0x57, 0xef, 0xa4, 0xa7, 0xe3, 0x35, 0x86, 0x29, 0xf0, - 0x8c, 0x5e, 0x34, 0xea, 0x74, 0x71, 0xdc, 0x78, 0x56, 0xbe, 0xbf, 0x0c, 0x29, 0x80, 0xcf, 0x45, - 0x95, 0xb3, 0x9e, 0xf9, 0x32, 0xf2, 0x7c, 0x34, 0x49, 0x9a, 0x11, 0x2c, 0x5e, 0x88, 0xae, 0x8c, - 0x5a, 0xa2, 0xcd, 0x5e, 0x8c, 0x75, 0x32, 0xb6, 0x49, 0x62, 0x7b, 0x63, 0x9d, 0xd4, 0x1f, 0x3e, - 0x3c, 0xc1, 0x5e, 0x8a, 0xc5, 0x52, 0x02, 0xc4, 0x7a, 0x39, 0x16, 0x4b, 0x6f, 0xab, 0x54, 0xac, - 0x57, 0xf4, 0xcb, 0xa3, 0xa1, 0x9f, 0x7f, 0x46, 0x3f, 0xeb, 0x85, 0x02, 0xf0, 0xd5, 0xa8, 0x72, - 0xa4, 0x9f, 0xaf, 0x45, 0x0b, 0x37, 0xd6, 0xcf, 0xd7, 0xa3, 0x6f, 0xc8, 0xc6, 0x7e, 0xbe, 0x11, - 0x2b, 0xbc, 0x78, 0x3f, 0xdf, 0x8c, 0x15, 0x5e, 0xa4, 0x9f, 0x6f, 0xc5, 0x62, 0x45, 0xfb, 0xf9, - 0x76, 0x2c, 0x56, 0x43, 0x3f, 0xff, 0x92, 0xa2, 0x63, 0x62, 0xc3, 0x3c, 0xa4, 0x92, 0x50, 0xf1, - 0xfe, 0x1a, 0xed, 0x1a, 0xb9, 0x53, 0xf8, 0x3b, 0xd1, 0x3c, 0xe0, 0x53, 0x86, 0x27, 0xd8, 0xbb, - 0x98, 0xbe, 0x11, 0x10, 0xf1, 0xff, 0x16, 0xa5, 0x4c, 0x88, 0x8e, 0xfd, 0x5e, 0x74, 0x9a, 0x2a, - 0x50, 0xb9, 0x7f, 0x3f, 0x1a, 0x56, 0x7f, 0x0f, 0xf1, 0x04, 0xfb, 0x20, 0xd6, 0x7d, 0x89, 0x23, - 0xc8, 0x87, 0xb1, 0x9c, 0x49, 0x81, 0x8e, 0xf3, 0x51, 0xb4, 0x0c, 0x23, 0x7d, 0xf8, 0x38, 0x5a, - 0xb3, 0xba, 0x0f, 0x9f, 0xa0, 0x0f, 0x11, 0x10, 0xee, 0x3f, 0x8d, 0x96, 0x57, 0xb4, 0x0f, 0x9f, - 0x45, 0xa7, 0x6f, 0xbc, 0x0f, 0x9f, 0x47, 0xc3, 0x46, 0xfa, 0xf0, 0x45, 0xac, 0x54, 0x23, 0x7d, - 0xf8, 0x32, 0x56, 0xdf, 0xf1, 0x3e, 0xfc, 0x3d, 0x65, 0x1f, 0x6c, 0x7d, 0x75, 0xce, 0x9a, 0x30, - 0xab, 0xe7, 0xb1, 0xeb, 0xe8, 0x48, 0x3f, 0xbb, 0x36, 0x8c, 0xc2, 0x71, 0xeb, 0xe8, 0x98, 0x36, - 0x47, 0x8d, 0x18, 0x8d, 0xe3, 0xd7, 0xd9, 0x6d, 0xd6, 0xda, 0xb9, 0x6b, 0xc5, 0x28, 0x9d, 0xb0, - 0x8e, 0xb8, 0xcc, 0x39, 0x0f, 0x8d, 0xce, 0x89, 0xe0, 0x32, 0x7b, 0x3e, 0x1a, 0x85, 0x93, 0xc0, - 0x65, 0x8e, 0x79, 0x69, 0x34, 0x4e, 0x06, 0x97, 0xb9, 0xe7, 0xa7, 0x51, 0x3a, 0x65, 0x9d, 0xfa, - 0x9e, 0xa8, 0x2e, 0xfb, 0x9f, 0x4c, 0xdb, 0x8b, 0xad, 0xf9, 0xeb, 0x5d, 0x8f, 0x3d, 0x95, 0xa6, - 0x53, 0x46, 0x26, 0xd7, 0x93, 0xcd, 0xb2, 0xa7, 0xd3, 0xf8, 0xd6, 0x3d, 0xe5, 0x04, 0xec, 0x99, - 0x34, 0xbe, 0x7d, 0x4c, 0x39, 0x81, 0xb4, 0x18, 0xcb, 0xf7, 0x7f, 0x8b, 0x3d, 0x9b, 0xa6, 0xf7, - 0xb2, 0xfa, 0x91, 0xf9, 0x73, 0x69, 0xf9, 0xa5, 0x82, 0x1a, 0x47, 0xe6, 0xd8, 0xf3, 0x69, 0x7a, - 0x53, 0xaa, 0x3d, 0x04, 0x7b, 0x01, 0xfe, 0xfb, 0xca, 0x82, 0xbd, 0x98, 0xa6, 0xd5, 0xb1, 0x6f, - 0xba, 0xea, 0x07, 0x22, 0xc7, 0xc5, 0x61, 0xf4, 0x56, 0xdb, 0x1b, 0xc7, 0x0e, 0x27, 0xec, 0xa5, - 0x38, 0xf6, 0x4d, 0xc2, 0x5e, 0x46, 0x08, 0xfc, 0x2f, 0x06, 0x55, 0xc4, 0x2b, 0x69, 0x7c, 0x48, - 0xa0, 0xa6, 0x5c, 0x64, 0xd2, 0xb4, 0x2d, 0x47, 0x5b, 0xd5, 0xd2, 0xab, 0x4a, 0xc3, 0x2b, 0x66, - 0xbd, 0x1c, 0x17, 0xec, 0x35, 0x10, 0x56, 0xeb, 0xf4, 0xeb, 0x69, 0xbc, 0x62, 0xd1, 0xa0, 0x2d, - 0xc2, 0xa0, 0x5f, 0x70, 0xca, 0x9c, 0xbd, 0x91, 0xc6, 0x4f, 0xbd, 0x03, 0xbf, 0xb2, 0xde, 0x09, - 0x79, 0xfa, 0x70, 0xf6, 0x26, 0x9c, 0x1c, 0xc1, 0xa7, 0xb3, 0x1e, 0xf6, 0x10, 0x6f, 0xe9, 0x76, - 0x4e, 0x04, 0xd4, 0x7e, 0x3b, 0x2d, 0xbf, 0xa8, 0x85, 0x3c, 0x10, 0x48, 0xcb, 0x5f, 0xd2, 0xf2, - 0x8b, 0x1a, 0x01, 0xec, 0xaf, 0x69, 0x79, 0xdd, 0xae, 0x6e, 0x7a, 0xd9, 0x3b, 0x69, 0xf9, 0x11, - 0x2f, 0x14, 0x01, 0x7b, 0x17, 0xcf, 0x83, 0xf9, 0xc0, 0xad, 0xb0, 0xbf, 0xa5, 0xe5, 0xaf, 0xf6, - 0x26, 0xa5, 0x8f, 0xf7, 0xd2, 0xf2, 0x57, 0xe8, 0x93, 0x82, 0xbd, 0x0f, 0x77, 0x6a, 0xa0, 0x3e, - 0x48, 0xe3, 0xfa, 0xc4, 0x2f, 0x38, 0x02, 0x3b, 0x82, 0x10, 0xda, 0x1f, 0x46, 0xd0, 0xc3, 0x0c, - 0xfa, 0x11, 0xf2, 0x11, 0xd1, 0x65, 0x1f, 0x47, 0x10, 0xe8, 0xb1, 0x4f, 0x24, 0x05, 0x7f, 0x33, - 0x0f, 0xd8, 0xa7, 0x92, 0x42, 0xd5, 0x29, 0xc2, 0xfc, 0x33, 0x49, 0xa1, 0xea, 0x14, 0xd9, 0xe7, - 0x18, 0x4c, 0xda, 0xf1, 0x51, 0x16, 0xbf, 0x00, 0xa1, 0x0d, 0x05, 0xbc, 0x42, 0xbf, 0x44, 0xff, - 0x36, 0x14, 0xcc, 0x2f, 0x07, 0x31, 0xd2, 0x1b, 0x82, 0x22, 0x3b, 0xb6, 0x9b, 0x5c, 0xe3, 0x22, - 0x95, 0x1d, 0x87, 0xe7, 0x51, 0xf4, 0xf4, 0xf8, 0x6e, 0x7c, 0x5f, 0xe5, 0x55, 0xee, 0x08, 0x76, - 0x42, 0x37, 0x7e, 0xb7, 0x20, 0x2f, 0xa4, 0xd9, 0x89, 0xdd, 0xf2, 0x43, 0xcb, 0x26, 0x1e, 0x84, - 0xb8, 0x48, 0x67, 0x27, 0x29, 0x39, 0x10, 0x76, 0x72, 0x37, 0xbe, 0x01, 0xb8, 0xa5, 0x29, 0x99, - 0xa5, 0x53, 0xa4, 0x5b, 0x6a, 0xb3, 0x53, 0xbb, 0xf1, 0x29, 0x47, 0xb3, 0x3f, 0xad, 0x1b, 0xbf, - 0xeb, 0x20, 0xf6, 0xa7, 0x43, 0x2b, 0x57, 0xa5, 0x08, 0x67, 0x74, 0xcb, 0x7f, 0x67, 0x08, 0x0a, - 0x95, 0x2a, 0x3b, 0xb3, 0x5b, 0x2d, 0x29, 0x21, 0xb8, 0xd7, 0xf3, 0x79, 0x56, 0x5c, 0x50, 0x4f, - 0xe9, 0xd9, 0xdd, 0x6a, 0xed, 0x8b, 0x58, 0xb0, 0x73, 0xe2, 0xa0, 0x4c, 0xec, 0xb9, 0x71, 0x30, - 0xeb, 0x15, 0xf9, 0x34, 0x3b, 0x0f, 0x1c, 0xf3, 0xbe, 0xaa, 0xac, 0xf3, 0x65, 0x33, 0x70, 0x2b, - 0xd8, 0xf3, 0x7d, 0x1f, 0xbd, 0xa3, 0xa6, 0xf4, 0xfb, 0x03, 0xd3, 0x96, 0x2e, 0x2f, 0x40, 0x3f, - 0xc6, 0xbc, 0x23, 0xf8, 0x34, 0xbb, 0x10, 0xb2, 0xb1, 0x6a, 0x95, 0xcb, 0xb2, 0xba, 0x48, 0xca, - 0xa8, 0xcd, 0xb6, 0x74, 0x53, 0x41, 0xd6, 0xe7, 0x2a, 0xbb, 0xb8, 0x5b, 0xfe, 0x36, 0x63, 0xb3, - 0x52, 0xbe, 0xa4, 0x9b, 0x2a, 0xdf, 0xfc, 0xbe, 0xd4, 0x1c, 0x31, 0xbb, 0xed, 0x83, 0xac, 0x26, - 0x0d, 0xf7, 0x54, 0xaa, 0xb1, 0x5f, 0x98, 0x5f, 0xd6, 0x4d, 0x13, 0x52, 0xfe, 0x6e, 0x54, 0x5b, - 0x5c, 0xde, 0x4d, 0xcb, 0x38, 0xb0, 0x46, 0xf5, 0x2b, 0x74, 0x57, 0x5d, 0xcf, 0x09, 0x66, 0xd8, - 0x95, 0xdd, 0x66, 0x56, 0x49, 0x60, 0xeb, 0x3f, 0x0a, 0x86, 0x5d, 0xf4, 0xb6, 0x39, 0x1d, 0x43, - 0xb4, 0xbd, 0x3b, 0xfa, 0x8b, 0x57, 0x40, 0x3b, 0xba, 0xcd, 0xaf, 0x55, 0xd1, 0xde, 0xd9, 0x7d, - 0x08, 0xb7, 0x56, 0x36, 0xfc, 0x3b, 0x14, 0xfe, 0xb9, 0xc2, 0xaf, 0x54, 0xcb, 0x5c, 0x70, 0xdc, - 0x25, 0xec, 0x63, 0x2f, 0xc7, 0xda, 0xe0, 0x94, 0xd1, 0x4c, 0x90, 0xc2, 0x88, 0x13, 0x08, 0xd7, - 0x29, 0x1f, 0x0a, 0x64, 0x5e, 0x04, 0xe9, 0x02, 0x32, 0x9f, 0x4c, 0x7a, 0x79, 0xb1, 0x56, 0x45, - 0x73, 0xc1, 0xfa, 0xaf, 0xef, 0xde, 0xbb, 0x36, 0xf1, 0xe0, 0xde, 0xb5, 0x89, 0x17, 0xf6, 0xae, - 0x4d, 0x6c, 0x79, 0x69, 0xed, 0x3e, 0xd6, 0xea, 0x82, 0x5f, 0xe9, 0xac, 0xba, 0x5e, 0xa9, 0xe0, - 0x54, 0x3b, 0x85, 0x5b, 0x9c, 0xc0, 0x3f, 0x3d, 0x8d, 0x24, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, - 0x95, 0x44, 0x8f, 0x32, 0x22, 0x38, 0x00, 0x00, + // 5886 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x5b, 0x67, 0x78, 0x24, 0xc5, + 0x99, 0x66, 0x36, 0xb0, 0xbb, 0xbd, 0xa9, 0x68, 0x58, 0x34, 0xac, 0xf1, 0x4a, 0x42, 0xbe, 0x93, + 0x8c, 0xef, 0x34, 0x8b, 0xc0, 0x23, 0xff, 0xb8, 0x34, 0xab, 0xc4, 0xf8, 0x24, 0xad, 0x56, 0x33, + 0x12, 0xbe, 0x5f, 0x3c, 0xad, 0x99, 0xd2, 0xa8, 0xcd, 0x4c, 0xf7, 0xd0, 0x5d, 0xb3, 0x2b, 0xf9, + 0xc2, 0x43, 0xce, 0xd9, 0x06, 0x96, 0xbc, 0x91, 0xe8, 0x9c, 0xc9, 0xd1, 0x66, 0x97, 0x60, 0x83, + 0xc9, 0x19, 0x16, 0x30, 0xd9, 0x06, 0x93, 0xf3, 0x3d, 0xdf, 0x5b, 0x61, 0xba, 0x47, 0xf2, 0x2f, + 0x75, 0xbd, 0x5f, 0x7a, 0xeb, 0xab, 0xaf, 0xaa, 0xab, 0xaa, 0x47, 0x16, 0xe3, 0xd3, 0xd5, 0x80, + 0x87, 0xa1, 0xeb, 0x7b, 0x9d, 0xd5, 0xc0, 0x17, 0xbe, 0xbd, 0x40, 0xb8, 0xd5, 0x89, 0xd5, 0x2b, + 0x2a, 0x5c, 0x38, 0x45, 0x47, 0x38, 0x12, 0x5d, 0xbd, 0x5f, 0xc9, 0x2f, 0xf9, 0x78, 0x4c, 0xd1, + 0x93, 0x44, 0x0f, 0x7a, 0x2b, 0x61, 0x2d, 0xe9, 0x77, 0x79, 0xb9, 0x98, 0x9f, 0xa9, 0x72, 0x7b, + 0x3f, 0x6b, 0x9e, 0xa8, 0x26, 0x13, 0x2d, 0x89, 0x8e, 0x85, 0xeb, 0x16, 0xec, 0x7a, 0xb6, 0x79, + 0xaf, 0xd1, 0x79, 0xa2, 0x6a, 0x27, 0xad, 0x05, 0x93, 0x65, 0xa7, 0x94, 0x9c, 0xd7, 0x92, 0xe8, + 0x58, 0xae, 0x70, 0x20, 0x52, 0xc2, 0xbd, 0xe4, 0xfc, 0x88, 0x05, 0x10, 0x7b, 0x8d, 0xb5, 0xa8, + 0xc8, 0x0b, 0x6e, 0xc5, 0x29, 0x27, 0x17, 0x44, 0x84, 0x1a, 0x24, 0x79, 0xc1, 0x2f, 0x97, 0x1d, + 0xc1, 0x93, 0x0b, 0xa3, 0x72, 0x05, 0x42, 0x3e, 0xe5, 0x04, 0x21, 0x17, 0xc9, 0xbd, 0x5b, 0x12, + 0x1d, 0x4b, 0x8c, 0x5c, 0x82, 0xf6, 0x6a, 0x6b, 0x21, 0x2f, 0xf3, 0x4a, 0x98, 0x5c, 0xd4, 0x32, + 0xdf, 0x48, 0x25, 0x44, 0x32, 0x27, 0x08, 0x9c, 0x99, 0xe4, 0xe2, 0x96, 0x44, 0xc7, 0x62, 0x2d, + 0x03, 0x74, 0xd0, 0xdb, 0xf3, 0xac, 0x05, 0x7d, 0xd3, 0xd5, 0xc0, 0xfe, 0x9a, 0xe9, 0xea, 0x8a, + 0xae, 0x15, 0x9d, 0x94, 0xb1, 0x4e, 0xc2, 0x29, 0x0d, 0x91, 0xae, 0x33, 0x6b, 0xfe, 0x46, 0xa7, + 0x8c, 0x9e, 0x2f, 0x1b, 0xa5, 0x47, 0xfb, 0x1f, 0xad, 0xc5, 0x85, 0x29, 0xb7, 0x5c, 0x0c, 0xd0, + 0xed, 0xf9, 0x1d, 0x4b, 0xbb, 0xac, 0xba, 0xf5, 0xa8, 0x91, 0xd9, 0xdf, 0xb0, 0xe6, 0x87, 0x6e, + 0x09, 0x9d, 0x5f, 0xd1, 0xb5, 0xaf, 0x54, 0xc9, 0x15, 0x9c, 0xb2, 0x13, 0xf4, 0xd7, 0xbc, 0x42, + 0xce, 0x2d, 0xa9, 0x28, 0xa4, 0x65, 0x77, 0x5a, 0xd6, 0x24, 0x0d, 0xc2, 0x91, 0x62, 0xa6, 0x2a, + 0x13, 0xb2, 0xb4, 0x6b, 0xa5, 0xb4, 0x31, 0x83, 0x33, 0xba, 0x64, 0xd2, 0x8c, 0x53, 0x8b, 0xb5, + 0x2c, 0xa8, 0x7a, 0x47, 0x3a, 0x41, 0x29, 0x3c, 0x92, 0xf2, 0x4f, 0x29, 0x5a, 0x3e, 0x6a, 0x05, + 0x55, 0x2f, 0x13, 0x94, 0xc2, 0x41, 0xee, 0xd9, 0xed, 0xd6, 0xb2, 0x29, 0x27, 0x3c, 0xb2, 0xe8, + 0x86, 0xc2, 0xf5, 0x0a, 0x22, 0xb9, 0x28, 0x92, 0x8a, 0xa5, 0x53, 0x4e, 0xd8, 0xab, 0x04, 0x76, + 0xbb, 0xb5, 0xd8, 0x0f, 0x8a, 0x3c, 0x38, 0x72, 0x82, 0xf2, 0x45, 0xfd, 0x59, 0x26, 0x03, 0xaf, + 0x9b, 0xc9, 0x0a, 0x5e, 0x19, 0x5d, 0x04, 0xe9, 0xba, 0x19, 0xbb, 0xdb, 0x5a, 0xea, 0x94, 0x4a, + 0x44, 0x7e, 0xc8, 0x2f, 0xf2, 0xe4, 0x12, 0x74, 0x6c, 0x95, 0xd4, 0xcd, 0x48, 0x81, 0x70, 0x7d, + 0x8f, 0x84, 0xa3, 0x51, 0xcd, 0x83, 0xbe, 0x61, 0x2d, 0x1a, 0xad, 0x7a, 0x48, 0x7a, 0x8b, 0xb5, + 0x90, 0xaa, 0x35, 0x4c, 0x26, 0x66, 0x65, 0x4e, 0x0a, 0x0e, 0x2a, 0x5b, 0x7b, 0xcb, 0xc0, 0xf6, + 0x1a, 0x6b, 0x01, 0x41, 0x18, 0xa2, 0xb8, 0x2a, 0x70, 0xaa, 0xbd, 0x22, 0x0f, 0x0b, 0x18, 0x1b, + 0xdd, 0x33, 0x20, 0x76, 0x87, 0xb5, 0x98, 0xb2, 0x03, 0xeb, 0xf9, 0xb0, 0x5e, 0x2e, 0xad, 0x15, + 0x8d, 0xd1, 0x45, 0x81, 0x7c, 0x38, 0xf8, 0xa5, 0x85, 0xd6, 0x62, 0x3d, 0xea, 0xf6, 0x62, 0x6b, + 0xc1, 0x70, 0xad, 0x5c, 0x66, 0x7b, 0xd9, 0x4b, 0xac, 0x85, 0x59, 0x4f, 0xa4, 0x0f, 0x63, 0x09, + 0xdb, 0xb2, 0xf6, 0x1e, 0x73, 0xf1, 0x3c, 0xcf, 0x5e, 0x6a, 0x2d, 0xea, 0x2f, 0xfb, 0x8e, 0x38, + 0xb4, 0x8b, 0xcd, 0x37, 0x8d, 0xf4, 0x61, 0x6c, 0x01, 0x69, 0xe5, 0x44, 0xe0, 0x7a, 0x25, 0xb6, + 0x90, 0x8c, 0xd7, 0xcd, 0x08, 0x1e, 0xb2, 0xbd, 0xed, 0x65, 0xd6, 0xe2, 0xa1, 0x99, 0xf0, 0xe8, + 0xf2, 0x3a, 0x57, 0x30, 0x6e, 0x33, 0x6b, 0x19, 0x5a, 0xbd, 0x72, 0x0a, 0xb0, 0x49, 0x7b, 0x1f, + 0x6b, 0xb9, 0x44, 0x6a, 0x81, 0x43, 0xb9, 0x63, 0x25, 0x7b, 0xb9, 0xb5, 0x04, 0x50, 0x9f, 0x57, + 0xab, 0xb0, 0x29, 0xe3, 0xe1, 0x70, 0x3e, 0xcd, 0x5c, 0xd3, 0xca, 0x71, 0xc1, 0xbe, 0x6b, 0x54, + 0xf3, 0x6e, 0x85, 0xb3, 0xa3, 0x4c, 0xf3, 0xdb, 0xa1, 0xef, 0xb1, 0xb2, 0xbd, 0xca, 0xda, 0x27, + 0xef, 0xf6, 0xae, 0x1b, 0xe7, 0x05, 0xe1, 0x07, 0x9a, 0xf6, 0x8c, 0xbd, 0xc2, 0x5a, 0x32, 0xee, + 0x94, 0x6b, 0x7c, 0xd0, 0x0d, 0x05, 0xbb, 0x30, 0x41, 0xed, 0x1e, 0xbf, 0x5c, 0xab, 0x78, 0xa3, + 0x7c, 0x92, 0xed, 0xa6, 0xfe, 0x2e, 0xec, 0xf1, 0x6b, 0x9e, 0x60, 0xd7, 0x37, 0xd9, 0x8b, 0xad, + 0xf9, 0xb9, 0x5a, 0x85, 0xdd, 0x80, 0xa7, 0xcc, 0xc6, 0x12, 0xbb, 0x11, 0x4f, 0x43, 0xae, 0xc7, + 0x6e, 0x92, 0x4f, 0xce, 0x34, 0xbb, 0xb9, 0x89, 0x6c, 0xfa, 0xdd, 0x20, 0x14, 0xec, 0x96, 0x26, + 0x9b, 0x59, 0x4b, 0x07, 0x02, 0xbf, 0x56, 0xed, 0xf1, 0xbd, 0x82, 0x23, 0xd8, 0xad, 0x4d, 0xf6, + 0x4a, 0xcb, 0xca, 0x94, 0x4a, 0x47, 0xae, 0x73, 0x45, 0xc6, 0x2b, 0xb2, 0xdb, 0x9a, 0x28, 0xa4, + 0x02, 0xd6, 0x07, 0xec, 0xf6, 0xa8, 0xc2, 0x77, 0xfc, 0x80, 0xdd, 0x21, 0xe3, 0x8a, 0x22, 0xbb, + 0xb3, 0xc9, 0x5e, 0x4a, 0x79, 0x2d, 0x16, 0xf9, 0x46, 0x76, 0x17, 0xec, 0x64, 0x63, 0xc4, 0xaf, + 0xb2, 0xdf, 0xc1, 0x4e, 0xb6, 0x73, 0x4e, 0xa5, 0xca, 0x7e, 0x0f, 0xed, 0x71, 0x27, 0x20, 0xe9, + 0xdd, 0x4d, 0xf6, 0x32, 0x6b, 0xd1, 0xb8, 0x13, 0x40, 0xb4, 0xab, 0xc9, 0x5e, 0x6e, 0x2d, 0x1e, + 0x77, 0x02, 0xd7, 0xf1, 0x0a, 0x9c, 0xed, 0x6e, 0xb2, 0xf7, 0xb1, 0x96, 0x51, 0x9a, 0x32, 0xb4, + 0x24, 0x64, 0x4a, 0x25, 0x76, 0x4f, 0x93, 0x6d, 0x5b, 0xcb, 0x09, 0x5a, 0x3f, 0xf1, 0x5d, 0x5e, + 0x10, 0x84, 0xdd, 0xdb, 0x64, 0x27, 0xad, 0x7d, 0x33, 0xd5, 0x6a, 0xe0, 0x4f, 0x23, 0x25, 0x7a, + 0xca, 0xb0, 0xfb, 0xc0, 0x65, 0xd4, 0xdf, 0x34, 0x5c, 0xab, 0x4c, 0xf0, 0x80, 0x6d, 0x6d, 0xb6, + 0x97, 0x58, 0x0b, 0x46, 0x1d, 0xef, 0x28, 0xb6, 0xad, 0x99, 0x44, 0xbd, 0xdc, 0x0b, 0x39, 0xda, + 0xdb, 0x9b, 0x29, 0x74, 0x4f, 0xad, 0xc2, 0xc9, 0x9a, 0xed, 0x68, 0xa6, 0x04, 0x8d, 0xf0, 0xa0, + 0xc0, 0x3d, 0x01, 0x85, 0x9d, 0xcd, 0x94, 0xbe, 0x61, 0xe1, 0x96, 0x39, 0xbb, 0x12, 0x7e, 0x06, + 0xb9, 0x53, 0x64, 0x57, 0x35, 0x53, 0x16, 0x06, 0x9d, 0x12, 0xbb, 0xba, 0x99, 0x3a, 0x8a, 0xfc, + 0x62, 0xe0, 0xd8, 0x35, 0x08, 0x31, 0xe8, 0xe8, 0xf6, 0xb5, 0x08, 0x31, 0x2c, 0xa6, 0x64, 0xf3, + 0x3a, 0xe8, 0xd7, 0x57, 0x1a, 0x76, 0xce, 0xf0, 0xc1, 0x5f, 0x4e, 0x58, 0xcb, 0x63, 0x6b, 0x8f, + 0xbd, 0xd2, 0x5a, 0x3a, 0xe6, 0x85, 0x55, 0x5e, 0x70, 0x27, 0x5d, 0x5e, 0x64, 0x7b, 0x51, 0x71, + 0xf6, 0x38, 0xa1, 0xc8, 0x7a, 0x22, 0x13, 0x66, 0x3d, 0xc1, 0x12, 0x54, 0x9c, 0x06, 0x19, 0xe5, + 0x4e, 0x99, 0xcd, 0xb3, 0xf7, 0xb5, 0x56, 0x1a, 0x48, 0xd5, 0xfb, 0x7c, 0x7b, 0x3f, 0x8b, 0x19, + 0x50, 0x97, 0xf6, 0x82, 0x98, 0x35, 0x0a, 0x74, 0x21, 0x55, 0x64, 0x5d, 0x51, 0x57, 0xfc, 0xde, + 0x31, 0x4d, 0xd4, 0xee, 0x22, 0x0d, 0x51, 0x54, 0xc9, 0xc6, 0xb2, 0x6d, 0x6b, 0x45, 0x1d, 0x02, + 0x9d, 0xa5, 0x3a, 0xb2, 0xc4, 0x14, 0x9f, 0x65, 0x3a, 0x8c, 0x44, 0x35, 0xa1, 0xe5, 0x71, 0x07, + 0x60, 0xb4, 0xc2, 0xde, 0xdf, 0xb2, 0x23, 0xaa, 0x9a, 0xd2, 0xca, 0xb8, 0x2e, 0x38, 0x31, 0x1d, + 0x4c, 0x39, 0x94, 0xb4, 0xf6, 0xd3, 0xc1, 0x0c, 0x0a, 0x66, 0xab, 0xec, 0x26, 0x6b, 0xdf, 0x18, + 0xac, 0xc8, 0xed, 0x6f, 0x27, 0xad, 0xfd, 0x62, 0x02, 0xcd, 0xaf, 0x69, 0x96, 0x27, 0x50, 0x4c, + 0xda, 0x07, 0x58, 0xab, 0xe2, 0x06, 0x9a, 0xe5, 0x01, 0xb3, 0x2c, 0x40, 0x74, 0xb5, 0x1e, 0x24, + 0x19, 0x52, 0xf2, 0x5c, 0xa3, 0xd9, 0x6b, 0x10, 0x34, 0x9b, 0x75, 0xff, 0x35, 0xaa, 0x58, 0xb6, + 0x68, 0xfa, 0x1a, 0xd7, 0x24, 0x5b, 0x1b, 0xdd, 0x80, 0xe3, 0x41, 0xba, 0x53, 0x46, 0x5d, 0x53, + 0x6c, 0x6b, 0xd4, 0x07, 0xc3, 0xaf, 0xe9, 0xe1, 0x25, 0x6b, 0xc9, 0xaf, 0x43, 0x67, 0x5c, 0x42, + 0x60, 0xf7, 0x75, 0x6d, 0x2c, 0x31, 0xc5, 0xed, 0x60, 0xdd, 0x6b, 0x89, 0x6a, 0x66, 0xdf, 0x88, + 0x3b, 0x00, 0xaf, 0x7f, 0xd2, 0xdd, 0x53, 0xaa, 0x9a, 0xd5, 0x3f, 0xc7, 0x75, 0xc1, 0xa9, 0xd3, + 0x24, 0x53, 0x69, 0x49, 0x5e, 0x5d, 0xda, 0x45, 0x1d, 0x06, 0xb7, 0x43, 0xcd, 0x38, 0x1a, 0x5c, + 0xf1, 0x3b, 0xcc, 0x0c, 0x98, 0x91, 0x68, 0x8e, 0xdf, 0x9c, 0xed, 0x0c, 0x3c, 0xd3, 0xf6, 0x6a, + 0x6b, 0xff, 0x06, 0x13, 0xcd, 0xb5, 0x7b, 0xb6, 0x0d, 0xf8, 0x7e, 0x4b, 0xe7, 0x10, 0xab, 0x18, + 0xb8, 0xfe, 0x8b, 0xee, 0x96, 0x84, 0xc0, 0xf3, 0x5f, 0x75, 0x0e, 0x25, 0xa6, 0x38, 0xfe, 0x9b, + 0xee, 0xac, 0x44, 0x35, 0xbf, 0x7f, 0x8f, 0x3b, 0x00, 0xb7, 0xff, 0xd0, 0xf1, 0x95, 0xaa, 0xe6, + 0x95, 0x89, 0xeb, 0x82, 0xd3, 0x3a, 0x5a, 0xda, 0x7a, 0x7c, 0xa7, 0xcc, 0xc3, 0x02, 0x27, 0x46, + 0xaf, 0xb5, 0xd0, 0x3a, 0xab, 0x11, 0x10, 0x7a, 0xbd, 0xc5, 0xde, 0xcf, 0x5a, 0xa9, 0x21, 0x1d, + 0xf9, 0x8d, 0x16, 0x7b, 0x5f, 0x6b, 0x85, 0x46, 0x15, 0xcb, 0x37, 0x63, 0xd6, 0x60, 0xf3, 0x56, + 0x8b, 0xbd, 0xca, 0x62, 0xc6, 0x5a, 0x93, 0xf9, 0x4b, 0x4c, 0x13, 0x5c, 0xfe, 0xda, 0x42, 0xaf, + 0xe1, 0xc1, 0x3c, 0xd1, 0x28, 0xd2, 0xdb, 0x79, 0x30, 0x8f, 0xf8, 0x9c, 0xde, 0x92, 0x83, 0xf9, + 0xfa, 0x1b, 0x78, 0x99, 0xb5, 0x78, 0x30, 0xaf, 0x22, 0x96, 0xa4, 0x22, 0x42, 0x4d, 0xd9, 0x2b, + 0x2c, 0x6b, 0x30, 0x6f, 0x62, 0xb8, 0x52, 0x06, 0xe7, 0xdf, 0x85, 0xef, 0x3e, 0xf2, 0xed, 0x01, + 0xee, 0x83, 0x6f, 0x1f, 0xbe, 0xfb, 0xb4, 0xef, 0x2a, 0x7c, 0xf7, 0x29, 0xdf, 0x47, 0x4b, 0x45, + 0xf8, 0x0e, 0xe0, 0xbb, 0xcf, 0xf8, 0x0e, 0xa5, 0x0c, 0xbe, 0x05, 0xf9, 0x1e, 0x00, 0xef, 0x69, + 0x82, 0x07, 0x24, 0xef, 0x19, 0xf2, 0x3d, 0x60, 0x78, 0x7f, 0x8f, 0x7c, 0x0f, 0x68, 0xde, 0xff, + 0x2d, 0x15, 0xe1, 0xfb, 0x7f, 0xc8, 0xf7, 0x40, 0x9d, 0xf7, 0xff, 0x4a, 0x19, 0x7c, 0xff, 0x9f, + 0x7c, 0x39, 0x73, 0x47, 0x70, 0x2c, 0xb7, 0xec, 0x43, 0x24, 0x4e, 0x23, 0x08, 0xf4, 0x11, 0x06, + 0x48, 0x43, 0x3a, 0xde, 0xc7, 0x18, 0x20, 0x8d, 0xaa, 0xb0, 0x9f, 0xc4, 0xac, 0x11, 0xfd, 0xd3, + 0x16, 0x7a, 0x15, 0x0d, 0x72, 0xb9, 0x9c, 0xb3, 0xcf, 0x5a, 0xf0, 0xa6, 0xe2, 0x6a, 0x29, 0x65, + 0x9f, 0xc3, 0x02, 0x6d, 0xed, 0xf9, 0x8b, 0x16, 0x22, 0x05, 0x48, 0xb9, 0xfd, 0xb2, 0x6e, 0x04, + 0x9f, 0xc7, 0xb4, 0x92, 0x46, 0xd6, 0x13, 0x3c, 0xd8, 0xe8, 0x94, 0xc9, 0xed, 0xb1, 0xad, 0xe4, + 0x46, 0x23, 0xf0, 0x7c, 0x5c, 0x2b, 0xbd, 0x45, 0x07, 0x30, 0x26, 0xc7, 0x25, 0x68, 0x23, 0x30, + 0x20, 0x07, 0xe5, 0x78, 0xec, 0x70, 0x06, 0xcc, 0xa8, 0x9c, 0x90, 0x20, 0x86, 0x03, 0x7a, 0x58, + 0x4e, 0x54, 0xba, 0x88, 0x74, 0x52, 0x82, 0xde, 0x9c, 0x03, 0xf5, 0x81, 0x39, 0x59, 0x49, 0x91, + 0xbd, 0x53, 0xb0, 0x37, 0xea, 0xdb, 0x40, 0x21, 0xce, 0x80, 0xa0, 0x6f, 0x03, 0x42, 0x9c, 0x89, + 0x10, 0x7d, 0x1b, 0x74, 0x88, 0xb3, 0x10, 0xa2, 0x6f, 0x83, 0x0a, 0x71, 0xb6, 0xd2, 0x45, 0x88, + 0x73, 0x10, 0xa2, 0x6f, 0x83, 0x09, 0x71, 0xae, 0x92, 0x22, 0xc4, 0x79, 0x08, 0x31, 0x8c, 0x5e, + 0x5c, 0x00, 0xc1, 0xb0, 0xec, 0x85, 0xdc, 0xa7, 0x0d, 0x9b, 0x5e, 0x6c, 0x46, 0x88, 0x61, 0xdd, + 0x8b, 0x8b, 0x94, 0x2e, 0x42, 0x5c, 0x8c, 0x10, 0xc3, 0xf5, 0x5e, 0x5c, 0xa2, 0xa4, 0x08, 0x71, + 0xa9, 0xf4, 0x54, 0x2b, 0x97, 0x65, 0x4f, 0xb6, 0x48, 0x6d, 0xb4, 0x11, 0x6a, 0x6b, 0x82, 0x76, + 0x42, 0x12, 0xd0, 0xe1, 0xb6, 0xd1, 0x66, 0x60, 0x99, 0xc4, 0x54, 0xc8, 0xed, 0x11, 0x3b, 0x84, + 0xdd, 0x91, 0xa0, 0x12, 0x51, 0x76, 0x3a, 0xf4, 0xce, 0x88, 0x16, 0xc2, 0x5f, 0x09, 0xe2, 0x23, + 0xe5, 0x9a, 0x5c, 0x9f, 0x76, 0x25, 0xb0, 0x1d, 0x2a, 0xd7, 0xcc, 0x22, 0xb4, 0x3b, 0x41, 0x1b, + 0x37, 0x42, 0x88, 0xdd, 0xbd, 0x60, 0x3b, 0xe4, 0x7a, 0x4a, 0xff, 0x3e, 0x10, 0x41, 0x5b, 0x1b, + 0xdc, 0x0f, 0x8f, 0x80, 0xc8, 0xe2, 0x8f, 0x52, 0xa3, 0x56, 0x16, 0x6e, 0xb5, 0x3c, 0x03, 0xa3, + 0x07, 0x12, 0x54, 0xd2, 0x1a, 0xd2, 0x76, 0x0f, 0x22, 0xb4, 0x46, 0xc9, 0xf4, 0x4f, 0x20, 0xdb, + 0xeb, 0x6e, 0x74, 0x8b, 0x72, 0xb1, 0x7a, 0x08, 0xa9, 0x90, 0x80, 0x36, 0x7b, 0x38, 0xa1, 0x6a, + 0x4f, 0xc2, 0x64, 0xf7, 0x48, 0x82, 0x56, 0x25, 0x03, 0x69, 0xcd, 0x47, 0xd1, 0x93, 0x21, 0xbf, + 0x08, 0x5f, 0x8f, 0xc1, 0xf9, 0x90, 0x5f, 0xd4, 0xe2, 0xc7, 0x31, 0x2a, 0x43, 0x7e, 0x91, 0x5c, + 0x3c, 0x91, 0xa0, 0xad, 0x66, 0x84, 0xcc, 0x98, 0x17, 0xba, 0x25, 0x8f, 0x17, 0xd9, 0x93, 0x09, + 0xfb, 0x40, 0xab, 0x49, 0xe5, 0x43, 0xa3, 0x46, 0xfa, 0x54, 0xc2, 0x5e, 0x6d, 0xad, 0x6a, 0x90, + 0xe6, 0xa4, 0xec, 0xe9, 0xa8, 0x2c, 0x17, 0xb7, 0x7b, 0x06, 0xf1, 0x62, 0x32, 0x65, 0xf5, 0x6c, + 0xc2, 0xfe, 0x8a, 0xb5, 0xbf, 0xa4, 0x35, 0x2b, 0xdc, 0x73, 0x09, 0xfb, 0x00, 0x6b, 0xbf, 0xb8, + 0x50, 0xd9, 0x3d, 0x1f, 0x11, 0x35, 0x04, 0x7b, 0x21, 0x61, 0x37, 0x59, 0x76, 0x54, 0xa4, 0x6c, + 0xf6, 0x24, 0xec, 0xaf, 0x5a, 0x49, 0x3d, 0x74, 0xb3, 0xa2, 0xbd, 0x28, 0xa9, 0x34, 0x88, 0x95, + 0xed, 0x4b, 0x31, 0x61, 0x43, 0xc4, 0x97, 0x25, 0x99, 0x98, 0x50, 0xd9, 0xfd, 0x39, 0x61, 0xb7, + 0x59, 0x6b, 0xb4, 0xa8, 0xdf, 0x0f, 0x0a, 0x75, 0x3b, 0x63, 0xff, 0x4a, 0xc2, 0x6e, 0xb5, 0x0e, + 0x9c, 0x5b, 0x49, 0xf9, 0x79, 0x75, 0x0e, 0x95, 0x06, 0x16, 0xaf, 0x41, 0x25, 0x5a, 0x2a, 0xb3, + 0x02, 0xbd, 0x9e, 0xb0, 0x9b, 0xad, 0xd5, 0x73, 0xa9, 0xa8, 0x30, 0x6f, 0x20, 0x45, 0x51, 0x85, + 0x58, 0x6f, 0xde, 0x9c, 0x65, 0xdf, 0xc0, 0xe1, 0x2d, 0x54, 0x59, 0x66, 0x02, 0x73, 0xe3, 0x57, + 0x8c, 0x2a, 0x32, 0x33, 0x11, 0x8e, 0x51, 0xeb, 0xd7, 0xba, 0x85, 0xfa, 0xfc, 0x0d, 0xc3, 0x31, + 0x6c, 0xc2, 0xcc, 0xab, 0xdf, 0x32, 0xbc, 0x54, 0xb9, 0x4b, 0x4b, 0x6e, 0xde, 0xef, 0xe5, 0x05, + 0x76, 0x7d, 0x1c, 0x22, 0x27, 0x37, 0x18, 0xa8, 0x97, 0x17, 0x24, 0x74, 0x63, 0x1c, 0x22, 0xc3, + 0x9b, 0x18, 0x0e, 0x41, 0xdc, 0x95, 0x8b, 0xf5, 0xcd, 0x8c, 0xe6, 0x55, 0x7f, 0xd9, 0xf7, 0x03, + 0xe3, 0xfb, 0x96, 0x06, 0x8c, 0x3c, 0xdd, 0x5a, 0xc7, 0x8c, 0xf7, 0xdb, 0x1a, 0x30, 0xb2, 0xbd, + 0x9d, 0xd1, 0x2a, 0x01, 0x0c, 0xfe, 0xef, 0x60, 0xf2, 0x78, 0x56, 0xf3, 0xe4, 0xdc, 0xdb, 0x8d, + 0xf0, 0x68, 0x93, 0x8b, 0x7b, 0xea, 0x4d, 0xb2, 0xbe, 0x97, 0xd9, 0xfb, 0x5b, 0xfb, 0xa0, 0x79, + 0x84, 0x2b, 0xa6, 0xfa, 0x03, 0xa7, 0x20, 0xd7, 0x1a, 0x46, 0xd3, 0x3a, 0x86, 0x93, 0xf5, 0xfd, + 0xb3, 0x61, 0xf2, 0xf2, 0x07, 0x64, 0x73, 0xd0, 0x2f, 0x1d, 0x92, 0x09, 0x4a, 0xec, 0x21, 0x84, + 0x18, 0xf4, 0x4b, 0x5d, 0x99, 0xa0, 0x14, 0xb2, 0x87, 0x19, 0xce, 0x75, 0x7e, 0xa9, 0x8b, 0x3d, + 0xc2, 0x68, 0x89, 0x27, 0xbd, 0xb5, 0xec, 0x51, 0xa6, 0x8e, 0x8d, 0x45, 0xf6, 0x18, 0xa3, 0x8a, + 0xa5, 0x47, 0x72, 0x9a, 0xe3, 0xbc, 0x88, 0x03, 0xdf, 0x00, 0xf7, 0xd8, 0xe3, 0x8c, 0x4e, 0x82, + 0x23, 0xfe, 0x26, 0xf6, 0x04, 0xf4, 0x7b, 0x7c, 0x6f, 0x23, 0x7b, 0x12, 0x6e, 0x7a, 0x46, 0x7b, + 0x0e, 0xed, 0x62, 0x4f, 0x01, 0xa6, 0x81, 0x67, 0x4f, 0xcb, 0xc7, 0xa3, 0x03, 0xc1, 0x9e, 0xc1, + 0x63, 0xa6, 0xe0, 0x87, 0xec, 0x59, 0xf9, 0x18, 0xba, 0x1e, 0x7b, 0x0e, 0xc4, 0x32, 0xc2, 0xf1, + 0xc0, 0xf3, 0x79, 0x64, 0x8a, 0x9a, 0x92, 0xe8, 0x0b, 0x88, 0xd5, 0xe3, 0x87, 0x6c, 0x8f, 0x7a, + 0x12, 0xec, 0x45, 0xf4, 0xac, 0x97, 0x97, 0x02, 0xce, 0x43, 0xf6, 0x12, 0xf0, 0xbe, 0xe9, 0x2a, + 0x7b, 0x99, 0xd9, 0x8b, 0xac, 0x79, 0x23, 0x59, 0xf6, 0x67, 0x28, 0x8c, 0x3a, 0x45, 0xd7, 0xf1, + 0x42, 0xf6, 0x0a, 0x14, 0x72, 0xae, 0xc7, 0x5e, 0xc5, 0x53, 0xde, 0xf1, 0xd8, 0x6b, 0x8c, 0xd6, + 0xda, 0x7c, 0x50, 0xf3, 0x0a, 0x8e, 0xc0, 0x9a, 0xf9, 0x3a, 0x8a, 0x44, 0x23, 0xc8, 0xf7, 0x1b, + 0x74, 0xc4, 0x5a, 0xa9, 0x21, 0x5d, 0x86, 0x6f, 0xc6, 0x14, 0xc7, 0x5c, 0x4f, 0xb0, 0xb7, 0x50, + 0xaa, 0x83, 0x7e, 0xc9, 0x2d, 0x38, 0xe5, 0x8c, 0x57, 0x64, 0x97, 0x25, 0xb1, 0x63, 0x90, 0xc0, + 0xfa, 0x80, 0x5d, 0x9e, 0x8c, 0x28, 0x7c, 0xc7, 0x0f, 0xd8, 0x15, 0x49, 0x8a, 0x3f, 0xe6, 0x39, + 0xc1, 0xcc, 0xb0, 0x8f, 0x9d, 0xc9, 0x96, 0x24, 0x05, 0xd3, 0x88, 0x0e, 0xb6, 0x35, 0x49, 0xc1, + 0x34, 0x0a, 0x56, 0xdb, 0x62, 0xd0, 0xb7, 0x73, 0xeb, 0x87, 0xd9, 0xf6, 0x24, 0x95, 0x20, 0x20, + 0xf3, 0xda, 0xd9, 0x91, 0xa4, 0xb7, 0x5f, 0x1d, 0x83, 0xed, 0xce, 0x24, 0x55, 0x56, 0x1d, 0xd4, + 0x61, 0xae, 0x84, 0x03, 0xd5, 0xca, 0x86, 0xb8, 0x73, 0xba, 0x0a, 0x0e, 0xf4, 0x8b, 0x53, 0x81, + 0x57, 0xa3, 0x23, 0xe4, 0x4b, 0x01, 0xd7, 0x80, 0x8d, 0x7c, 0x05, 0x2b, 0xe8, 0x5a, 0xe8, 0xd0, + 0x2b, 0x58, 0x01, 0xd7, 0x21, 0x1b, 0x59, 0x4f, 0xa8, 0xf6, 0x0f, 0xa1, 0x40, 0x6f, 0x5f, 0x05, + 0xfc, 0x08, 0x0a, 0xf2, 0x3a, 0x26, 0xe7, 0x96, 0xd8, 0x8f, 0x93, 0x54, 0x13, 0xb8, 0x8d, 0xa1, + 0xe6, 0x4f, 0xb4, 0xf8, 0x3b, 0x3e, 0xda, 0x3f, 0xd5, 0xed, 0x61, 0x5e, 0xa2, 0xf6, 0xcf, 0xea, + 0xfe, 0xf3, 0x41, 0x8d, 0xb3, 0x9f, 0x47, 0x48, 0x02, 0xf8, 0x45, 0xbc, 0x7b, 0xc0, 0x7e, 0x09, + 0x25, 0x18, 0xf5, 0x3b, 0xe5, 0x90, 0xb3, 0x5f, 0x61, 0x48, 0xa4, 0x95, 0x44, 0x7e, 0x2d, 0x33, + 0xa0, 0xcd, 0x24, 0xf8, 0x1b, 0x39, 0xb4, 0x7c, 0x52, 0xe4, 0xa6, 0xdc, 0x49, 0xc1, 0xae, 0x97, + 0xc1, 0xdc, 0xd2, 0x94, 0x02, 0x6e, 0x40, 0x8e, 0x0d, 0x1b, 0x9a, 0x3d, 0xe8, 0xe4, 0xef, 0x93, + 0xf4, 0xd2, 0xa9, 0xb3, 0x32, 0x82, 0xbb, 0x93, 0xf4, 0x5a, 0x8c, 0xb1, 0x33, 0xb2, 0x5d, 0x30, + 0xaa, 0xb3, 0x34, 0x82, 0xdd, 0x49, 0x7a, 0x5f, 0x46, 0xd8, 0x1a, 0xc9, 0x3d, 0x49, 0x7a, 0x0f, + 0xc5, 0x59, 0x1b, 0xe1, 0xbd, 0x3a, 0xb3, 0xf2, 0x46, 0xed, 0xb7, 0xe8, 0xe1, 0x00, 0x17, 0x23, + 0x4e, 0xe0, 0x54, 0xd4, 0x46, 0xea, 0xc6, 0x24, 0xf6, 0x98, 0x5c, 0x8c, 0x3b, 0x01, 0xbb, 0x09, + 0x8d, 0x51, 0x7f, 0x13, 0x25, 0xfa, 0x66, 0x34, 0x72, 0x52, 0x72, 0x0b, 0x92, 0x8a, 0x1b, 0x1e, + 0x53, 0x47, 0xb7, 0xc2, 0x9f, 0xc2, 0xf4, 0x96, 0xeb, 0xb6, 0xa4, 0xb9, 0xe2, 0x43, 0x65, 0xde, + 0x8e, 0x8c, 0xc9, 0x36, 0xca, 0xf7, 0x8e, 0x08, 0x80, 0x32, 0xbd, 0x13, 0x45, 0x25, 0x01, 0x45, + 0xea, 0xae, 0x88, 0x0e, 0x76, 0x77, 0xbf, 0x4b, 0xd2, 0x7a, 0x93, 0xf5, 0xc8, 0xe3, 0xd6, 0x66, + 0xe2, 0x95, 0xf5, 0xe4, 0xfc, 0x68, 0x96, 0xd5, 0xa0, 0x39, 0xc9, 0xfb, 0xae, 0xac, 0xa7, 0x1c, + 0xed, 0x50, 0xba, 0x70, 0xb2, 0xb3, 0x59, 0x16, 0x81, 0xe1, 0x7a, 0xa5, 0x92, 0x62, 0x6b, 0x78, + 0x95, 0xf4, 0x34, 0x49, 0x99, 0xa3, 0x30, 0x27, 0xb6, 0x40, 0x1b, 0x6d, 0x84, 0x3a, 0xa9, 0x85, + 0x52, 0x20, 0x01, 0x1d, 0xee, 0x64, 0x9c, 0x28, 0x24, 0xa6, 0x42, 0x9e, 0x12, 0xb1, 0x43, 0xd8, + 0x53, 0x71, 0x78, 0x51, 0x76, 0x3a, 0xf4, 0x69, 0x2d, 0xe8, 0xd0, 0x24, 0x45, 0x3a, 0xbd, 0x05, + 0x34, 0x26, 0x11, 0xe5, 0x8c, 0x16, 0x49, 0x43, 0x47, 0x38, 0x13, 0x47, 0x9a, 0xec, 0xa4, 0xf2, + 0x7e, 0x96, 0xd2, 0x85, 0xe7, 0xb3, 0x55, 0x28, 0xe3, 0xf5, 0x9c, 0x48, 0x6c, 0x74, 0xea, 0x5c, + 0xa5, 0x2e, 0xb7, 0xf7, 0x38, 0xeb, 0xf4, 0x38, 0x21, 0x3f, 0x62, 0x8a, 0x23, 0x95, 0x6f, 0xcb, + 0x93, 0xab, 0x42, 0x10, 0xff, 0x1d, 0x79, 0x42, 0x56, 0x90, 0x66, 0xf1, 0x37, 0x79, 0x42, 0x56, + 0xa8, 0xe2, 0xf2, 0x6e, 0xcc, 0x1a, 0x8c, 0xde, 0x93, 0x27, 0x64, 0x6d, 0xad, 0x79, 0xbd, 0x1f, + 0xd3, 0x04, 0x99, 0x0f, 0x40, 0x35, 0x83, 0x6a, 0x0a, 0x66, 0xaa, 0x82, 0x9d, 0xdf, 0xa6, 0x80, + 0x3e, 0x4f, 0x02, 0x17, 0xb4, 0xe1, 0xad, 0xed, 0x57, 0xf0, 0x75, 0x89, 0x5d, 0xd8, 0x86, 0x1b, + 0xdf, 0xde, 0x6f, 0xb2, 0xcd, 0x10, 0x8c, 0x38, 0x61, 0xb8, 0xc9, 0x0f, 0x8a, 0xec, 0xa2, 0x36, + 0x4c, 0x65, 0xc7, 0x2b, 0xfa, 0x15, 0x79, 0xf1, 0x7d, 0x71, 0x1b, 0x5e, 0x43, 0x87, 0x67, 0x0e, + 0x61, 0x97, 0xe8, 0xc7, 0x2e, 0x76, 0x29, 0x02, 0x8c, 0x79, 0x05, 0xed, 0xf1, 0xb2, 0x36, 0x9a, + 0x6e, 0x75, 0x80, 0x17, 0x07, 0xb9, 0x57, 0x12, 0x53, 0xec, 0xf2, 0x36, 0xa2, 0x5b, 0xe7, 0x96, + 0x1d, 0x67, 0x57, 0x68, 0x48, 0xb1, 0xcb, 0x8e, 0xb3, 0x2d, 0x6d, 0x38, 0x3a, 0x79, 0x05, 0xbf, + 0xc8, 0xd9, 0x56, 0x34, 0x7a, 0x39, 0x1a, 0xdb, 0x40, 0x35, 0x37, 0x74, 0x28, 0xdb, 0x0e, 0xaa, + 0xbd, 0x8e, 0x70, 0x26, 0x9c, 0x90, 0xb3, 0x6b, 0xda, 0xb0, 0x53, 0xc0, 0xce, 0xc0, 0xdf, 0x14, + 0xb2, 0x6b, 0x41, 0xbd, 0xa7, 0x16, 0x04, 0xdc, 0x13, 0x63, 0x21, 0x0f, 0xd8, 0x75, 0xe0, 0x8b, + 0xc7, 0x1f, 0xb6, 0xc9, 0x6b, 0x05, 0xcf, 0xe3, 0xf8, 0xb0, 0x91, 0xed, 0x65, 0x3f, 0x02, 0x34, + 0x88, 0xe3, 0x6d, 0xc8, 0x03, 0x91, 0xed, 0x65, 0x3f, 0x46, 0x27, 0xa2, 0x10, 0x4d, 0xff, 0x6c, + 0x2f, 0xfb, 0x49, 0x1b, 0xae, 0xa0, 0x79, 0x10, 0xd2, 0x08, 0xfc, 0x14, 0x91, 0xe4, 0x85, 0xbc, + 0x44, 0x7e, 0xd6, 0x26, 0xb7, 0x21, 0x9b, 0xe4, 0xe2, 0xf0, 0xf3, 0x36, 0x2a, 0xc8, 0x5c, 0x99, + 0xf3, 0x2a, 0xbb, 0xbb, 0x4d, 0xee, 0x17, 0x0a, 0x47, 0xb1, 0x5d, 0x32, 0xb9, 0xbc, 0xcc, 0x9d, + 0x90, 0x03, 0xd9, 0xdd, 0x46, 0x05, 0xa2, 0x2f, 0xfd, 0xbc, 0x19, 0x79, 0xeb, 0x7b, 0x4f, 0x1b, + 0x0d, 0xbc, 0xb9, 0x25, 0xd2, 0xf0, 0xbd, 0x6d, 0xea, 0xf0, 0x6c, 0x90, 0xfb, 0xd0, 0x05, 0x5a, + 0x09, 0x0c, 0x74, 0x3f, 0x20, 0x5c, 0x76, 0x6a, 0xe8, 0x0f, 0x6d, 0x54, 0x6f, 0xea, 0xda, 0x4e, + 0x83, 0x7f, 0x84, 0x1e, 0x6e, 0xcd, 0x34, 0xf4, 0x40, 0x9b, 0x9c, 0xee, 0x5c, 0x64, 0x84, 0xef, + 0xb1, 0x07, 0x4d, 0x73, 0x58, 0xf8, 0x0e, 0xfb, 0x53, 0x9b, 0x5c, 0x1c, 0xb8, 0x48, 0x43, 0xfc, + 0x50, 0xbd, 0x0d, 0xf9, 0xc3, 0x18, 0xb4, 0x6c, 0x98, 0x1d, 0xd9, 0x78, 0x18, 0x7b, 0x04, 0xde, + 0x65, 0x83, 0x8a, 0xce, 0x11, 0xec, 0xd1, 0x08, 0x34, 0xe4, 0x54, 0xab, 0xbc, 0xc8, 0x1e, 0xab, + 0x9b, 0xa4, 0xd9, 0xe3, 0x72, 0xb0, 0xc6, 0xb2, 0xbd, 0xec, 0x09, 0x14, 0xd7, 0xb8, 0x2b, 0x78, + 0x18, 0x1e, 0xee, 0x84, 0x53, 0xec, 0x49, 0xa5, 0x08, 0xe9, 0x53, 0x08, 0x4c, 0xd9, 0xcf, 0x4d, + 0x39, 0x41, 0x91, 0x3d, 0xdd, 0x66, 0xbe, 0x53, 0xb8, 0x1e, 0xde, 0x6a, 0xcf, 0x48, 0xe6, 0x65, + 0xf7, 0x28, 0x4e, 0xcd, 0x47, 0x5a, 0xb1, 0x9d, 0x53, 0xad, 0x47, 0x5b, 0xb1, 0xa1, 0xe4, 0x25, + 0x3e, 0x5d, 0xa5, 0xf6, 0x63, 0xad, 0xb4, 0x12, 0xc9, 0xf6, 0x58, 0xbe, 0xff, 0x5b, 0x84, 0x3d, + 0x1e, 0xc1, 0xb4, 0xdd, 0x13, 0xad, 0xd8, 0x5a, 0x1a, 0x4c, 0xeb, 0x3e, 0xd9, 0x4a, 0xd9, 0x95, + 0x38, 0x96, 0x4a, 0x02, 0x9f, 0x6a, 0x95, 0x6f, 0x2c, 0x03, 0x6a, 0xed, 0xa7, 0x5b, 0xb1, 0xe3, + 0x84, 0x60, 0x94, 0x57, 0xcb, 0x4e, 0x01, 0xce, 0x9f, 0x69, 0xc5, 0x96, 0x31, 0x0a, 0x6b, 0x8b, + 0x67, 0x5b, 0xa9, 0x44, 0x14, 0xdf, 0xda, 0x44, 0x28, 0x03, 0x3c, 0xd7, 0x2a, 0x5f, 0x62, 0x75, + 0x54, 0xeb, 0x3f, 0x0f, 0x3e, 0xb4, 0x2c, 0xf4, 0x4d, 0x8b, 0xc0, 0x29, 0xd0, 0x29, 0x82, 0x9d, + 0xda, 0xae, 0xc1, 0x31, 0xef, 0xe8, 0x9a, 0x2f, 0x10, 0xf4, 0xb4, 0x76, 0x4a, 0x1c, 0x81, 0xf9, + 0x99, 0x2a, 0x90, 0xd3, 0xdb, 0xf5, 0xf6, 0x22, 0xc7, 0x61, 0x77, 0x46, 0xbb, 0xfe, 0x94, 0x22, + 0x27, 0x04, 0x61, 0x67, 0x1a, 0x5f, 0x91, 0x0e, 0x9c, 0x65, 0x14, 0x47, 0x79, 0xc5, 0xdf, 0x08, + 0xec, 0xec, 0x76, 0xfd, 0x69, 0x66, 0x88, 0x07, 0x25, 0x40, 0xe7, 0xb4, 0xc7, 0x3f, 0xcd, 0x10, + 0x76, 0x6e, 0x7b, 0xec, 0x0b, 0x0e, 0x41, 0xe7, 0xb5, 0x53, 0x96, 0x08, 0x1a, 0x77, 0xca, 0x6e, + 0x11, 0x84, 0xdc, 0x12, 0xfb, 0x7e, 0x3b, 0xa5, 0x82, 0x5a, 0x3d, 0xbe, 0x27, 0x1c, 0xd7, 0x0b, + 0x09, 0xfd, 0x41, 0x3b, 0xe5, 0xba, 0xfe, 0x05, 0xa8, 0x5a, 0xe5, 0x72, 0x2f, 0x74, 0x7e, 0x5c, + 0x50, 0xef, 0xc1, 0x05, 0xed, 0x34, 0x94, 0x86, 0xd8, 0x88, 0x23, 0x0a, 0x53, 0x84, 0x5f, 0xd8, + 0x4e, 0xa3, 0x50, 0xc7, 0x03, 0x1e, 0xf2, 0x40, 0xf6, 0x65, 0x73, 0x3b, 0xe5, 0x3b, 0x1a, 0x7a, + 0xc4, 0x11, 0x30, 0xba, 0xc8, 0x74, 0x69, 0x24, 0xe0, 0x42, 0x80, 0xff, 0xc5, 0xa6, 0x4b, 0x1b, + 0x74, 0xb2, 0x2f, 0x31, 0x6a, 0x39, 0xee, 0x04, 0x32, 0xde, 0xa5, 0x86, 0x60, 0x4e, 0xf8, 0x81, + 0x43, 0x29, 0xfa, 0x1e, 0x94, 0x2f, 0x33, 0xf6, 0xbd, 0xbc, 0x2a, 0xc3, 0x5c, 0x6e, 0x06, 0xeb, + 0x3f, 0xf9, 0x0c, 0xfa, 0x7d, 0x85, 0xf1, 0x28, 0x57, 0x5a, 0xc2, 0xb6, 0x98, 0xc4, 0x91, 0x16, + 0xce, 0x01, 0x04, 0x6f, 0x35, 0x81, 0x90, 0x4f, 0xb9, 0x14, 0x90, 0x60, 0x5b, 0x5c, 0xb0, 0x5e, + 0x4c, 0xf1, 0x00, 0x16, 0xdb, 0x1b, 0xa9, 0xf5, 0x07, 0x1c, 0xd4, 0x76, 0x98, 0x31, 0x18, 0xe2, + 0x95, 0x09, 0x1e, 0xac, 0x9f, 0x24, 0x74, 0x27, 0x08, 0x8f, 0xf3, 0x42, 0x26, 0xcc, 0xf3, 0x69, + 0x24, 0xf9, 0x03, 0x94, 0xc9, 0x38, 0x2f, 0xf4, 0x07, 0x7e, 0x45, 0x83, 0x1f, 0xa2, 0xc0, 0xc6, + 0x79, 0xa1, 0xd7, 0xad, 0x20, 0xce, 0x47, 0x20, 0x3c, 0xce, 0x0b, 0x83, 0x87, 0xf4, 0xba, 0xa1, + 0x70, 0x3c, 0x59, 0x4e, 0x1f, 0x1b, 0xb8, 0x2b, 0x0a, 0x7f, 0xd2, 0x4e, 0x47, 0xe4, 0x71, 0x5e, + 0x18, 0xe6, 0x25, 0x47, 0xb8, 0x1b, 0x79, 0xd6, 0xf3, 0x78, 0x30, 0x12, 0xf8, 0xc5, 0x9a, 0xac, + 0xa5, 0x4f, 0x31, 0x82, 0xe3, 0xbc, 0xd0, 0xe3, 0x87, 0xae, 0xc7, 0xa3, 0xb6, 0x9f, 0x69, 0x8a, + 0x83, 0x5d, 0xc3, 0x7e, 0x50, 0x21, 0xe8, 0xf3, 0x76, 0x7b, 0x8d, 0x75, 0x40, 0xf4, 0x9b, 0x46, + 0xfc, 0x03, 0xeb, 0x4d, 0x1d, 0xb4, 0x1f, 0x24, 0x79, 0x0c, 0x97, 0x57, 0xf4, 0x37, 0x77, 0xd8, + 0x07, 0x5a, 0x4d, 0x73, 0x08, 0xf1, 0xe6, 0xbf, 0xa5, 0x43, 0xbb, 0x6e, 0x90, 0xaa, 0xd7, 0xfd, + 0xad, 0x1d, 0xd4, 0x93, 0x39, 0xe4, 0x7a, 0x93, 0x70, 0xdb, 0xdf, 0x73, 0x8f, 0xad, 0xc1, 0xed, + 0x1d, 0x76, 0x8b, 0xf5, 0x95, 0xb9, 0xcc, 0xf5, 0x2e, 0xe1, 0x8e, 0xbf, 0x67, 0x8f, 0x0d, 0xc3, + 0x9d, 0x1d, 0xf6, 0x3f, 0x58, 0x2d, 0x73, 0x48, 0xe3, 0x09, 0xb8, 0xab, 0x83, 0x26, 0xca, 0x48, + 0xb9, 0xd6, 0x80, 0x9f, 0xdf, 0x81, 0x5b, 0x20, 0x3a, 0x07, 0xc5, 0x05, 0x17, 0x74, 0xd0, 0x86, + 0x5c, 0xdf, 0x7d, 0xc5, 0x65, 0x17, 0x42, 0x16, 0x8f, 0xa7, 0x5f, 0x3d, 0x9b, 0x21, 0xd3, 0xb7, + 0xfe, 0x71, 0xbb, 0x8b, 0x3a, 0xa8, 0xe2, 0x06, 0xf3, 0x71, 0xf4, 0x62, 0x89, 0xf6, 0xc5, 0xd1, + 0x4b, 0x80, 0x0e, 0x34, 0xe8, 0x5e, 0x0a, 0xef, 0xfa, 0x72, 0x3b, 0x2e, 0xbb, 0x0c, 0x5d, 0xc1, + 0x0d, 0x75, 0x5c, 0x70, 0xb9, 0x74, 0xd5, 0x10, 0xe0, 0x0a, 0xa0, 0x7d, 0x1b, 0xe2, 0xe8, 0x16, + 0xa0, 0xc3, 0x0d, 0xba, 0x5b, 0x3b, 0x68, 0xcd, 0x90, 0x17, 0xa6, 0x71, 0xc9, 0x36, 0x48, 0x62, + 0x98, 0x3a, 0xcf, 0x6d, 0x9f, 0x4b, 0x82, 0x53, 0xd7, 0x8e, 0x0e, 0x55, 0xda, 0x51, 0x89, 0x3c, + 0x58, 0xed, 0x44, 0x35, 0xcc, 0x61, 0x64, 0x0e, 0x2f, 0x57, 0x76, 0xd8, 0xad, 0xd6, 0x81, 0x73, + 0x19, 0x1b, 0x95, 0xab, 0x10, 0x59, 0x6e, 0x77, 0xe3, 0x6c, 0xaf, 0x46, 0xef, 0xb2, 0x93, 0x71, + 0xf4, 0x1a, 0x39, 0x64, 0x6a, 0x1b, 0x1a, 0x97, 0x5d, 0xdb, 0x41, 0x73, 0xad, 0x3f, 0x9f, 0x1b, + 0xa2, 0xa5, 0xf5, 0x08, 0xda, 0x58, 0x3e, 0x88, 0x3c, 0x6b, 0xa8, 0xcf, 0xfc, 0xca, 0x89, 0xfd, + 0xa9, 0x83, 0xd6, 0x09, 0x2d, 0x18, 0x09, 0xf8, 0xa4, 0x3b, 0xcd, 0x1e, 0x8a, 0x81, 0xf2, 0x35, + 0xc7, 0x1e, 0x8e, 0x6b, 0x4e, 0x05, 0xb4, 0x0b, 0x7c, 0xa4, 0x03, 0x07, 0x54, 0x47, 0xf0, 0x7e, + 0x3f, 0xa8, 0x38, 0x58, 0x05, 0xde, 0xe9, 0xa4, 0xb5, 0x92, 0xb0, 0x41, 0x57, 0xf0, 0x80, 0xb6, + 0xdc, 0x9d, 0x6a, 0xeb, 0xc8, 0x7b, 0xdd, 0xc9, 0x49, 0xf6, 0x6e, 0xa7, 0xbe, 0x03, 0xa7, 0xd9, + 0x04, 0xe8, 0xbd, 0x4e, 0xe2, 0x47, 0x4d, 0x39, 0x43, 0x8d, 0xe0, 0xfd, 0x4e, 0x1c, 0x0a, 0xd5, + 0xbc, 0x6a, 0x10, 0x7e, 0xd0, 0x69, 0x7f, 0xd5, 0x4a, 0x6a, 0xa1, 0xfe, 0x6b, 0xc4, 0x1f, 0xc2, + 0x69, 0xdd, 0xc6, 0x08, 0x3e, 0x82, 0x53, 0x29, 0x98, 0x65, 0xf5, 0x71, 0x27, 0x8d, 0xb4, 0x5a, + 0xa4, 0xe3, 0xf1, 0x3e, 0xe9, 0xa4, 0x75, 0x51, 0xbb, 0x32, 0xf0, 0xa7, 0x9d, 0xb4, 0x77, 0xa2, + 0xee, 0xb1, 0xcf, 0xf0, 0x78, 0xb8, 0x5f, 0x0b, 0xd8, 0xe7, 0x9d, 0xb8, 0x95, 0x76, 0xbd, 0x9a, + 0xe0, 0xec, 0x8b, 0x4e, 0x79, 0x00, 0x2d, 0xf8, 0x5e, 0x91, 0x7d, 0x89, 0x04, 0x0d, 0xb9, 0x85, + 0xc0, 0x57, 0xc8, 0x31, 0x29, 0xda, 0xb1, 0x0e, 0xf9, 0x9e, 0x98, 0x62, 0xc7, 0xa6, 0x70, 0x51, + 0x4f, 0xcf, 0xc3, 0x4e, 0x85, 0xb3, 0xe3, 0x52, 0xb8, 0xf8, 0xf7, 0x37, 0x51, 0xad, 0x64, 0x82, + 0x12, 0x3b, 0x3e, 0x85, 0xcf, 0x0a, 0x12, 0xf0, 0x6b, 0x82, 0xb0, 0x13, 0x52, 0xb8, 0x59, 0x72, + 0x66, 0x60, 0x72, 0x22, 0x4c, 0x7a, 0x9d, 0x99, 0xf5, 0x93, 0xd2, 0xe7, 0x49, 0xf0, 0x09, 0xe0, + 0x08, 0xce, 0x8f, 0x62, 0x27, 0xd7, 0xdb, 0xff, 0xc5, 0x9d, 0x80, 0x9d, 0x92, 0xa2, 0x11, 0x21, + 0x11, 0xf9, 0x1c, 0xa2, 0x8d, 0xff, 0xa9, 0x29, 0x2a, 0x3b, 0x0d, 0xf9, 0x35, 0x01, 0xf4, 0x34, + 0xc4, 0x21, 0xb4, 0xd7, 0x99, 0x61, 0xa7, 0x23, 0x0e, 0xb5, 0x94, 0x9f, 0x33, 0x52, 0xd4, 0x7d, + 0x3c, 0x9e, 0x99, 0xa2, 0x5c, 0xd1, 0x63, 0xcc, 0xed, 0x59, 0x29, 0xaa, 0xf3, 0x28, 0xac, 0x5d, + 0x9f, 0x0d, 0x4e, 0x03, 0x5c, 0xc8, 0x4a, 0x62, 0xe7, 0xa4, 0xb0, 0x6f, 0x9e, 0x09, 0x29, 0xb1, + 0xb8, 0x1f, 0x0c, 0xab, 0xec, 0xdc, 0x14, 0x2d, 0x89, 0x11, 0xd0, 0xaf, 0x09, 0xc2, 0xcf, 0x4b, + 0x45, 0x4e, 0x1f, 0x18, 0x89, 0xef, 0x83, 0xbf, 0x42, 0x68, 0xa8, 0xd6, 0x52, 0x9e, 0x7e, 0xd0, + 0x88, 0xe2, 0xee, 0xee, 0x7c, 0xd0, 0xc6, 0xd2, 0x7e, 0x41, 0x4a, 0x1e, 0x2e, 0x2a, 0xa6, 0x78, + 0x2f, 0x44, 0x97, 0xc7, 0xf2, 0x3d, 0x70, 0xbb, 0x19, 0xfc, 0xc7, 0xf2, 0x3d, 0xa4, 0x12, 0x0a, + 0xa7, 0x52, 0xd5, 0xc3, 0x72, 0x51, 0x8a, 0x8a, 0xaa, 0x51, 0xa2, 0xc6, 0xe7, 0x62, 0x08, 0x33, + 0xc5, 0x22, 0x39, 0x11, 0xd8, 0xf6, 0x17, 0xeb, 0x5f, 0x95, 0x52, 0x54, 0x71, 0x71, 0xa1, 0x7a, + 0x51, 0x5d, 0x8a, 0x70, 0x99, 0x62, 0x11, 0xc5, 0xe6, 0x08, 0x14, 0x1d, 0x16, 0x8c, 0xcb, 0xb4, + 0x91, 0x3e, 0x59, 0xd4, 0xfd, 0x5d, 0x9e, 0xa2, 0xba, 0x8f, 0x8a, 0x94, 0xb7, 0x2b, 0x90, 0x3d, + 0xe5, 0x4d, 0x62, 0xf0, 0xb5, 0xc5, 0xb0, 0x33, 0x87, 0x9e, 0xba, 0xb7, 0xad, 0x86, 0x5d, 0x5d, + 0xa8, 0xfc, 0x6d, 0x8b, 0xb1, 0x53, 0x62, 0xb9, 0x90, 0x6a, 0x0a, 0xc4, 0x39, 0xea, 0x6d, 0x07, + 0xca, 0xa2, 0x2e, 0x50, 0x9e, 0x76, 0x82, 0x41, 0xae, 0x36, 0x31, 0x57, 0x7e, 0xae, 0x04, 0x83, + 0xb8, 0x50, 0xd9, 0x5d, 0x05, 0x06, 0xb9, 0xda, 0xc4, 0xac, 0xfc, 0x5c, 0xad, 0x8d, 0x66, 0xe7, + 0xe7, 0x1a, 0x90, 0x8b, 0x8a, 0x94, 0xb7, 0x6b, 0x65, 0x75, 0x49, 0x6f, 0x91, 0xfc, 0x5c, 0x67, + 0xd8, 0xcd, 0x91, 0x9f, 0x1f, 0x1a, 0x76, 0xb3, 0xf2, 0xf3, 0xa3, 0x18, 0xbb, 0x68, 0x7e, 0x7e, + 0xac, 0x29, 0x34, 0xe6, 0xe7, 0x27, 0xc8, 0x4f, 0x5d, 0xa0, 0x3c, 0xfd, 0x14, 0x41, 0xc6, 0x3c, + 0x77, 0xda, 0x54, 0x97, 0x2a, 0x62, 0xf6, 0x33, 0x58, 0xc4, 0x44, 0xb4, 0x41, 0xfa, 0xf9, 0x6c, + 0xb8, 0x97, 0x17, 0xd8, 0x2f, 0x52, 0xf2, 0x67, 0x6a, 0xde, 0x46, 0x1e, 0x88, 0xfc, 0xf7, 0xd8, + 0x2f, 0x53, 0xf8, 0xe6, 0xe7, 0x1c, 0x85, 0xec, 0xb1, 0x5f, 0x99, 0x26, 0x66, 0xc3, 0xaf, 0xa1, + 0x3d, 0xc2, 0x03, 0xd7, 0x2f, 0x66, 0x8a, 0x45, 0xf6, 0x1b, 0x4c, 0x78, 0xd9, 0xc6, 0xd2, 0xf7, + 0x5b, 0x4c, 0x8e, 0x0d, 0x35, 0x27, 0x10, 0x3c, 0x60, 0xd7, 0x43, 0x3d, 0xc7, 0x0b, 0x79, 0x1f, + 0xe6, 0x37, 0xa4, 0xe4, 0x59, 0xb1, 0xc2, 0xf3, 0xb4, 0xd2, 0xb1, 0x1b, 0x53, 0xfa, 0xd4, 0x0b, + 0x3e, 0xe4, 0xf1, 0xa6, 0x14, 0x2d, 0x8c, 0x79, 0xbf, 0xd7, 0x99, 0x09, 0xd9, 0xcd, 0x52, 0x5f, + 0xad, 0x8a, 0x21, 0xbb, 0x05, 0x4b, 0x80, 0x9a, 0x52, 0x7a, 0x9e, 0xdd, 0x8a, 0x41, 0x8a, 0x80, + 0x6a, 0x8a, 0xdd, 0x86, 0x65, 0xd1, 0x38, 0xc7, 0xc4, 0xbe, 0x1d, 0x0e, 0x0c, 0x26, 0x6f, 0xe6, + 0xef, 0x48, 0xe9, 0x55, 0x1c, 0xa0, 0x9e, 0xe7, 0x77, 0xa2, 0x2b, 0x83, 0x4e, 0x28, 0x68, 0x69, + 0xbb, 0x0b, 0xde, 0x72, 0x22, 0x20, 0x6a, 0x42, 0x26, 0xe7, 0x77, 0xb2, 0x3c, 0xa2, 0x18, 0x55, + 0x23, 0xfb, 0x7d, 0x03, 0xae, 0xc7, 0xf2, 0x6e, 0x04, 0xa2, 0x0d, 0xb8, 0x1e, 0x06, 0x90, 0xda, + 0x35, 0x0b, 0x26, 0x5e, 0x6c, 0x37, 0x96, 0x26, 0x75, 0x6a, 0x34, 0xbe, 0xef, 0x89, 0xa1, 0xda, + 0xf3, 0xbd, 0x7a, 0xe2, 0x91, 0x5e, 0xf4, 0x55, 0xc5, 0xee, 0x8b, 0xce, 0x2f, 0x75, 0xbb, 0xed, + 0x09, 0x76, 0x7f, 0x74, 0x89, 0x51, 0x2f, 0x3e, 0xb5, 0xd5, 0xfd, 0x43, 0xd4, 0x22, 0xeb, 0xe9, + 0xdf, 0x0e, 0xfc, 0x11, 0x09, 0xa8, 0xc3, 0xe4, 0xe5, 0x81, 0x14, 0x6d, 0x3a, 0x14, 0xa6, 0x29, + 0x2a, 0xfd, 0x07, 0xa3, 0x33, 0x5e, 0xcb, 0xf0, 0x2d, 0x58, 0x4f, 0x82, 0x59, 0x5c, 0x1f, 0x8a, + 0xd6, 0x7a, 0x9d, 0xeb, 0xc3, 0xd1, 0xe9, 0x1e, 0xe7, 0xfa, 0x48, 0xd4, 0xa2, 0xce, 0xf5, 0x51, + 0x39, 0x58, 0x06, 0x26, 0x2f, 0x8f, 0x81, 0xab, 0xc2, 0x1a, 0xb8, 0x3e, 0x1e, 0x9d, 0x7d, 0x51, + 0xae, 0x4f, 0xa0, 0xfc, 0x69, 0x68, 0x50, 0x8f, 0x4f, 0xa6, 0xf4, 0x07, 0x01, 0xf5, 0x4e, 0x7a, + 0x2a, 0x5e, 0x63, 0x98, 0x02, 0x4f, 0xeb, 0x45, 0xa3, 0x4e, 0x17, 0x67, 0x90, 0x67, 0xe4, 0xfb, + 0xcb, 0x90, 0x02, 0xf8, 0x6c, 0x54, 0x39, 0xeb, 0x99, 0xcf, 0x25, 0xcf, 0x45, 0x93, 0xa4, 0x19, + 0xc1, 0xe2, 0xf9, 0xe8, 0xca, 0xa8, 0x25, 0xda, 0xec, 0x85, 0x58, 0x27, 0x63, 0x9b, 0x24, 0xb6, + 0x27, 0xd6, 0x49, 0xfd, 0x35, 0xc4, 0x13, 0xec, 0xc5, 0x58, 0x2c, 0x25, 0x40, 0xac, 0x97, 0x62, + 0xb1, 0xf4, 0xb6, 0x4a, 0xc5, 0x7a, 0x59, 0xbf, 0x3c, 0x1a, 0xfa, 0xf9, 0x67, 0xf4, 0xb3, 0x5e, + 0x28, 0x00, 0x5f, 0x89, 0x2a, 0x47, 0xfa, 0xf9, 0x6a, 0xb4, 0x70, 0x63, 0xfd, 0x7c, 0x2d, 0xfa, + 0x86, 0x6c, 0xec, 0xe7, 0xeb, 0xb1, 0xc2, 0x8b, 0xf7, 0xf3, 0x8d, 0x58, 0xe1, 0x45, 0xfa, 0xf9, + 0x66, 0x2c, 0x56, 0xb4, 0x9f, 0x6f, 0xc5, 0x62, 0x35, 0xf4, 0xf3, 0x2f, 0x29, 0x3a, 0x3b, 0x36, + 0xcc, 0x43, 0x2a, 0x09, 0x15, 0xef, 0xaf, 0xd1, 0xae, 0x91, 0x3b, 0x85, 0xbf, 0x1d, 0xcd, 0x03, + 0xbe, 0x6f, 0x78, 0x82, 0xbd, 0x83, 0xe9, 0x1b, 0x01, 0x11, 0xff, 0x6f, 0x51, 0xca, 0x84, 0xe8, + 0xd8, 0xef, 0x46, 0xa7, 0xa9, 0x02, 0x95, 0xfb, 0xf7, 0xa2, 0x61, 0xf5, 0x47, 0x12, 0x4f, 0xb0, + 0xf7, 0x63, 0xdd, 0x97, 0x38, 0x82, 0x7c, 0x10, 0xcb, 0x99, 0x14, 0xe8, 0x38, 0x1f, 0x46, 0xcb, + 0x30, 0xd2, 0x87, 0x8f, 0xa2, 0x35, 0xab, 0xfb, 0xf0, 0x31, 0xfa, 0x10, 0x01, 0xe1, 0xfe, 0x93, + 0x68, 0x79, 0x45, 0xfb, 0xf0, 0x69, 0x74, 0xfa, 0xc6, 0xfb, 0xf0, 0x59, 0x34, 0x6c, 0xa4, 0x0f, + 0x9f, 0xc7, 0x4a, 0x35, 0xd2, 0x87, 0x2f, 0x62, 0xf5, 0x1d, 0xef, 0xc3, 0x97, 0x29, 0xfb, 0x20, + 0xeb, 0xab, 0x73, 0xd6, 0x84, 0x59, 0x3d, 0x8f, 0x59, 0x4b, 0xe7, 0xfc, 0xd9, 0xb5, 0x61, 0x14, + 0x8e, 0x5d, 0x4b, 0x67, 0xb7, 0x39, 0x6a, 0xc4, 0x68, 0x1c, 0xb7, 0xd6, 0x6e, 0xb3, 0xd6, 0xcc, + 0x5d, 0x2b, 0x46, 0xe9, 0xf8, 0xb5, 0xc4, 0x65, 0xce, 0x79, 0x68, 0x74, 0x4e, 0x00, 0x97, 0xd9, + 0xf3, 0xd1, 0x28, 0x9c, 0x08, 0x2e, 0x73, 0xcc, 0x4b, 0xa3, 0x71, 0x12, 0xb8, 0xcc, 0x3d, 0x3f, + 0x8d, 0xd2, 0xc9, 0x6b, 0xd5, 0x47, 0x46, 0xf5, 0x05, 0xe0, 0x89, 0xb4, 0xbd, 0xd8, 0x9a, 0xbf, + 0xce, 0xf5, 0xd8, 0x93, 0x69, 0x3a, 0x65, 0x64, 0x72, 0x3d, 0xd9, 0x2c, 0x7b, 0x2a, 0x8d, 0x0f, + 0xe0, 0x53, 0x4e, 0xc0, 0x9e, 0x4e, 0xe3, 0x83, 0xc8, 0x94, 0x13, 0x48, 0x8b, 0xb1, 0x7c, 0xff, + 0xb7, 0xd8, 0x33, 0x69, 0x7a, 0x2f, 0xab, 0x5f, 0x9e, 0x3f, 0x9b, 0x96, 0x9f, 0x2f, 0xa8, 0x71, + 0x44, 0x8e, 0x3d, 0x97, 0xa6, 0x37, 0xa5, 0xda, 0x43, 0xb0, 0xe7, 0xe1, 0xbf, 0xaf, 0x2c, 0xd8, + 0x0b, 0x69, 0x5a, 0x1d, 0xfb, 0xa6, 0xab, 0x7e, 0x20, 0x72, 0x5c, 0x1c, 0x4a, 0x6f, 0xb5, 0x3d, + 0x71, 0xec, 0x30, 0xc2, 0x5e, 0x8c, 0x63, 0xdf, 0x24, 0xec, 0x25, 0x84, 0xc0, 0x3f, 0x68, 0x50, + 0x45, 0xbc, 0x9c, 0xc6, 0xd7, 0x05, 0x6a, 0xca, 0x45, 0x26, 0x4d, 0xdb, 0x72, 0xb4, 0x55, 0x2d, + 0xbd, 0xa2, 0x34, 0xbc, 0x62, 0xd6, 0xcb, 0x71, 0xc1, 0x5e, 0x05, 0x61, 0xb5, 0x4e, 0xbf, 0x96, + 0xc6, 0x2b, 0x16, 0x0d, 0xda, 0x22, 0x0c, 0xfa, 0x05, 0xa7, 0xcc, 0xd9, 0xeb, 0x69, 0xfc, 0xfe, + 0x3b, 0xf0, 0x2b, 0xeb, 0x9c, 0x90, 0xa7, 0x0f, 0x63, 0x6f, 0xc0, 0xc9, 0xe1, 0x7c, 0x3a, 0xeb, + 0x61, 0x0f, 0xf1, 0xa6, 0x6e, 0xe7, 0x44, 0x40, 0xed, 0xb7, 0xd2, 0xf2, 0x33, 0x5b, 0xc8, 0x03, + 0x81, 0xb4, 0xfc, 0x25, 0x2d, 0x3f, 0xb3, 0x11, 0xc0, 0xfe, 0x9a, 0x96, 0x77, 0xf0, 0xea, 0xfa, + 0x97, 0xbd, 0x9d, 0x96, 0x5f, 0xf6, 0x42, 0x11, 0xb0, 0x77, 0xf0, 0x3c, 0x98, 0x0f, 0xdc, 0x0a, + 0xfb, 0x5b, 0x5a, 0xfe, 0x94, 0x6f, 0x52, 0xfa, 0x78, 0x37, 0x2d, 0x7f, 0x9a, 0x3e, 0x29, 0xd8, + 0x7b, 0x70, 0xa7, 0x06, 0xea, 0xfd, 0x34, 0xee, 0x54, 0xfc, 0x82, 0x23, 0xb0, 0x23, 0x08, 0xa1, + 0xfd, 0x41, 0x04, 0x3d, 0xd4, 0xa0, 0x1f, 0x22, 0x1f, 0x11, 0x5d, 0xf6, 0x51, 0x04, 0x81, 0x1e, + 0xfb, 0x58, 0x52, 0xf0, 0x37, 0xf1, 0x80, 0x7d, 0x22, 0x29, 0x54, 0x9d, 0x22, 0xcc, 0x3f, 0x95, + 0x14, 0xaa, 0x4e, 0x91, 0x7d, 0x86, 0xc1, 0xa4, 0x1d, 0x1f, 0x65, 0xf1, 0x73, 0x10, 0x5a, 0x5f, + 0xc0, 0x2b, 0xf4, 0x0b, 0xf4, 0x6f, 0x7d, 0xc1, 0xfc, 0x9c, 0x10, 0x23, 0xbd, 0x3e, 0x28, 0xb2, + 0x63, 0xba, 0xc9, 0x35, 0x6e, 0x57, 0xd9, 0xb1, 0x78, 0x1e, 0x45, 0x4f, 0x8f, 0xeb, 0xc6, 0x47, + 0x57, 0x5e, 0xe5, 0x8e, 0x60, 0xc7, 0x77, 0xe3, 0xc7, 0x0c, 0xf2, 0x96, 0x9a, 0x9d, 0xd0, 0x2d, + 0xbf, 0xbe, 0x6c, 0xe4, 0x41, 0x88, 0xdb, 0x75, 0x76, 0xa2, 0x92, 0x03, 0x61, 0x27, 0x75, 0xe3, + 0xc3, 0x80, 0x5b, 0x9a, 0x92, 0x59, 0x3a, 0x59, 0xba, 0xa5, 0x36, 0x3b, 0xa5, 0x1b, 0xdf, 0x77, + 0x34, 0xfb, 0x53, 0xbb, 0xf1, 0x63, 0x0f, 0x62, 0x7f, 0x1a, 0xb4, 0x72, 0x55, 0x8a, 0x70, 0x7a, + 0xb7, 0xfc, 0x1f, 0x87, 0xa0, 0x50, 0xa9, 0xb2, 0x33, 0xba, 0xd5, 0x92, 0x12, 0x82, 0x7b, 0x3d, + 0x9f, 0x67, 0xc6, 0x05, 0xf5, 0x94, 0x9e, 0xd5, 0xad, 0xd6, 0xbe, 0x88, 0x05, 0x3b, 0x3b, 0x0e, + 0xca, 0xc4, 0x9e, 0x13, 0x07, 0xb3, 0x5e, 0x91, 0x4f, 0xb3, 0x73, 0xc1, 0x31, 0xef, 0xab, 0xca, + 0x3a, 0x4f, 0x36, 0x03, 0xb7, 0x82, 0x3d, 0xdf, 0xf7, 0xd1, 0x3b, 0x6a, 0x4a, 0xbf, 0x3f, 0x30, + 0x6d, 0xe9, 0xf2, 0x7c, 0xf4, 0x63, 0xcc, 0x3b, 0x9c, 0x4f, 0xb3, 0x0b, 0x20, 0x1b, 0xab, 0x56, + 0xb9, 0x2c, 0xab, 0x0b, 0xa5, 0x8c, 0xda, 0x6c, 0x73, 0x37, 0x15, 0x64, 0x7d, 0xae, 0xb2, 0x8b, + 0xba, 0xe5, 0x0f, 0x36, 0x36, 0x29, 0xe5, 0x8b, 0xbb, 0xa9, 0xf2, 0xcd, 0x8f, 0x4e, 0xcd, 0x11, + 0xb3, 0xdb, 0x3e, 0xd0, 0x6a, 0xd2, 0x70, 0x4f, 0xa5, 0x1a, 0xfb, 0xd9, 0xf9, 0xa5, 0xdd, 0x34, + 0x21, 0xe5, 0x8f, 0x49, 0xb5, 0xc5, 0x65, 0xdd, 0xb4, 0x8c, 0x03, 0x6b, 0x54, 0xbf, 0x5c, 0x77, + 0xd5, 0xf5, 0x9c, 0x60, 0x86, 0x5d, 0xd1, 0x6d, 0x66, 0x95, 0x04, 0xb6, 0xfc, 0xbd, 0x60, 0xd8, + 0x45, 0x6f, 0x9d, 0xd3, 0x31, 0x44, 0xdb, 0xba, 0xa3, 0x3f, 0x83, 0x05, 0xb4, 0xbd, 0xdb, 0xfc, + 0x84, 0x15, 0xed, 0x1d, 0xdd, 0x07, 0x73, 0x6b, 0x65, 0xc3, 0xff, 0x48, 0xe1, 0x3f, 0x2e, 0xfc, + 0x4a, 0xb5, 0xcc, 0x05, 0xc7, 0x5d, 0xc2, 0x5e, 0xf6, 0x72, 0xac, 0x0d, 0x4e, 0x19, 0xcd, 0x04, + 0x29, 0x8c, 0x38, 0x81, 0x70, 0x9d, 0xf2, 0x21, 0x40, 0xe6, 0x45, 0x90, 0x2e, 0x20, 0xf3, 0xc9, + 0xa4, 0x97, 0x17, 0x6b, 0x55, 0x34, 0x17, 0xac, 0xfb, 0xfa, 0xae, 0x3d, 0x6b, 0x12, 0x0f, 0xec, + 0x59, 0x93, 0x78, 0x7e, 0xcf, 0x9a, 0xc4, 0xe6, 0x17, 0xd7, 0xec, 0x65, 0xad, 0x2a, 0xf8, 0x95, + 0xce, 0xaa, 0xeb, 0x95, 0x0a, 0x4e, 0xb5, 0x53, 0xb8, 0xc5, 0x09, 0xfc, 0x27, 0xd4, 0x48, 0xe2, + 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xf5, 0xb2, 0xb3, 0x15, 0x37, 0x38, 0x00, 0x00, } diff --git a/proto/expression.proto b/proto/expression.proto index c6369c29..89555834 100644 --- a/proto/expression.proto +++ b/proto/expression.proto @@ -540,6 +540,7 @@ enum ScalarFuncSig { FTSMatchExpression = 5202; FTSMatchPrefix = 5203; FTSMatchRegexp = 5204; + FTSMatchPhrase = 5205; /*time*/ DateFormatSig = 6001; diff --git a/scripts/proto.lock b/scripts/proto.lock index a9d250c9..89c02164 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -5279,6 +5279,10 @@ "name": "FTSMatchRegexp", "integer": 5204 }, + { + "name": "FTSMatchPhrase", + "integer": 5205 + }, { "name": "DateFormatSig", "integer": 6001 From b74a3fc85f258e290059d311646a5f848f67a8e1 Mon Sep 17 00:00:00 2001 From: AilinKid <314806019@qq.com> Date: Tue, 8 Sep 2026 16:00:26 +0800 Subject: [PATCH 8/8] tici: Add topn params (#386) Apply the source proto patch and regenerate executor.pb.go with the release-compatible protoc 3.8.0 and pinned gogo plugin. Keep release protocol and dependency versions. (cherry picked from commit 56451fd06b1e281d49e2593d5693219d94696ac5) (cherry picked from commit 84229a99a9e2f5efd4752b885676ba8b2349e4b9) --- go-tipb/executor.pb.go | 829 ++++++++++++++++++++++++----------------- proto/executor.proto | 8 +- 2 files changed, 500 insertions(+), 337 deletions(-) diff --git a/go-tipb/executor.pb.go b/go-tipb/executor.pb.go index 9fbfcef3..cb8ae520 100644 --- a/go-tipb/executor.pb.go +++ b/go-tipb/executor.pb.go @@ -1137,12 +1137,10 @@ type FTSQueryInfo struct { ColumnNames []string `protobuf:"bytes,4,rep,name=column_names,json=columnNames" json:"column_names,omitempty"` QueryText string `protobuf:"bytes,5,opt,name=query_text,json=queryText" json:"query_text"` QueryTokenizer string `protobuf:"bytes,6,opt,name=query_tokenizer,json=queryTokenizer" json:"query_tokenizer"` - // For QueryType == WithScore, a top_k can be optionally specified. - // If top_k is specified, it means the TableScan is safe to return at most *top* k results - // because upper executors will have a TopK anyway. - // If not specified (optional, or top_k is very large), then all results will be returned. - // This option is not supported for QueryType == NoScore. - TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` + // These fields support pushdown for order-by and limit scenarios. + TopK *uint32 `protobuf:"varint,10,opt,name=top_k,json=topK" json:"top_k,omitempty"` + SortColumnIds []int64 `protobuf:"varint,11,rep,name=sort_column_ids,json=sortColumnIds" json:"sort_column_ids,omitempty"` + SortColumnAsc []bool `protobuf:"varint,12,rep,name=sort_column_asc,json=sortColumnAsc" json:"sort_column_asc,omitempty"` // Distinguish match_word, match_expression, match_prefix, match_regexp QueryFunc ScalarFuncSig `protobuf:"varint,20,opt,name=query_func,json=queryFunc,enum=tipb.ScalarFuncSig" json:"query_func"` // Filter pushed down to tici @@ -1204,6 +1202,20 @@ func (m *FTSQueryInfo) GetTopK() uint32 { return 0 } +func (m *FTSQueryInfo) GetSortColumnIds() []int64 { + if m != nil { + return m.SortColumnIds + } + return nil +} + +func (m *FTSQueryInfo) GetSortColumnAsc() []bool { + if m != nil { + return m.SortColumnAsc + } + return nil +} + func (m *FTSQueryInfo) GetQueryFunc() ScalarFuncSig { if m != nil { return m.QueryFunc @@ -3690,6 +3702,25 @@ func (m *FTSQueryInfo) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintExecutor(dAtA, i, uint64(*m.TopK)) } + if len(m.SortColumnIds) > 0 { + for _, num := range m.SortColumnIds { + dAtA[i] = 0x58 + i++ + i = encodeVarintExecutor(dAtA, i, uint64(num)) + } + } + if len(m.SortColumnAsc) > 0 { + for _, b := range m.SortColumnAsc { + dAtA[i] = 0x60 + i++ + if b { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + } dAtA[i] = 0xa0 i++ dAtA[i] = 0x1 @@ -6019,6 +6050,14 @@ func (m *FTSQueryInfo) Size() (n int) { if m.TopK != nil { n += 1 + sovExecutor(uint64(*m.TopK)) } + if len(m.SortColumnIds) > 0 { + for _, e := range m.SortColumnIds { + n += 1 + sovExecutor(uint64(e)) + } + } + if len(m.SortColumnAsc) > 0 { + n += 2 * len(m.SortColumnAsc) + } n += 2 + sovExecutor(uint64(m.QueryFunc)) if len(m.MatchExpr) > 0 { for _, e := range m.MatchExpr { @@ -8874,6 +8913,130 @@ func (m *FTSQueryInfo) Unmarshal(dAtA []byte) error { } } m.TopK = &v + case 11: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SortColumnIds = append(m.SortColumnIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SortColumnIds = append(m.SortColumnIds, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field SortColumnIds", wireType) + } + case 12: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SortColumnAsc = append(m.SortColumnAsc, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthExecutor + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExecutor + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SortColumnAsc = append(m.SortColumnAsc, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field SortColumnAsc", wireType) + } case 20: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field QueryFunc", wireType) @@ -15155,330 +15318,332 @@ var ( func init() { proto.RegisterFile("executor.proto", fileDescriptorExecutor) } var fileDescriptorExecutor = []byte{ - // 5196 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7b, 0x4b, 0x73, 0x1c, 0xc9, - 0x71, 0x3f, 0x67, 0x30, 0x00, 0x66, 0x72, 0x06, 0x83, 0x46, 0x01, 0x24, 0x9b, 0xe0, 0x92, 0xc4, - 0x8e, 0xf6, 0x01, 0xe1, 0xaf, 0x25, 0x77, 0x41, 0x6a, 0x1f, 0xd2, 0x7f, 0xa5, 0xc5, 0x73, 0x39, - 0x4b, 0x60, 0x00, 0xf5, 0x40, 0xbb, 0x8a, 0xb0, 0x23, 0x3a, 0x1a, 0xdd, 0x35, 0x83, 0x5a, 0xf4, - 0x63, 0xb6, 0xab, 0x87, 0x04, 0xf6, 0xa4, 0xb3, 0x7d, 0x71, 0x58, 0x61, 0x59, 0x7e, 0xca, 0x96, - 0x5f, 0x92, 0x25, 0xeb, 0xe0, 0x4f, 0xe0, 0xa3, 0x8e, 0x3e, 0xeb, 0xe0, 0x70, 0xc8, 0x27, 0x7f, - 0x03, 0x87, 0x4f, 0x8e, 0xca, 0xaa, 0xea, 0xae, 0x79, 0x80, 0xcb, 0x0d, 0xeb, 0xe0, 0x13, 0xa6, - 0x33, 0xf3, 0x97, 0x59, 0x8f, 0xcc, 0xac, 0xaa, 0xac, 0x02, 0x34, 0xe9, 0x05, 0xf5, 0x87, 0x59, - 0x92, 0xde, 0x1f, 0xa4, 0x49, 0x96, 0x90, 0x4a, 0xc6, 0x06, 0xa7, 0xab, 0x16, 0xbd, 0x18, 0xa4, - 0x94, 0x73, 0x96, 0xc4, 0x92, 0xbe, 0xda, 0xe0, 0xfe, 0x19, 0x8d, 0x3c, 0xf5, 0xb5, 0xd2, 0x4f, - 0xfa, 0x09, 0xfe, 0x7c, 0x20, 0x7e, 0x49, 0x6a, 0xeb, 0x67, 0x35, 0xa8, 0xee, 0x29, 0x75, 0xe4, - 0x15, 0x28, 0x67, 0x03, 0xbb, 0xb4, 0x56, 0x5a, 0x6f, 0x6e, 0x36, 0xef, 0x0b, 0xad, 0xf7, 0x05, - 0xef, 0xe4, 0x72, 0x40, 0xb7, 0x2b, 0xbf, 0xfa, 0xb7, 0x7b, 0xd7, 0x9c, 0x72, 0x36, 0x20, 0x1b, - 0x50, 0xcd, 0x4e, 0x43, 0x97, 0xfb, 0x5e, 0x6c, 0x97, 0xd7, 0x4a, 0xeb, 0xf5, 0xcd, 0x45, 0x29, - 0x7b, 0xe2, 0x9d, 0x86, 0xb4, 0xeb, 0x7b, 0xb1, 0x33, 0x9f, 0x9d, 0x86, 0xe2, 0x87, 0x90, 0x65, - 0xc1, 0x85, 0x94, 0x9d, 0x31, 0x65, 0xdb, 0x71, 0x40, 0x2f, 0xa4, 0x2c, 0x0b, 0xf0, 0x07, 0x79, - 0x03, 0x6a, 0x9c, 0x86, 0xd4, 0xcf, 0x58, 0x12, 0xdb, 0x15, 0x53, 0xb8, 0xab, 0xc9, 0x4e, 0x21, - 0x41, 0x1e, 0x42, 0xdd, 0xeb, 0xf7, 0x53, 0xda, 0xf7, 0x10, 0x30, 0x8b, 0x80, 0x25, 0x09, 0xd8, - 0x2a, 0x18, 0x8e, 0x29, 0x45, 0xee, 0x42, 0x25, 0x4b, 0x06, 0x1d, 0x7b, 0x0e, 0xa5, 0x41, 0xb5, - 0x3b, 0x19, 0x74, 0x1c, 0xa4, 0x93, 0x97, 0x61, 0x36, 0x64, 0x11, 0xcb, 0xec, 0x79, 0x14, 0xa8, - 0x4b, 0x81, 0x03, 0x41, 0x72, 0x24, 0x87, 0xec, 0xc0, 0x12, 0xbd, 0xf0, 0xcf, 0xbc, 0xb8, 0x4f, - 0xdd, 0x94, 0xfa, 0x94, 0x3d, 0xa5, 0xa9, 0x5d, 0x45, 0xf1, 0x1b, 0x7a, 0xcc, 0x24, 0xdb, 0x51, - 0x5c, 0xc7, 0xa2, 0x63, 0x14, 0xd1, 0x8e, 0x4f, 0x13, 0x16, 0xdb, 0x35, 0xb3, 0x1d, 0x1f, 0x25, - 0x2c, 0x76, 0x90, 0x4e, 0xee, 0x41, 0x5d, 0x4f, 0xb2, 0xcb, 0x02, 0x1b, 0xd6, 0x4a, 0xeb, 0x35, - 0x07, 0x34, 0xa9, 0x1d, 0x08, 0x05, 0xe7, 0x2c, 0x0c, 0xed, 0xba, 0xa9, 0xe0, 0x09, 0x0b, 0x43, - 0x07, 0xe9, 0xe4, 0x7d, 0x58, 0xcc, 0x5b, 0xc9, 0x69, 0x1c, 0xd0, 0xd4, 0x6e, 0xa0, 0xe8, 0xca, - 0x68, 0x1b, 0xbb, 0xc8, 0x73, 0x9a, 0x74, 0xe4, 0x9b, 0xbc, 0x09, 0x70, 0x9c, 0x26, 0x9f, 0xaa, - 0xc9, 0x58, 0x40, 0xa4, 0x25, 0x91, 0x05, 0xdd, 0x31, 0x64, 0xc8, 0x47, 0xb0, 0x32, 0xf0, 0xd2, - 0x8c, 0x89, 0x0f, 0x37, 0x13, 0x9e, 0x20, 0x67, 0xbd, 0x89, 0x58, 0x5b, 0x61, 0xb5, 0x44, 0xe1, - 0x2a, 0x64, 0x30, 0x41, 0x13, 0x9d, 0xe3, 0x49, 0x9a, 0xd9, 0x8b, 0x66, 0xe7, 0xba, 0x49, 0x9a, - 0x39, 0x48, 0x27, 0xaf, 0xc0, 0xdc, 0x33, 0x16, 0x07, 0xc9, 0x33, 0xdb, 0x42, 0x89, 0x86, 0x94, - 0xf8, 0x04, 0x69, 0x8e, 0xe2, 0x91, 0x0e, 0xbc, 0xdc, 0x63, 0x31, 0x75, 0xfb, 0xa9, 0xc7, 0x62, - 0x1a, 0xb8, 0xfc, 0x6c, 0xd8, 0xeb, 0x89, 0x66, 0x65, 0x29, 0xf5, 0x22, 0xd7, 0x4f, 0x86, 0x71, - 0x66, 0x2f, 0xad, 0x95, 0xd6, 0x2b, 0xca, 0xb9, 0xef, 0x08, 0xf1, 0x0f, 0xa5, 0x74, 0x57, 0x0a, - 0x77, 0x51, 0x76, 0x47, 0x88, 0x92, 0x8f, 0xe0, 0xde, 0x54, 0x7d, 0xa7, 0x5e, 0xe6, 0x9f, 0xb9, - 0x9c, 0x7d, 0x4e, 0x6d, 0x62, 0x68, 0xbb, 0x3d, 0xa9, 0x6d, 0x5b, 0x48, 0x76, 0xd9, 0xe7, 0x54, - 0xf4, 0x80, 0x5e, 0x0c, 0xbc, 0x38, 0xb0, 0x97, 0xcd, 0x1e, 0xec, 0x21, 0xcd, 0x51, 0x3c, 0xf2, - 0x3a, 0xcc, 0xcb, 0x5f, 0x9b, 0xf6, 0x0a, 0x8a, 0x2d, 0x98, 0x62, 0x9b, 0x8e, 0xe6, 0x8a, 0xd9, - 0x3e, 0x4d, 0x13, 0x2f, 0xf0, 0x3d, 0x9e, 0xb9, 0x9f, 0x0d, 0x69, 0x7a, 0x69, 0x5f, 0x37, 0x67, - 0x7b, 0x5b, 0x33, 0xbf, 0x23, 0x78, 0x4e, 0xf3, 0x74, 0xe4, 0x9b, 0x3c, 0x82, 0x06, 0x13, 0xf1, - 0xe8, 0x86, 0x49, 0x72, 0x3e, 0x1c, 0xd8, 0xb6, 0x19, 0x4b, 0x18, 0xa9, 0x07, 0x49, 0x72, 0xfe, - 0xdd, 0x81, 0x53, 0x67, 0xfa, 0x63, 0x38, 0x20, 0x77, 0x00, 0x06, 0x5e, 0x4a, 0xe3, 0xcc, 0x65, - 0xc1, 0x85, 0x7d, 0x6b, 0xad, 0xb4, 0xbe, 0xe0, 0xd4, 0x24, 0xa5, 0x1d, 0x5c, 0x90, 0x63, 0xb8, - 0x41, 0x2f, 0x06, 0xa1, 0xc7, 0x62, 0xb7, 0x97, 0xa4, 0xae, 0x9f, 0xc4, 0xb1, 0x72, 0xa7, 0x55, - 0x54, 0xbf, 0x9a, 0xf7, 0x45, 0xc8, 0xec, 0x27, 0xe9, 0x4e, 0x2e, 0xe1, 0xac, 0xd0, 0x29, 0xd4, - 0xd6, 0x2f, 0x66, 0xa0, 0x39, 0xea, 0xb7, 0x64, 0xdd, 0xc8, 0x58, 0x64, 0xd4, 0xb3, 0x27, 0xb2, - 0xd6, 0x12, 0x8d, 0xfd, 0x24, 0xa0, 0x81, 0x9b, 0x79, 0xfc, 0xdc, 0x8d, 0x68, 0xe6, 0xd9, 0xe5, - 0xb5, 0x99, 0xf5, 0x86, 0xb3, 0xa8, 0x18, 0x27, 0x1e, 0x3f, 0x3f, 0xa4, 0x99, 0x47, 0xde, 0x82, - 0x66, 0xe1, 0xcb, 0xe7, 0xf4, 0x92, 0xdb, 0x33, 0x6b, 0x33, 0x85, 0x27, 0xee, 0x5d, 0x0c, 0x52, - 0x67, 0x21, 0x97, 0x78, 0x42, 0x2f, 0x39, 0x79, 0x05, 0x66, 0xfd, 0x33, 0x16, 0x06, 0x2a, 0x71, - 0x19, 0xd9, 0x53, 0x04, 0xac, 0x23, 0x99, 0xe4, 0x55, 0x98, 0xcd, 0x2e, 0x07, 0x94, 0xdb, 0xb3, - 0xa8, 0x4f, 0xa5, 0xb7, 0x7d, 0x46, 0xc3, 0x40, 0x34, 0xd7, 0x91, 0x5c, 0xf2, 0x0e, 0x2c, 0x7a, - 0x61, 0xe8, 0xf6, 0x04, 0xdd, 0x95, 0x80, 0xb9, 0xe9, 0x80, 0x05, 0x2f, 0x0c, 0xf3, 0x2f, 0x4e, - 0xde, 0x87, 0xba, 0x9f, 0x44, 0x7a, 0x19, 0xc0, 0x24, 0xd6, 0xdc, 0xbc, 0x2e, 0x41, 0x3b, 0x05, - 0xe3, 0x30, 0x09, 0xf4, 0xd0, 0x98, 0xf2, 0xe4, 0x00, 0x6e, 0x0c, 0x07, 0x3a, 0x3c, 0x32, 0x6a, - 0x0c, 0x54, 0x15, 0xcd, 0xdf, 0x54, 0xbd, 0x92, 0xc3, 0xb5, 0x7d, 0x99, 0x51, 0xde, 0x0d, 0x99, - 0x4f, 0x9d, 0x65, 0x0d, 0xdb, 0xc9, 0xa8, 0x1e, 0xc5, 0xd6, 0xef, 0x95, 0xa0, 0x6e, 0x38, 0x0f, - 0x79, 0x13, 0x56, 0xa4, 0x97, 0x9d, 0x79, 0x71, 0x10, 0x52, 0x37, 0xe9, 0xf5, 0x38, 0xcd, 0xb8, - 0x5d, 0x5a, 0x9b, 0x59, 0x5f, 0x70, 0x08, 0xf2, 0x1e, 0x23, 0xeb, 0x48, 0x72, 0x84, 0x87, 0x9d, - 0x53, 0x3a, 0x70, 0x93, 0x54, 0xe4, 0x2f, 0xb1, 0xd6, 0x54, 0x9d, 0x9a, 0xa0, 0x1c, 0x09, 0x82, - 0x58, 0x5c, 0x70, 0x58, 0x53, 0x1a, 0xab, 0x09, 0x1a, 0x1f, 0xf6, 0x9c, 0xdf, 0x7a, 0x17, 0x96, - 0x26, 0x9a, 0x4d, 0xbe, 0x02, 0x0b, 0xa6, 0x4f, 0xc8, 0xa6, 0x34, 0x9c, 0x86, 0xe1, 0x0f, 0xbc, - 0xf5, 0xeb, 0x12, 0x58, 0xe3, 0x19, 0x7d, 0xba, 0x37, 0x95, 0xa6, 0x7b, 0xd3, 0x9b, 0x50, 0x37, - 0x67, 0xb2, 0x3c, 0x7d, 0x26, 0xa1, 0x57, 0x4c, 0x63, 0x0b, 0xbd, 0x7a, 0xe6, 0x2a, 0xaf, 0x46, - 0x7f, 0xde, 0x85, 0x7b, 0x49, 0xca, 0xfa, 0x2c, 0xf6, 0x42, 0x9c, 0xab, 0x41, 0x1a, 0x24, 0xfe, - 0x90, 0xa6, 0x46, 0x7b, 0x2a, 0xd8, 0x9e, 0xdb, 0x5a, 0x6c, 0x27, 0xa3, 0xc7, 0x4a, 0x28, 0x9f, - 0xa3, 0x1f, 0xcc, 0x40, 0x63, 0xab, 0xd3, 0xc1, 0x34, 0xd0, 0x8e, 0x7b, 0x09, 0x79, 0x07, 0x00, - 0xf3, 0x07, 0x36, 0x76, 0x34, 0xb0, 0xb4, 0x9c, 0x11, 0x58, 0xb5, 0xcf, 0x34, 0x81, 0xb4, 0x61, - 0x31, 0x60, 0x3c, 0xf3, 0x62, 0x9f, 0x0a, 0xeb, 0x29, 0xf3, 0x71, 0xc2, 0x9a, 0x3a, 0xce, 0x3f, - 0xa6, 0x7e, 0x96, 0xa4, 0xbb, 0x4a, 0xe4, 0x10, 0x25, 0x94, 0x96, 0x66, 0x30, 0x42, 0x25, 0xb7, - 0x60, 0x36, 0x4b, 0x06, 0xee, 0x39, 0x8e, 0xc0, 0x82, 0x12, 0x12, 0xeb, 0xf3, 0x13, 0xf2, 0xaa, - 0x70, 0xf0, 0x70, 0x18, 0xc5, 0x6e, 0xec, 0x45, 0x14, 0x83, 0xad, 0xa6, 0x04, 0x40, 0x32, 0x3a, - 0x5e, 0x44, 0xc9, 0xcb, 0x50, 0x53, 0x62, 0x2c, 0xc0, 0x9d, 0xc1, 0x8c, 0x12, 0xaa, 0x4a, 0x32, - 0x2e, 0xa0, 0xf5, 0x94, 0xf6, 0xdc, 0xa7, 0xd4, 0x77, 0x7b, 0x0f, 0x37, 0x71, 0x43, 0xd0, 0x70, - 0x6a, 0x29, 0xed, 0x7d, 0x4c, 0xfd, 0xfd, 0x87, 0x9b, 0xe4, 0x1e, 0x54, 0xa5, 0xb7, 0xb2, 0x00, - 0x57, 0x77, 0xad, 0x61, 0x1e, 0xa9, 0x6d, 0x91, 0x9c, 0x1b, 0x91, 0x77, 0xe1, 0xea, 0xb6, 0xe3, - 0x1a, 0x5d, 0xd2, 0x51, 0x15, 0x79, 0x17, 0xba, 0xab, 0x64, 0x03, 0x9a, 0x67, 0x31, 0x7f, 0xe6, - 0xd2, 0x9e, 0xcb, 0xa9, 0x97, 0xfa, 0x67, 0x98, 0xcc, 0x75, 0xbf, 0x1a, 0x82, 0xb7, 0xd7, 0xeb, - 0x22, 0xe7, 0xa3, 0x4a, 0x75, 0xde, 0xaa, 0xb6, 0x7e, 0x7f, 0x06, 0x1a, 0xfb, 0x27, 0xdd, 0x17, - 0x9a, 0x15, 0x2d, 0x37, 0x7d, 0x56, 0xcc, 0x5e, 0x94, 0xa7, 0xf5, 0x62, 0x03, 0xe6, 0xe5, 0x90, - 0xe8, 0x1c, 0x67, 0xe9, 0x6c, 0x81, 0xe3, 0x14, 0xf7, 0x12, 0x47, 0x0b, 0x90, 0x97, 0xa1, 0x61, - 0x0c, 0x3e, 0x47, 0xff, 0xaa, 0x39, 0xf5, 0x62, 0xdc, 0x39, 0xf9, 0x4a, 0xde, 0x50, 0x7a, 0x91, - 0xe1, 0xc8, 0xd7, 0x46, 0x1b, 0x45, 0x2f, 0x32, 0xf2, 0x06, 0x2c, 0x2a, 0xa1, 0xe4, 0x9c, 0xc6, - 0xec, 0x73, 0x9a, 0xe2, 0xf0, 0x6b, 0xc9, 0xa6, 0x94, 0xd4, 0x3c, 0xb2, 0xac, 0xdd, 0x01, 0x70, - 0x89, 0x91, 0x8e, 0xf0, 0xae, 0x36, 0xd4, 0x1b, 0xc6, 0x3e, 0x0e, 0x68, 0x73, 0x73, 0x59, 0x6d, - 0x14, 0x7c, 0x2f, 0xf4, 0xd2, 0xfd, 0x61, 0xec, 0x77, 0x59, 0x7f, 0xc4, 0xba, 0xa0, 0x91, 0x07, - 0x00, 0x11, 0xae, 0xd8, 0x62, 0xbf, 0x6c, 0x5f, 0x1f, 0x4f, 0xec, 0x1a, 0x80, 0x32, 0x82, 0xd0, - 0xfa, 0xfe, 0x2c, 0xd4, 0x8a, 0xbd, 0xc9, 0x3d, 0xa8, 0xca, 0xdd, 0x0d, 0x0b, 0x70, 0x22, 0xf2, - 0x11, 0x45, 0xea, 0xe8, 0x88, 0x96, 0xbf, 0x68, 0x44, 0x6d, 0xa8, 0x04, 0x94, 0xfb, 0xe8, 0xe8, - 0x55, 0xed, 0xe8, 0x82, 0x42, 0xbe, 0x06, 0x64, 0x90, 0xb2, 0xc8, 0x4b, 0x2f, 0xdd, 0xdc, 0x93, - 0xe5, 0x88, 0xcf, 0x38, 0x96, 0xe2, 0x28, 0x8d, 0x01, 0x27, 0x1f, 0x80, 0x15, 0xd3, 0x8b, 0xcc, - 0x4d, 0xa9, 0x17, 0xb8, 0x34, 0xee, 0xb3, 0x98, 0xe2, 0xe0, 0x37, 0xb5, 0xf1, 0x3d, 0xa4, 0x19, - 0x3e, 0xd2, 0x14, 0xf2, 0x0e, 0xf5, 0x02, 0xc9, 0x21, 0x5f, 0x83, 0xb9, 0x54, 0xe4, 0x17, 0xbd, - 0xd2, 0xa8, 0x4c, 0xfa, 0x84, 0x5e, 0x3a, 0x82, 0xac, 0x50, 0x4a, 0x86, 0xbc, 0x07, 0xb7, 0x74, - 0xeb, 0x06, 0x29, 0xed, 0xb1, 0x0b, 0xb3, 0x91, 0xf3, 0xd8, 0xc8, 0x1b, 0x4a, 0xe0, 0x18, 0xf9, - 0x45, 0x53, 0x47, 0x73, 0x7a, 0x75, 0x3c, 0xa7, 0xaf, 0x41, 0x83, 0x71, 0xb7, 0x27, 0xf6, 0x31, - 0xb8, 0x7d, 0xac, 0xa1, 0x00, 0x30, 0xbe, 0xef, 0xf1, 0x0c, 0x27, 0xe0, 0x10, 0xee, 0x0c, 0x86, - 0xfc, 0x8c, 0x06, 0x6e, 0x90, 0x3c, 0x8b, 0xdd, 0x1e, 0x0b, 0x33, 0x8a, 0xdb, 0x8b, 0x00, 0x57, - 0x63, 0x6e, 0xc3, 0xc4, 0x5a, 0xbd, 0x2a, 0x01, 0xbb, 0xc9, 0xb3, 0x78, 0x1f, 0xc5, 0x77, 0x72, - 0x69, 0xb2, 0x03, 0xcb, 0xe9, 0x30, 0xce, 0x58, 0x44, 0xb5, 0xaa, 0x90, 0xf1, 0xcc, 0xae, 0xa3, - 0x12, 0xe5, 0x51, 0x8e, 0x14, 0x90, 0x58, 0x67, 0x29, 0x35, 0x3f, 0x0f, 0x18, 0x17, 0x1e, 0x6d, - 0x89, 0x5c, 0xf0, 0xcc, 0x63, 0x99, 0x8b, 0xaa, 0x22, 0x8e, 0xdb, 0xed, 0x59, 0x35, 0x6e, 0x0b, - 0x91, 0x77, 0xf1, 0x89, 0xc7, 0xb2, 0x13, 0x16, 0xd1, 0x43, 0x4e, 0x1e, 0x40, 0xcd, 0x8b, 0x63, - 0xb5, 0x51, 0x93, 0x9b, 0xeb, 0xb1, 0x1c, 0x8b, 0x6e, 0x52, 0xf5, 0xe2, 0x18, 0xbf, 0x5a, 0x3f, - 0xae, 0x00, 0x99, 0xdc, 0x3b, 0xff, 0xdf, 0xf4, 0xc5, 0xe7, 0xfa, 0xc6, 0xec, 0x73, 0x7d, 0xe3, - 0x2b, 0x50, 0xec, 0xaa, 0x50, 0x7c, 0x0e, 0xc5, 0x1b, 0x39, 0x51, 0x08, 0x8d, 0x7b, 0xc8, 0xfc, - 0x97, 0xf7, 0x90, 0xea, 0x6f, 0xc3, 0x43, 0x6a, 0xff, 0x6b, 0x0f, 0x81, 0x17, 0xf4, 0x90, 0xfa, - 0x0b, 0x78, 0xc8, 0x7f, 0xcf, 0x42, 0x45, 0x9c, 0x1f, 0xc9, 0x5b, 0x50, 0x13, 0x27, 0x48, 0x73, - 0xa5, 0x68, 0x16, 0xc7, 0x4b, 0x23, 0x03, 0x54, 0x3f, 0x55, 0xdf, 0xe4, 0x5b, 0xd0, 0x44, 0x88, - 0x38, 0x5e, 0x4a, 0x5c, 0xd9, 0x5c, 0x61, 0x04, 0x6e, 0xac, 0x0c, 0xd0, 0xf8, 0xd4, 0xa0, 0x7d, - 0x99, 0x7d, 0x98, 0x58, 0x99, 0x59, 0x1c, 0xd3, 0x14, 0xcf, 0x0c, 0x15, 0x73, 0x65, 0x46, 0xb2, - 0x38, 0x38, 0xbc, 0x09, 0xcd, 0x90, 0xf6, 0x32, 0x17, 0xdb, 0x84, 0xbb, 0xef, 0xd9, 0x89, 0xf9, - 0x6a, 0x08, 0x09, 0xd1, 0x30, 0xdc, 0x7c, 0x6f, 0xc2, 0x62, 0xca, 0xfa, 0x67, 0x26, 0x64, 0x6e, - 0x72, 0xc3, 0x8e, 0x22, 0x39, 0xe6, 0x4d, 0xa8, 0x0f, 0xd2, 0xe4, 0x94, 0xaa, 0x5d, 0xd9, 0xfc, - 0x15, 0xbb, 0x32, 0x94, 0x91, 0xbb, 0xb2, 0x37, 0xa1, 0x7e, 0x3a, 0x64, 0xf9, 0x3e, 0xae, 0x7a, - 0x05, 0x02, 0x65, 0x24, 0xe2, 0x21, 0x2c, 0x62, 0x4f, 0x0c, 0xd7, 0xab, 0x4d, 0xb4, 0x0b, 0x3b, - 0x6b, 0xb8, 0xdb, 0xd7, 0xc1, 0x92, 0x9d, 0x79, 0x6e, 0x4a, 0x93, 0x1d, 0x1e, 0x85, 0x25, 0xd9, - 0xd9, 0xa8, 0x9f, 0xd7, 0x27, 0x61, 0x28, 0x63, 0xc0, 0x1e, 0xc3, 0x6d, 0x09, 0xa3, 0x9f, 0x19, - 0x48, 0xb7, 0x97, 0x26, 0x91, 0xcb, 0x62, 0xbb, 0x31, 0xa1, 0xe1, 0x26, 0x8a, 0xef, 0x7d, 0x56, - 0xe8, 0xd8, 0x4f, 0x93, 0xa8, 0x1d, 0x93, 0x47, 0x70, 0x93, 0x71, 0x37, 0x1e, 0x86, 0xa1, 0xeb, - 0x3d, 0xf3, 0x52, 0xea, 0x72, 0x1a, 0x31, 0x9c, 0x11, 0x4c, 0x71, 0x55, 0x67, 0x99, 0xf1, 0xce, - 0x30, 0x0c, 0xb7, 0x04, 0xb3, 0x4b, 0x23, 0x86, 0xee, 0x7a, 0x45, 0x70, 0x35, 0xbf, 0x4c, 0x70, - 0xb5, 0xfe, 0xb3, 0x0c, 0x0b, 0x23, 0x42, 0x64, 0x05, 0xca, 0x2a, 0x27, 0xea, 0x00, 0x2b, 0xb3, - 0x80, 0x3c, 0x02, 0x8b, 0x27, 0xc3, 0xd4, 0xa7, 0xb8, 0xf6, 0x4b, 0x4b, 0xe5, 0xc9, 0x09, 0x91, - 0x32, 0xe2, 0x37, 0x86, 0xee, 0x23, 0xb0, 0x32, 0x2f, 0xed, 0xd3, 0xcc, 0x40, 0x4d, 0x9e, 0x07, - 0x9b, 0x52, 0x26, 0x47, 0x6d, 0x02, 0xc9, 0x6d, 0x15, 0x85, 0x1c, 0x73, 0xc3, 0x6a, 0x69, 0x3b, - 0x79, 0x51, 0x67, 0x13, 0x48, 0x6e, 0xa9, 0xc0, 0x98, 0xbb, 0x28, 0x4b, 0x5b, 0xc9, 0x31, 0x6f, - 0xc3, 0x7c, 0xda, 0x93, 0x51, 0x3b, 0x87, 0x51, 0x7b, 0x73, 0xca, 0xa0, 0x19, 0xa1, 0x3b, 0x97, - 0xf6, 0x30, 0x68, 0x25, 0x2e, 0x4a, 0x02, 0xaa, 0x8e, 0x89, 0xd3, 0x70, 0xc6, 0x41, 0x71, 0x2e, - 0xed, 0x89, 0xaf, 0xd6, 0x0f, 0xca, 0x50, 0xcb, 0x8b, 0x77, 0x5f, 0xbc, 0x02, 0xfd, 0x56, 0x37, - 0xa0, 0x7a, 0x89, 0xaa, 0x4c, 0x2c, 0x51, 0x37, 0x60, 0x6e, 0x18, 0xb3, 0xcf, 0x86, 0x72, 0xdb, - 0x53, 0x75, 0xd4, 0xd7, 0x15, 0x4b, 0xd7, 0xdc, 0x15, 0x4b, 0xd7, 0xbb, 0xd0, 0xec, 0x65, 0x5c, - 0x66, 0x5d, 0x97, 0xc5, 0xbd, 0x44, 0x95, 0x01, 0xc7, 0xb6, 0xda, 0xd8, 0xa8, 0x46, 0x2f, 0xe3, - 0xf9, 0x57, 0xeb, 0x07, 0x25, 0xa8, 0xe5, 0x55, 0x4a, 0xb2, 0x01, 0x60, 0x44, 0x61, 0x69, 0xc2, - 0x57, 0x0c, 0x2e, 0x79, 0x04, 0xcd, 0x74, 0x10, 0x9b, 0x51, 0x2b, 0x3d, 0x52, 0x95, 0x7a, 0x9c, - 0x41, 0xac, 0xb2, 0xd7, 0x20, 0x36, 0xc2, 0x36, 0x2f, 0x37, 0xcc, 0x3c, 0xa7, 0xdc, 0xd0, 0xfa, - 0x7e, 0xc9, 0x2c, 0xe3, 0x91, 0x35, 0x98, 0x15, 0x1e, 0x3c, 0xad, 0x45, 0x92, 0x41, 0x36, 0xa0, - 0x26, 0x1a, 0x23, 0xa5, 0xa6, 0xb6, 0xa3, 0x9a, 0xca, 0x1f, 0x2f, 0xda, 0x84, 0x7f, 0x29, 0x43, - 0xdd, 0xa8, 0xc6, 0x92, 0x57, 0xa1, 0xda, 0x4f, 0x93, 0xe1, 0xc0, 0x3d, 0xbd, 0x9c, 0xd2, 0x8c, - 0x79, 0xe4, 0x6d, 0x5f, 0x0a, 0x31, 0xaf, 0xdf, 0x97, 0x9b, 0xfb, 0xc9, 0x08, 0x9d, 0xf7, 0xfa, - 0x7d, 0xdc, 0xcb, 0xaf, 0x41, 0x55, 0xd6, 0x1d, 0x68, 0x30, 0xb2, 0x6f, 0xc9, 0xa9, 0xe4, 0x01, - 0x34, 0x44, 0x8f, 0x72, 0x9b, 0x95, 0x69, 0x9d, 0x82, 0x74, 0x10, 0x7f, 0xa8, 0x2c, 0x2b, 0x40, - 0x6e, 0x7d, 0xf6, 0x2a, 0xc0, 0x96, 0x6a, 0x43, 0x3e, 0x0e, 0x73, 0xcf, 0xab, 0xfc, 0xbc, 0x07, - 0x8d, 0x41, 0x4a, 0x51, 0xed, 0x64, 0xcc, 0x9d, 0xb0, 0xfd, 0xd0, 0xe3, 0x67, 0xc7, 0x29, 0xdd, - 0xea, 0xf7, 0x45, 0x94, 0x89, 0x75, 0x47, 0xff, 0x6e, 0xfd, 0xa4, 0x04, 0x95, 0x93, 0x64, 0xd0, - 0x21, 0xaf, 0x43, 0x15, 0x77, 0xcd, 0xc5, 0xd8, 0xa9, 0xb2, 0xe1, 0xf6, 0x65, 0x3b, 0xa3, 0x91, - 0x33, 0x8f, 0xdc, 0xed, 0x4b, 0xb2, 0xaa, 0xab, 0xd8, 0x65, 0xa3, 0x1e, 0xa9, 0xca, 0xd7, 0x2f, - 0x34, 0x6d, 0x62, 0x14, 0x8a, 0x9d, 0x58, 0x3e, 0x6c, 0xa3, 0xe6, 0xea, 0xb9, 0xc4, 0xf6, 0x65, - 0xeb, 0x9f, 0x4b, 0x30, 0x8b, 0x65, 0xf2, 0xc2, 0x78, 0xe9, 0x39, 0xc6, 0xcb, 0x5f, 0xc6, 0xf8, - 0xcc, 0x17, 0x18, 0x27, 0x6f, 0xc3, 0x52, 0x96, 0x0e, 0x63, 0xdf, 0xcb, 0xa8, 0x58, 0xfd, 0xe5, - 0xc9, 0xae, 0x32, 0xb9, 0xf8, 0x69, 0xa1, 0x27, 0xf4, 0x12, 0x4f, 0x76, 0x1f, 0x40, 0xe5, 0x09, - 0x0b, 0x43, 0xf2, 0x12, 0xcc, 0xf9, 0x49, 0x1c, 0xb7, 0x77, 0x47, 0xda, 0xac, 0x68, 0xa2, 0x43, - 0x72, 0x1f, 0x56, 0x36, 0x3c, 0x4c, 0x92, 0x5a, 0x5b, 0xb0, 0x32, 0xad, 0x80, 0x49, 0xbe, 0x0a, - 0x0b, 0x45, 0xc1, 0x53, 0x27, 0x47, 0xad, 0xb8, 0x51, 0xb0, 0xda, 0x41, 0xeb, 0xe7, 0x33, 0x60, - 0xeb, 0x11, 0x90, 0x7f, 0x59, 0x12, 0x77, 0x87, 0x91, 0x48, 0x4d, 0x64, 0x03, 0x96, 0x70, 0x6d, - 0x1c, 0xa4, 0x89, 0x4f, 0x39, 0xa7, 0x81, 0x8b, 0x09, 0xa5, 0xb4, 0x5e, 0x71, 0x16, 0x05, 0xe3, - 0x58, 0xd3, 0x3b, 0x22, 0x78, 0x97, 0xe2, 0x61, 0x24, 0x44, 0x83, 0xa1, 0x4f, 0x03, 0x37, 0x4d, - 0x9e, 0x71, 0xe9, 0x01, 0xce, 0x62, 0x3c, 0x8c, 0x8e, 0x15, 0xdd, 0x49, 0x9e, 0x71, 0xf2, 0x2a, - 0x34, 0x85, 0x2c, 0xcb, 0x68, 0xea, 0xc9, 0xac, 0x33, 0x83, 0x82, 0x0b, 0xf1, 0x30, 0x6a, 0xe7, - 0xc4, 0xf1, 0x6b, 0x88, 0xca, 0xc4, 0x35, 0xc4, 0x1a, 0xd4, 0xfd, 0x24, 0xf6, 0x87, 0x69, 0x4a, - 0x63, 0xff, 0x12, 0x93, 0x6f, 0xc5, 0x31, 0x49, 0xe4, 0x00, 0x56, 0x32, 0xd6, 0x13, 0xee, 0x8d, - 0xdb, 0x75, 0x91, 0xe8, 0xb0, 0x36, 0x30, 0x67, 0xde, 0x0b, 0xa8, 0x00, 0x10, 0x4b, 0xca, 0x8e, - 0xe4, 0x3f, 0xbe, 0xe6, 0x10, 0x85, 0x33, 0xa8, 0xa2, 0xdd, 0xe9, 0x50, 0xe8, 0xe0, 0xc3, 0x68, - 0x90, 0xe9, 0x1a, 0x67, 0xc3, 0x59, 0x48, 0x87, 0x3b, 0x05, 0x91, 0x7c, 0x54, 0x18, 0xc5, 0x1d, - 0x37, 0x97, 0xc3, 0xa9, 0xae, 0x69, 0x46, 0x8d, 0x8a, 0x5d, 0xb7, 0x1a, 0xee, 0xdc, 0xa4, 0x41, - 0xdb, 0x6e, 0x00, 0xec, 0xd2, 0xcc, 0x63, 0x21, 0x26, 0xfa, 0x3e, 0xac, 0x28, 0x5c, 0x3e, 0x57, - 0x58, 0xa1, 0x39, 0x82, 0x65, 0xaa, 0x09, 0xca, 0x1c, 0xa3, 0x3a, 0xd3, 0xde, 0x1d, 0xf5, 0xf3, - 0xf1, 0x59, 0x76, 0x08, 0x1d, 0xa5, 0x30, 0xca, 0x5b, 0xbf, 0x0b, 0xab, 0xca, 0x90, 0x43, 0xfb, - 0x2c, 0x89, 0x3b, 0xc3, 0xe8, 0xa8, 0xd7, 0x8e, 0x55, 0x4d, 0xe9, 0x1e, 0xd4, 0x99, 0xfa, 0xad, - 0xbd, 0xab, 0xe6, 0x80, 0x26, 0xb5, 0x03, 0x71, 0xcc, 0x4e, 0x11, 0xe7, 0xc6, 0xc3, 0x48, 0x79, - 0x41, 0x2d, 0xd5, 0x9a, 0x5a, 0xff, 0x75, 0x07, 0xc8, 0xe4, 0xa0, 0x93, 0x47, 0xb0, 0x12, 0x44, - 0x3d, 0xa6, 0xee, 0x6e, 0x62, 0x1a, 0xb8, 0x03, 0xcf, 0x3f, 0x57, 0x1e, 0xb7, 0x5d, 0xb6, 0x4b, - 0x0e, 0x91, 0xfc, 0xae, 0x64, 0x1f, 0x0b, 0xae, 0x89, 0x3a, 0x67, 0x83, 0x41, 0x8e, 0x2a, 0x4f, - 0xa0, 0x24, 0x5b, 0xa2, 0xde, 0x01, 0x5b, 0xa1, 0x02, 0x2f, 0xf3, 0x72, 0x83, 0xe8, 0xb5, 0xd2, - 0x19, 0xaf, 0x4b, 0xfe, 0xae, 0x97, 0x79, 0xca, 0x1e, 0xfa, 0xee, 0x38, 0x50, 0xd9, 0x44, 0x60, - 0x65, 0x02, 0x28, 0xb9, 0x08, 0x7c, 0x17, 0x6e, 0x66, 0x49, 0xe6, 0x85, 0xae, 0x82, 0xa7, 0xdc, - 0x0d, 0x13, 0x2f, 0x10, 0x47, 0xb1, 0xd9, 0xbc, 0xa9, 0xcb, 0x28, 0xb2, 0x8b, 0x12, 0x0e, 0x3f, - 0x48, 0xbc, 0x00, 0x8f, 0x63, 0x2b, 0xa3, 0x48, 0x2a, 0x61, 0x73, 0x68, 0x6e, 0xc9, 0x84, 0x50, - 0x04, 0x7c, 0x5d, 0x9b, 0x92, 0x27, 0x06, 0x1e, 0x7b, 0x03, 0x7e, 0x96, 0x64, 0x02, 0x33, 0x8f, - 0x18, 0xa9, 0x6f, 0x5b, 0x70, 0xbb, 0x8a, 0x79, 0x88, 0x07, 0xe0, 0x30, 0xf1, 0xbd, 0xd0, 0x95, - 0x33, 0xc5, 0xd1, 0x61, 0x2b, 0x4e, 0x03, 0x89, 0xd2, 0x0f, 0x30, 0x76, 0x53, 0x1a, 0x25, 0x19, - 0xcd, 0xa5, 0x6a, 0x32, 0x76, 0x25, 0x55, 0x8b, 0xbd, 0x06, 0x8b, 0x43, 0x4e, 0x53, 0xd9, 0xd6, - 0xd3, 0xcb, 0x8c, 0xca, 0x03, 0x67, 0xc5, 0x59, 0x10, 0x64, 0xd1, 0x4e, 0xac, 0x84, 0x93, 0xb7, - 0xe0, 0xba, 0x6c, 0x6a, 0x48, 0xbd, 0x34, 0xd6, 0x80, 0x88, 0xe3, 0xb1, 0xb3, 0xe2, 0x10, 0x64, - 0x1e, 0x48, 0x9e, 0xea, 0xdd, 0xff, 0x87, 0xdb, 0x01, 0xe3, 0x62, 0x2d, 0x43, 0x59, 0xdf, 0xf3, - 0xcf, 0xa8, 0x7b, 0xc6, 0x32, 0x65, 0xa6, 0x81, 0xc0, 0x9b, 0x52, 0x44, 0x40, 0x76, 0x84, 0xc0, - 0x63, 0x96, 0x49, 0x83, 0xdf, 0x82, 0x97, 0x26, 0xd1, 0x11, 0xe3, 0x5c, 0xc1, 0x17, 0x10, 0x6e, - 0x8f, 0xc1, 0x0f, 0x19, 0xe7, 0x12, 0xff, 0x36, 0xd8, 0xe3, 0xd3, 0xe8, 0x9f, 0x51, 0xff, 0x5c, - 0xb4, 0xb9, 0x69, 0x0c, 0xae, 0x9e, 0xc3, 0x1d, 0xc1, 0x3c, 0xe4, 0x62, 0x2f, 0xc8, 0x33, 0x4f, - 0xcf, 0x9e, 0x1e, 0xbb, 0x45, 0x44, 0x58, 0xc8, 0x11, 0xc6, 0xf4, 0xf0, 0xad, 0x42, 0x95, 0xd3, - 0x7e, 0x44, 0xe3, 0x8c, 0xe3, 0x2d, 0x63, 0xc5, 0xc9, 0xbf, 0x65, 0x70, 0x79, 0xfa, 0xd2, 0x60, - 0x49, 0x07, 0x97, 0x27, 0x6f, 0x0c, 0x04, 0x3b, 0xa0, 0x61, 0xe6, 0x49, 0x97, 0x24, 0x92, 0x8d, - 0x14, 0x74, 0xc3, 0x7b, 0x50, 0x97, 0x6c, 0xd9, 0xdd, 0x65, 0xe4, 0x4b, 0x84, 0xec, 0xe0, 0x6b, - 0xb0, 0x18, 0x3d, 0xf5, 0x7d, 0x97, 0xc5, 0x83, 0x61, 0x26, 0x95, 0xac, 0xc8, 0x99, 0x13, 0xe4, - 0xb6, 0xa0, 0xa2, 0xa2, 0x75, 0xb0, 0x0c, 0x39, 0xa9, 0xed, 0x3a, 0x0a, 0x36, 0x73, 0x41, 0xa9, - 0x51, 0x4b, 0x26, 0xc3, 0x2c, 0x57, 0x79, 0xa3, 0x90, 0x3c, 0x42, 0x32, 0xea, 0x5c, 0x83, 0x46, - 0x18, 0x61, 0x4c, 0x49, 0xa9, 0x9b, 0xb2, 0x75, 0x61, 0x24, 0x02, 0x09, 0x25, 0xbe, 0x09, 0xab, - 0xa6, 0x6b, 0xa3, 0x71, 0x75, 0x67, 0x14, 0x71, 0xbc, 0x3a, 0xac, 0x38, 0x37, 0x0b, 0xef, 0x6e, - 0x17, 0xfc, 0x43, 0xc3, 0xd9, 0x24, 0xf8, 0x94, 0x65, 0x91, 0x37, 0x10, 0xb8, 0x5b, 0x86, 0xb3, - 0x21, 0x6e, 0x1b, 0x59, 0x87, 0x9c, 0xbc, 0x01, 0xcb, 0x11, 0x8b, 0x5d, 0x19, 0x17, 0x85, 0xa1, - 0x55, 0x39, 0x6f, 0x11, 0x8b, 0x0f, 0x04, 0xa7, 0xab, 0x2d, 0x08, 0x71, 0xef, 0x62, 0x42, 0xfc, - 0xb6, 0x12, 0xf7, 0x2e, 0x46, 0xc5, 0x1f, 0xc0, 0x8a, 0xd0, 0xae, 0x02, 0xaa, 0x90, 0x7f, 0x49, - 0x46, 0x76, 0xc4, 0x62, 0x07, 0x59, 0x23, 0x00, 0xef, 0x62, 0x12, 0x70, 0x47, 0x01, 0xbc, 0x8b, - 0x31, 0xc0, 0x31, 0x2c, 0x2b, 0x5f, 0x73, 0x93, 0x9e, 0xab, 0x53, 0xb4, 0x7d, 0x17, 0x57, 0x86, - 0xb5, 0x91, 0xa5, 0x68, 0x4a, 0xa6, 0x77, 0x96, 0x14, 0xd8, 0x48, 0xfe, 0x45, 0x02, 0xc4, 0x49, - 0x1d, 0xc9, 0x9c, 0xf7, 0xcc, 0x04, 0x78, 0xf8, 0xd4, 0xf7, 0xa7, 0x67, 0x4e, 0x09, 0x34, 0x33, - 0xe7, 0xda, 0x04, 0xd0, 0xc8, 0x9c, 0x1f, 0xc0, 0x1d, 0x05, 0x0c, 0x23, 0x7d, 0x4e, 0x1f, 0x31, - 0xfb, 0x32, 0xa2, 0x6f, 0x49, 0xa1, 0x83, 0x48, 0x9e, 0x1e, 0x4d, 0xd3, 0x53, 0x35, 0x98, 0xf6, - 0x5b, 0x53, 0x35, 0x18, 0x6d, 0xf8, 0x36, 0xdc, 0x91, 0xae, 0xf3, 0x14, 0x6f, 0x92, 0x5c, 0x16, - 0x5c, 0xc8, 0xf4, 0x8d, 0xb5, 0x0a, 0xfe, 0xd0, 0x0e, 0x64, 0xde, 0x40, 0x21, 0x79, 0xdb, 0xd4, - 0x0e, 0x2e, 0x44, 0x02, 0xdf, 0x4f, 0x93, 0xa8, 0xfb, 0x90, 0xec, 0xc0, 0xbd, 0xe7, 0x28, 0x08, - 0x18, 0x3f, 0xb7, 0x29, 0xaa, 0x58, 0x9d, 0xae, 0x62, 0x97, 0xf1, 0x73, 0xb2, 0x07, 0x6b, 0xcf, - 0x51, 0x82, 0xb9, 0xcc, 0xee, 0xa1, 0x96, 0xdb, 0xd3, 0xb5, 0x60, 0x32, 0xbb, 0xba, 0x33, 0xba, - 0x36, 0xd8, 0xbf, 0xaa, 0x33, 0xaa, 0x40, 0x38, 0xad, 0x33, 0xf2, 0x76, 0x29, 0x57, 0x71, 0x36, - 0xad, 0x33, 0xf2, 0x9e, 0x49, 0x29, 0x39, 0x82, 0x57, 0xaf, 0x52, 0xf2, 0x94, 0x71, 0x96, 0x89, - 0xed, 0x66, 0x12, 0x50, 0x6e, 0x33, 0x54, 0xb5, 0x36, 0x4d, 0xd5, 0xc7, 0x52, 0xb0, 0x23, 0xe4, - 0x48, 0x17, 0x5e, 0xbf, 0x4a, 0x61, 0xc0, 0xb8, 0xef, 0xa5, 0x41, 0xae, 0xf2, 0x53, 0x54, 0xd9, - 0x9a, 0xa6, 0x72, 0x57, 0x8b, 0x4a, 0xa5, 0xfb, 0xf0, 0xf2, 0x84, 0x52, 0x4c, 0xbf, 0x4f, 0xa9, - 0x9f, 0x77, 0xf6, 0x7c, 0xda, 0x98, 0x8b, 0x7c, 0xfe, 0x31, 0xf5, 0x55, 0x6f, 0x0f, 0xe0, 0x95, - 0xe9, 0x7a, 0xb0, 0xa2, 0xc5, 0x73, 0x55, 0x21, 0xaa, 0xba, 0x3b, 0xa9, 0xea, 0x08, 0xe5, 0x94, - 0xb6, 0xf7, 0xe1, 0x76, 0x2f, 0xe3, 0x6e, 0xac, 0x4b, 0x65, 0x11, 0x8d, 0x92, 0xf4, 0xd2, 0x8d, - 0x13, 0x2c, 0x6c, 0xd8, 0x3f, 0x2c, 0xe1, 0x65, 0xd5, 0xcd, 0x5e, 0xc6, 0x3b, 0xb2, 0x40, 0x26, - 0x05, 0x3a, 0x92, 0x2f, 0x12, 0xa1, 0x01, 0xcf, 0x58, 0x7c, 0xe9, 0x4a, 0xe0, 0x1f, 0x4b, 0xe0, - 0x92, 0x06, 0x9e, 0xb0, 0xf8, 0x12, 0xeb, 0x2d, 0x62, 0x4f, 0x31, 0x0e, 0xd1, 0xd6, 0x7e, 0x24, - 0x41, 0xcb, 0x26, 0x48, 0x5b, 0x7a, 0x00, 0x2b, 0x06, 0x2c, 0x88, 0x7a, 0xca, 0xd0, 0x9f, 0x48, - 0x8c, 0xa5, 0x31, 0xbb, 0x51, 0x4f, 0xda, 0x79, 0x08, 0x37, 0xc6, 0x00, 0xda, 0xcc, 0x9f, 0x4a, - 0x08, 0x31, 0x20, 0xda, 0xca, 0x0e, 0xdc, 0x15, 0x20, 0x11, 0xca, 0x57, 0x8c, 0xc8, 0x9f, 0xc9, - 0x63, 0xcb, 0x6a, 0x2f, 0xe3, 0x22, 0x9e, 0xa7, 0x0d, 0xca, 0x3b, 0x60, 0x8f, 0x2a, 0x31, 0xc6, - 0xe5, 0xcf, 0x25, 0x7c, 0xc5, 0x80, 0x17, 0x43, 0xf3, 0x4d, 0x58, 0x9d, 0x02, 0xd4, 0x96, 0xff, - 0x42, 0x42, 0x6f, 0x8c, 0x41, 0xb5, 0x55, 0x35, 0xae, 0x05, 0xb8, 0x18, 0xa3, 0xbf, 0x94, 0xc8, - 0x65, 0x03, 0x99, 0x0f, 0xd3, 0x7b, 0x70, 0x6b, 0x12, 0xa6, 0x4d, 0xfe, 0x58, 0x02, 0xaf, 0x8f, - 0x02, 0xc7, 0x26, 0xbf, 0x08, 0x7a, 0x74, 0xcb, 0x88, 0xdb, 0x7f, 0x25, 0x61, 0x62, 0xf2, 0x75, - 0xb8, 0x0b, 0x96, 0xdc, 0x50, 0x8e, 0x40, 0x8c, 0x74, 0xf3, 0xd7, 0xc5, 0xe4, 0x4f, 0xe4, 0x99, - 0x0f, 0xe0, 0xce, 0x14, 0x98, 0xac, 0x84, 0x89, 0x44, 0x6b, 0xff, 0x44, 0x82, 0xed, 0x31, 0x30, - 0x4a, 0xec, 0xb3, 0x90, 0x8a, 0xbd, 0xde, 0xa4, 0x06, 0xae, 0x1e, 0x78, 0x3d, 0xb4, 0xff, 0x46, - 0xe2, 0x6f, 0x8c, 0xe2, 0xbb, 0xc8, 0xef, 0x3e, 0x9c, 0x6e, 0x5f, 0xa1, 0x31, 0xe3, 0xfe, 0xed, - 0x54, 0xfb, 0x12, 0x8f, 0x09, 0x77, 0x1d, 0x2c, 0xad, 0x41, 0x65, 0x92, 0xd8, 0xfe, 0x3b, 0x09, - 0x5a, 0x90, 0x20, 0x99, 0x34, 0x3a, 0xe6, 0x10, 0xe9, 0x4c, 0xa8, 0xc7, 0xf5, 0xef, 0x8b, 0x79, - 0x2c, 0x72, 0xa0, 0x1a, 0x59, 0xe5, 0xee, 0x02, 0x16, 0x44, 0x1a, 0x89, 0x4b, 0xd2, 0x3f, 0x48, - 0x14, 0x91, 0xa8, 0xdd, 0x48, 0xe2, 0x70, 0x31, 0x7a, 0x1f, 0x5e, 0x32, 0x40, 0xd2, 0x0e, 0xe6, - 0x12, 0x41, 0x8d, 0xb8, 0xfd, 0xd3, 0xc2, 0xe5, 0x10, 0x8a, 0xc6, 0x44, 0x0e, 0xd9, 0xcf, 0xb8, - 0xcc, 0xde, 0xd3, 0xe1, 0x2a, 0x15, 0x45, 0xdc, 0xfe, 0x99, 0xd4, 0x70, 0x6b, 0x42, 0x83, 0xcc, - 0x42, 0x87, 0x5c, 0x47, 0x8b, 0x50, 0x82, 0xee, 0x6e, 0x36, 0xfd, 0x1f, 0x8b, 0x68, 0x69, 0x07, - 0x17, 0xc2, 0xdb, 0x8d, 0xc6, 0x6f, 0xc9, 0x58, 0xcd, 0x81, 0x93, 0xcd, 0xff, 0xb9, 0x84, 0xdb, - 0x05, 0x7c, 0xac, 0x03, 0x1f, 0xc2, 0xcb, 0x57, 0xa9, 0x28, 0xba, 0xf0, 0x0b, 0xa9, 0xe5, 0xf6, - 0x14, 0x2d, 0x79, 0x27, 0xd4, 0xa4, 0x9d, 0xa6, 0xc3, 0x8c, 0x9a, 0x5a, 0x22, 0x6e, 0xff, 0x53, - 0x31, 0x69, 0xdb, 0x82, 0x9d, 0x83, 0x0f, 0xb9, 0x0e, 0x3e, 0x13, 0xa6, 0xba, 0x1f, 0x71, 0xfb, - 0x97, 0x45, 0xf0, 0x15, 0x40, 0xd9, 0xff, 0x43, 0xde, 0xfa, 0x69, 0x29, 0x3f, 0xfa, 0x1a, 0xc7, - 0x7c, 0xf2, 0x0a, 0x34, 0x23, 0x16, 0x9f, 0x74, 0x8f, 0x64, 0xc5, 0x20, 0x2f, 0xb3, 0x34, 0x24, - 0x55, 0x88, 0x76, 0xd0, 0x59, 0x06, 0x6c, 0x40, 0x43, 0x16, 0x53, 0xf7, 0xb3, 0x21, 0x1d, 0xd2, - 0x5c, 0x5a, 0x1e, 0xb1, 0x97, 0x35, 0xf7, 0x3b, 0x82, 0xa9, 0x40, 0xef, 0x80, 0x9d, 0x83, 0x4e, - 0x53, 0xea, 0x9d, 0xd3, 0x34, 0x87, 0xa9, 0x93, 0xae, 0xe6, 0x6f, 0x4b, 0xb6, 0x04, 0xb6, 0x3e, - 0x87, 0x4a, 0x37, 0x49, 0x33, 0xf2, 0x1a, 0xcc, 0x9f, 0x62, 0xd9, 0x8b, 0x4f, 0xaf, 0xfb, 0x29, - 0x26, 0x79, 0x05, 0x16, 0x18, 0xc7, 0x7b, 0x62, 0x2f, 0x14, 0x40, 0xf5, 0x64, 0x6a, 0x94, 0xf8, - 0x82, 0x85, 0xdb, 0x3f, 0x2c, 0x83, 0x25, 0x1f, 0x54, 0xee, 0xa7, 0x5e, 0x44, 0xb7, 0x93, 0x61, - 0x1c, 0x90, 0x07, 0x50, 0x31, 0xee, 0x15, 0xaf, 0x9b, 0xcf, 0x2e, 0x51, 0xc0, 0xb8, 0x67, 0x40, - 0x41, 0xd2, 0x82, 0xda, 0x30, 0x3e, 0x15, 0x2c, 0x1a, 0x8c, 0xd4, 0xcf, 0x0a, 0x32, 0xb9, 0x01, - 0x73, 0xf2, 0x29, 0x98, 0x1a, 0x0c, 0xf5, 0x45, 0xd6, 0xa1, 0xe6, 0x7b, 0xa1, 0xbf, 0x3f, 0x8c, - 0x7d, 0x3e, 0xa5, 0x9a, 0x57, 0x30, 0xc9, 0xff, 0x83, 0x7a, 0x4f, 0x34, 0xd2, 0xc5, 0xe7, 0x09, - 0xea, 0x29, 0xf0, 0x48, 0xc1, 0x1d, 0xd9, 0xf8, 0x92, 0x81, 0x7c, 0x03, 0x16, 0xfc, 0x68, 0x20, - 0x6b, 0x07, 0xc6, 0xb5, 0x89, 0x7a, 0xbb, 0x8b, 0x32, 0x3b, 0xd1, 0x60, 0xd7, 0xcb, 0x3c, 0xbc, - 0xcf, 0xab, 0xfb, 0xc5, 0x47, 0xeb, 0x87, 0x25, 0xa8, 0x1b, 0x83, 0xf2, 0xbc, 0xf1, 0x40, 0x81, - 0x89, 0xf1, 0xf8, 0x1a, 0xcc, 0xf2, 0xcc, 0x53, 0x33, 0x93, 0x3f, 0x18, 0x1e, 0x1f, 0x67, 0x47, - 0x0a, 0x91, 0x75, 0x98, 0xa1, 0xb1, 0x9e, 0xa7, 0xab, 0x64, 0x85, 0x48, 0xeb, 0xd7, 0x25, 0x98, - 0x93, 0x1c, 0xf2, 0x3a, 0xd4, 0x7a, 0xc3, 0xd8, 0x77, 0xf1, 0xa6, 0x64, 0xb2, 0xc4, 0x5e, 0x15, - 0xcc, 0x5d, 0xca, 0xfd, 0x89, 0x32, 0x6b, 0xf9, 0x8b, 0xca, 0xac, 0x66, 0xfd, 0x79, 0xe6, 0x79, - 0xf5, 0xe7, 0xd7, 0x61, 0x16, 0x07, 0x5c, 0x3d, 0x86, 0x5c, 0x9a, 0x68, 0xb9, 0x23, 0xf9, 0x85, - 0x2b, 0xce, 0x3e, 0xcf, 0x15, 0xbf, 0x0d, 0x0d, 0xac, 0xce, 0xb3, 0xb8, 0x2f, 0xba, 0x40, 0x1e, - 0xc0, 0x42, 0x5f, 0x7d, 0xcb, 0x52, 0xef, 0x64, 0x2f, 0x1b, 0x7d, 0x03, 0xd0, 0x7a, 0x0c, 0x75, - 0xad, 0xa0, 0x4b, 0x33, 0xf2, 0x1e, 0x34, 0x47, 0xf0, 0x3a, 0xaa, 0xd4, 0x35, 0x8f, 0x69, 0xcb, - 0x59, 0x30, 0x15, 0xf1, 0xd6, 0xf7, 0x4b, 0x30, 0x27, 0x5f, 0xdf, 0x92, 0xb7, 0x8d, 0x56, 0xe4, - 0xef, 0x18, 0xf3, 0xce, 0x1a, 0xf6, 0x8a, 0xc6, 0x74, 0x69, 0xc6, 0x5f, 0xb0, 0x06, 0x6e, 0xc3, - 0xfc, 0x53, 0x9a, 0xe2, 0x2b, 0x4e, 0x19, 0x15, 0xfa, 0xb3, 0xf5, 0x06, 0xd4, 0x44, 0x5b, 0xe4, - 0x0b, 0xc6, 0x2f, 0xbc, 0xd2, 0x69, 0xfd, 0x51, 0x09, 0xe6, 0xd5, 0x7b, 0x61, 0x72, 0x1f, 0x60, - 0x90, 0x26, 0x9f, 0x8e, 0x74, 0x7a, 0xb1, 0x80, 0xc8, 0xb7, 0x9c, 0x35, 0x21, 0x22, 0xaf, 0x78, - 0x1e, 0xc1, 0x8d, 0x3e, 0x8d, 0x69, 0xea, 0x89, 0x93, 0x80, 0xaa, 0x1d, 0xc8, 0xa7, 0x5f, 0x65, - 0x7c, 0xfa, 0xb5, 0x92, 0x73, 0x65, 0x05, 0x41, 0xbe, 0x01, 0x7b, 0xb1, 0xfc, 0xf2, 0x1a, 0x34, - 0x47, 0x5f, 0x25, 0x93, 0x15, 0x5d, 0x67, 0x97, 0xd5, 0x4c, 0xf9, 0xb1, 0xf1, 0x07, 0x33, 0xf2, - 0x1f, 0x14, 0xf0, 0xd2, 0x72, 0x09, 0x16, 0xc4, 0xdf, 0xfc, 0x05, 0x8c, 0x75, 0x4d, 0x93, 0xf2, - 0x2b, 0x49, 0xab, 0xa4, 0x49, 0xf9, 0x7d, 0x9c, 0x55, 0x26, 0xcb, 0xb0, 0x28, 0x48, 0xc6, 0x4d, - 0x94, 0x35, 0x43, 0x1a, 0x50, 0x45, 0x6d, 0xc9, 0xa0, 0x63, 0x55, 0xc8, 0x02, 0xd4, 0xc4, 0x17, - 0x5e, 0x62, 0x58, 0xb3, 0xb9, 0x12, 0x3c, 0xc6, 0x6f, 0xf5, 0xfb, 0xd6, 0x9c, 0x96, 0xff, 0x28, - 0x61, 0xb1, 0x35, 0xaf, 0xbf, 0x9e, 0xb0, 0x30, 0xb4, 0xaa, 0xe4, 0x06, 0x10, 0xf1, 0x35, 0xfa, - 0x3c, 0xd9, 0xaa, 0x11, 0x1b, 0x56, 0x4c, 0xba, 0x7e, 0x40, 0x6a, 0x01, 0x21, 0xd0, 0x14, 0x9c, - 0xe2, 0x7e, 0xce, 0xaa, 0x93, 0x55, 0xb8, 0x81, 0xb4, 0x89, 0xa7, 0x3e, 0x56, 0x43, 0xdb, 0x13, - 0x29, 0xdc, 0x5a, 0x20, 0x4d, 0x00, 0xf1, 0x25, 0x63, 0xca, 0x6a, 0xea, 0x6f, 0x39, 0xd3, 0xd6, - 0x22, 0x59, 0x84, 0x7a, 0xf1, 0xbd, 0x69, 0x59, 0xba, 0x81, 0xa3, 0x63, 0x6e, 0x2d, 0xe9, 0x91, - 0x31, 0x1e, 0xea, 0x5a, 0x2b, 0xe4, 0x25, 0xb0, 0x15, 0x7a, 0xe2, 0x6a, 0xc3, 0xba, 0xbe, 0xf1, - 0x2e, 0x34, 0xcc, 0xe7, 0xa8, 0xc2, 0xd6, 0xb1, 0xc7, 0xf9, 0xc9, 0x59, 0x9a, 0x0c, 0xfb, 0x67, - 0xd6, 0x35, 0x31, 0x94, 0xb9, 0x1d, 0xab, 0x44, 0xaa, 0x50, 0x79, 0xec, 0xf1, 0x33, 0xab, 0xbc, - 0xf1, 0x4d, 0x58, 0x1c, 0x7b, 0x86, 0x2c, 0x98, 0x9d, 0xa3, 0xce, 0x9e, 0x75, 0x4d, 0xfc, 0xda, - 0xdf, 0xea, 0x9e, 0x58, 0x25, 0xb2, 0x02, 0xd6, 0xe3, 0xf6, 0x87, 0x8f, 0xdd, 0x9d, 0xa3, 0xc3, - 0x63, 0x67, 0xaf, 0xdb, 0x6d, 0x1f, 0x75, 0xac, 0xf2, 0xc6, 0x7d, 0x80, 0xe2, 0x19, 0x1b, 0xa9, - 0xc1, 0x2c, 0x56, 0x72, 0x24, 0xf0, 0x84, 0x3d, 0xf9, 0xd8, 0x2a, 0x91, 0x3a, 0xcc, 0xab, 0xa5, - 0xdd, 0x2a, 0x6f, 0x3c, 0x84, 0x45, 0x75, 0x7c, 0x13, 0x7d, 0x7b, 0xc2, 0x62, 0xb1, 0xd4, 0x90, - 0x76, 0xe7, 0xe3, 0xad, 0x83, 0xf6, 0xae, 0xdb, 0xee, 0xec, 0xee, 0x7d, 0xcf, 0x7d, 0xd2, 0xee, - 0xec, 0x4a, 0x0d, 0x8f, 0x3b, 0xdd, 0x4f, 0xac, 0xd2, 0xc6, 0x29, 0xac, 0x4c, 0x7b, 0xa9, 0x4a, - 0x6e, 0xc3, 0x4d, 0x8d, 0xdc, 0x6d, 0x77, 0x4f, 0xb6, 0x3a, 0x3b, 0x7b, 0xee, 0xe1, 0xde, 0x89, - 0xd3, 0xde, 0xb1, 0xae, 0x91, 0x39, 0x28, 0x1f, 0xbc, 0x65, 0x95, 0xf0, 0xef, 0xa6, 0x55, 0x26, - 0x00, 0x73, 0x3b, 0x47, 0xdd, 0x76, 0x67, 0xcf, 0x9a, 0x11, 0x7e, 0xd4, 0xee, 0x74, 0xf6, 0x1c, - 0xf7, 0xd8, 0x39, 0xda, 0xfd, 0xee, 0xce, 0x89, 0x55, 0xd9, 0x78, 0xab, 0x78, 0x73, 0x8b, 0x5d, - 0x59, 0x01, 0xab, 0x1d, 0x3f, 0xf5, 0x42, 0x16, 0xe4, 0x34, 0xeb, 0x9a, 0xe8, 0xcb, 0x91, 0xcc, - 0xa7, 0x56, 0x69, 0xe3, 0x77, 0x8a, 0x07, 0xa1, 0x08, 0xb9, 0x09, 0xcb, 0xe6, 0xb7, 0x82, 0x5b, - 0xd7, 0xc6, 0x19, 0x9d, 0xa4, 0xeb, 0x27, 0x29, 0xb5, 0x4a, 0xe4, 0x16, 0x5c, 0x37, 0x19, 0x9f, - 0xb0, 0xec, 0x4c, 0xb2, 0xca, 0x1b, 0xbf, 0x2c, 0x41, 0x55, 0x3f, 0x0e, 0x2a, 0xe2, 0x29, 0xa6, - 0x29, 0x7a, 0xfa, 0x35, 0x72, 0x1d, 0x96, 0x30, 0x32, 0x68, 0x2f, 0x3b, 0x1a, 0x66, 0x8a, 0x5c, - 0xd2, 0x1e, 0xe5, 0xb0, 0xfe, 0x99, 0x41, 0x2f, 0x13, 0x0b, 0x1a, 0x32, 0xfc, 0xe4, 0x13, 0x0f, - 0x6b, 0x46, 0x74, 0x10, 0xa3, 0x2f, 0xce, 0x58, 0x4e, 0xad, 0x88, 0x16, 0x8d, 0xa8, 0xcd, 0x59, - 0xb3, 0xe4, 0x0e, 0xdc, 0xd2, 0x80, 0x49, 0xf6, 0xdc, 0xc6, 0x1a, 0x34, 0xcc, 0x47, 0x49, 0xda, - 0xa2, 0x70, 0x32, 0xd9, 0xe4, 0x8d, 0x6f, 0xc0, 0xd2, 0xc4, 0x03, 0x08, 0x31, 0x3d, 0xed, 0x8e, - 0x1c, 0xd9, 0xc3, 0x76, 0xc7, 0x3d, 0xdc, 0xfa, 0x9e, 0x55, 0x12, 0xd8, 0xed, 0x83, 0xa3, 0xa3, - 0x43, 0x77, 0xbf, 0x7d, 0x70, 0xb2, 0xe7, 0x58, 0xe5, 0x8d, 0x8d, 0x31, 0x2c, 0xba, 0xa9, 0x70, - 0xb7, 0xa3, 0x9d, 0xad, 0x03, 0xeb, 0x9a, 0x98, 0xdd, 0x0f, 0x0f, 0x8e, 0xb6, 0xb7, 0x0e, 0xac, - 0xd2, 0xc6, 0x36, 0x2c, 0x4d, 0x5c, 0xde, 0x8a, 0x78, 0xd8, 0x4f, 0x52, 0x9f, 0x4a, 0x92, 0x74, - 0xaf, 0xad, 0x61, 0x96, 0x58, 0x25, 0x11, 0xf4, 0xc8, 0x92, 0x69, 0x85, 0xc5, 0x7d, 0xab, 0xbc, - 0xf1, 0x6d, 0x58, 0x1c, 0xdb, 0x42, 0x89, 0x00, 0xda, 0x4f, 0xc2, 0x30, 0x79, 0x26, 0x24, 0x30, - 0x9e, 0x8e, 0x53, 0xea, 0xd3, 0x40, 0x7c, 0x96, 0x44, 0xac, 0xef, 0xe0, 0xf5, 0x5a, 0xe6, 0x24, - 0xcf, 0xac, 0xf2, 0xc6, 0x11, 0x58, 0xe3, 0xdb, 0x16, 0x32, 0x0f, 0x33, 0xed, 0x38, 0xb3, 0xae, - 0x89, 0x86, 0xef, 0x87, 0x89, 0x97, 0xc9, 0xe8, 0xd8, 0xa5, 0x3e, 0x8b, 0xbc, 0xd0, 0x2a, 0x8b, - 0x74, 0xb2, 0xeb, 0x65, 0xf4, 0x84, 0x45, 0x54, 0xa6, 0xc2, 0xdd, 0xa1, 0xbc, 0xf5, 0xb3, 0x2a, - 0x22, 0x72, 0xc6, 0x36, 0x31, 0xa2, 0x0b, 0xe2, 0xec, 0x20, 0xbb, 0x8f, 0xd6, 0xb8, 0x55, 0xc2, - 0xa1, 0x10, 0x6b, 0x1b, 0xb7, 0xca, 0xdb, 0x5f, 0xfd, 0xd5, 0x6f, 0xee, 0x96, 0xfe, 0xf5, 0x37, - 0x77, 0x4b, 0xff, 0xfe, 0x9b, 0xbb, 0xa5, 0x1f, 0xfd, 0xc7, 0xdd, 0x6b, 0x70, 0xdd, 0x4f, 0xa2, - 0xfb, 0x62, 0xdd, 0xf3, 0xbd, 0xc1, 0xfd, 0x8c, 0x05, 0xa7, 0xb8, 0x12, 0x1c, 0x97, 0xfe, 0x27, - 0x00, 0x00, 0xff, 0xff, 0x95, 0xa1, 0x7e, 0xb9, 0xc1, 0x36, 0x00, 0x00, + // 5228 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7b, 0x49, 0x73, 0x1c, 0xc9, + 0x75, 0x3f, 0xbb, 0xd1, 0x00, 0xba, 0x5f, 0x37, 0x1a, 0x85, 0x04, 0x48, 0x16, 0xc1, 0x21, 0x89, + 0x69, 0xcd, 0x02, 0xe1, 0xaf, 0x21, 0x67, 0x40, 0x6a, 0x16, 0xe9, 0x3f, 0xd2, 0x60, 0x1d, 0xf6, + 0x10, 0x68, 0x40, 0xd5, 0xd0, 0x8c, 0x22, 0xec, 0x88, 0x8a, 0x42, 0x55, 0x76, 0x23, 0x07, 0xb5, + 0xf4, 0x54, 0x56, 0x93, 0xc0, 0x9c, 0x74, 0xf6, 0xc9, 0x61, 0x85, 0x65, 0x79, 0x95, 0x2d, 0x6f, + 0x92, 0x25, 0xeb, 0xe0, 0x4f, 0xe0, 0xa3, 0x8e, 0x3e, 0xcb, 0x11, 0x0e, 0x87, 0x7c, 0xf2, 0x37, + 0x70, 0xf8, 0xe4, 0xc8, 0x97, 0x99, 0x55, 0xd9, 0x0b, 0x38, 0x9c, 0xb0, 0x0e, 0x3e, 0xa1, 0xeb, + 0xbd, 0xdf, 0xef, 0xe5, 0xf6, 0xde, 0xcb, 0x15, 0xd0, 0xa4, 0x17, 0xd4, 0x1f, 0x66, 0x49, 0x7a, + 0x7f, 0x90, 0x26, 0x59, 0x42, 0x2a, 0x19, 0x1b, 0x9c, 0xae, 0x5a, 0xf4, 0x62, 0x90, 0x52, 0xce, + 0x59, 0x12, 0x4b, 0xf9, 0x6a, 0x83, 0xfb, 0x67, 0x34, 0xf2, 0xd4, 0xd7, 0x4a, 0x3f, 0xe9, 0x27, + 0xf8, 0xf3, 0x81, 0xf8, 0x25, 0xa5, 0xad, 0x9f, 0xd5, 0xa0, 0xba, 0xa7, 0xcc, 0x91, 0x57, 0xa0, + 0x9c, 0x0d, 0xec, 0xd2, 0x5a, 0x69, 0xbd, 0xb9, 0xd9, 0xbc, 0x2f, 0xac, 0xde, 0x17, 0xba, 0x93, + 0xcb, 0x01, 0xdd, 0xae, 0xfc, 0xea, 0xdf, 0xee, 0x5d, 0x73, 0xca, 0xd9, 0x80, 0x6c, 0x40, 0x35, + 0x3b, 0x0d, 0x5d, 0xee, 0x7b, 0xb1, 0x5d, 0x5e, 0x2b, 0xad, 0xd7, 0x37, 0x17, 0x25, 0xf6, 0xc4, + 0x3b, 0x0d, 0x69, 0xd7, 0xf7, 0x62, 0x67, 0x3e, 0x3b, 0x0d, 0xc5, 0x0f, 0x81, 0x65, 0xc1, 0x85, + 0xc4, 0xce, 0x98, 0xd8, 0x76, 0x1c, 0xd0, 0x0b, 0x89, 0x65, 0x01, 0xfe, 0x20, 0x6f, 0x40, 0x8d, + 0xd3, 0x90, 0xfa, 0x19, 0x4b, 0x62, 0xbb, 0x62, 0x82, 0xbb, 0x5a, 0xec, 0x14, 0x08, 0xf2, 0x10, + 0xea, 0x5e, 0xbf, 0x9f, 0xd2, 0xbe, 0x87, 0x84, 0x59, 0x24, 0x2c, 0x49, 0xc2, 0x56, 0xa1, 0x70, + 0x4c, 0x14, 0xb9, 0x0b, 0x95, 0x2c, 0x19, 0x74, 0xec, 0x39, 0x44, 0x83, 0xaa, 0x77, 0x32, 0xe8, + 0x38, 0x28, 0x27, 0x2f, 0xc3, 0x6c, 0xc8, 0x22, 0x96, 0xd9, 0xf3, 0x08, 0xa8, 0x4b, 0xc0, 0x81, + 0x10, 0x39, 0x52, 0x43, 0x76, 0x60, 0x89, 0x5e, 0xf8, 0x67, 0x5e, 0xdc, 0xa7, 0x6e, 0x4a, 0x7d, + 0xca, 0x9e, 0xd2, 0xd4, 0xae, 0x22, 0xfc, 0x86, 0xee, 0x33, 0xa9, 0x76, 0x94, 0xd6, 0xb1, 0xe8, + 0x98, 0x44, 0xd4, 0xe3, 0xd3, 0x84, 0xc5, 0x76, 0xcd, 0xac, 0xc7, 0x47, 0x09, 0x8b, 0x1d, 0x94, + 0x93, 0x7b, 0x50, 0xd7, 0x83, 0xec, 0xb2, 0xc0, 0x86, 0xb5, 0xd2, 0x7a, 0xcd, 0x01, 0x2d, 0x6a, + 0x07, 0xc2, 0xc0, 0x39, 0x0b, 0x43, 0xbb, 0x6e, 0x1a, 0x78, 0xc2, 0xc2, 0xd0, 0x41, 0x39, 0x79, + 0x1f, 0x16, 0xf3, 0x5a, 0x72, 0x1a, 0x07, 0x34, 0xb5, 0x1b, 0x08, 0x5d, 0x19, 0xad, 0x63, 0x17, + 0x75, 0x4e, 0x93, 0x8e, 0x7c, 0x93, 0x37, 0x01, 0x8e, 0xd3, 0xe4, 0x53, 0x35, 0x18, 0x0b, 0xc8, + 0xb4, 0x24, 0xb3, 0x90, 0x3b, 0x06, 0x86, 0x7c, 0x04, 0x2b, 0x03, 0x2f, 0xcd, 0x98, 0xf8, 0x70, + 0x33, 0xe1, 0x09, 0x72, 0xd4, 0x9b, 0xc8, 0xb5, 0x15, 0x57, 0x23, 0x0a, 0x57, 0x21, 0x83, 0x09, + 0x99, 0x68, 0x1c, 0x4f, 0xd2, 0xcc, 0x5e, 0x34, 0x1b, 0xd7, 0x4d, 0xd2, 0xcc, 0x41, 0x39, 0x79, + 0x05, 0xe6, 0x9e, 0xb1, 0x38, 0x48, 0x9e, 0xd9, 0x16, 0x22, 0x1a, 0x12, 0xf1, 0x09, 0xca, 0x1c, + 0xa5, 0x23, 0x1d, 0x78, 0xb9, 0xc7, 0x62, 0xea, 0xf6, 0x53, 0x8f, 0xc5, 0x34, 0x70, 0xf9, 0xd9, + 0xb0, 0xd7, 0x13, 0xd5, 0xca, 0x52, 0xea, 0x45, 0xae, 0x9f, 0x0c, 0xe3, 0xcc, 0x5e, 0x5a, 0x2b, + 0xad, 0x57, 0x94, 0x73, 0xdf, 0x11, 0xf0, 0x0f, 0x25, 0xba, 0x2b, 0xc1, 0x5d, 0xc4, 0xee, 0x08, + 0x28, 0xf9, 0x08, 0xee, 0x4d, 0xb5, 0x77, 0xea, 0x65, 0xfe, 0x99, 0xcb, 0xd9, 0xe7, 0xd4, 0x26, + 0x86, 0xb5, 0xdb, 0x93, 0xd6, 0xb6, 0x05, 0xb2, 0xcb, 0x3e, 0xa7, 0xa2, 0x05, 0xf4, 0x62, 0xe0, + 0xc5, 0x81, 0xbd, 0x6c, 0xb6, 0x60, 0x0f, 0x65, 0x8e, 0xd2, 0x91, 0xd7, 0x61, 0x5e, 0xfe, 0xda, + 0xb4, 0x57, 0x10, 0xb6, 0x60, 0xc2, 0x36, 0x1d, 0xad, 0x15, 0xa3, 0x7d, 0x9a, 0x26, 0x5e, 0xe0, + 0x7b, 0x3c, 0x73, 0x3f, 0x1b, 0xd2, 0xf4, 0xd2, 0xbe, 0x6e, 0x8e, 0xf6, 0xb6, 0x56, 0x7e, 0x47, + 0xe8, 0x9c, 0xe6, 0xe9, 0xc8, 0x37, 0x79, 0x04, 0x0d, 0x26, 0xe2, 0xd1, 0x0d, 0x93, 0xe4, 0x7c, + 0x38, 0xb0, 0x6d, 0x33, 0x96, 0x30, 0x52, 0x0f, 0x92, 0xe4, 0xfc, 0xbb, 0x03, 0xa7, 0xce, 0xf4, + 0xc7, 0x70, 0x40, 0xee, 0x00, 0x0c, 0xbc, 0x94, 0xc6, 0x99, 0xcb, 0x82, 0x0b, 0xfb, 0xd6, 0x5a, + 0x69, 0x7d, 0xc1, 0xa9, 0x49, 0x49, 0x3b, 0xb8, 0x20, 0xc7, 0x70, 0x83, 0x5e, 0x0c, 0x42, 0x8f, + 0xc5, 0x6e, 0x2f, 0x49, 0x5d, 0x3f, 0x89, 0x63, 0xe5, 0x4e, 0xab, 0x68, 0x7e, 0x35, 0x6f, 0x8b, + 0xc0, 0xec, 0x27, 0xe9, 0x4e, 0x8e, 0x70, 0x56, 0xe8, 0x14, 0x69, 0xeb, 0x17, 0x33, 0xd0, 0x1c, + 0xf5, 0x5b, 0xb2, 0x6e, 0x64, 0x2c, 0x32, 0xea, 0xd9, 0x13, 0x59, 0x6b, 0x89, 0xc6, 0x7e, 0x12, + 0xd0, 0xc0, 0xcd, 0x3c, 0x7e, 0xee, 0x46, 0x34, 0xf3, 0xec, 0xf2, 0xda, 0xcc, 0x7a, 0xc3, 0x59, + 0x54, 0x8a, 0x13, 0x8f, 0x9f, 0x1f, 0xd2, 0xcc, 0x23, 0x6f, 0x41, 0xb3, 0xf0, 0xe5, 0x73, 0x7a, + 0xc9, 0xed, 0x99, 0xb5, 0x99, 0xc2, 0x13, 0xf7, 0x2e, 0x06, 0xa9, 0xb3, 0x90, 0x23, 0x9e, 0xd0, + 0x4b, 0x4e, 0x5e, 0x81, 0x59, 0xff, 0x8c, 0x85, 0x81, 0x4a, 0x5c, 0x46, 0xf6, 0x14, 0x01, 0xeb, + 0x48, 0x25, 0x79, 0x15, 0x66, 0xb3, 0xcb, 0x01, 0xe5, 0xf6, 0x2c, 0xda, 0x53, 0xe9, 0x6d, 0x9f, + 0xd1, 0x30, 0x10, 0xd5, 0x75, 0xa4, 0x96, 0xbc, 0x03, 0x8b, 0x5e, 0x18, 0xba, 0x3d, 0x21, 0x77, + 0x25, 0x61, 0x6e, 0x3a, 0x61, 0xc1, 0x0b, 0xc3, 0xfc, 0x8b, 0x93, 0xf7, 0xa1, 0xee, 0x27, 0x91, + 0x9e, 0x06, 0x30, 0x89, 0x35, 0x37, 0xaf, 0x4b, 0xd2, 0x4e, 0xa1, 0x38, 0x4c, 0x02, 0xdd, 0x35, + 0x26, 0x9e, 0x1c, 0xc0, 0x8d, 0xe1, 0x40, 0x87, 0x47, 0x46, 0x8d, 0x8e, 0xaa, 0x62, 0xf1, 0x37, + 0x55, 0xab, 0x64, 0x77, 0x6d, 0x5f, 0x66, 0x94, 0x77, 0x43, 0xe6, 0x53, 0x67, 0x59, 0xd3, 0x76, + 0x32, 0xaa, 0x7b, 0xb1, 0xf5, 0x7b, 0x25, 0xa8, 0x1b, 0xce, 0x43, 0xde, 0x84, 0x15, 0xe9, 0x65, + 0x67, 0x5e, 0x1c, 0x84, 0xd4, 0x4d, 0x7a, 0x3d, 0x4e, 0x33, 0x6e, 0x97, 0xd6, 0x66, 0xd6, 0x17, + 0x1c, 0x82, 0xba, 0xc7, 0xa8, 0x3a, 0x92, 0x1a, 0xe1, 0x61, 0xe7, 0x94, 0x0e, 0xdc, 0x24, 0x15, + 0xf9, 0x4b, 0xcc, 0x35, 0x55, 0xa7, 0x26, 0x24, 0x47, 0x42, 0x20, 0x26, 0x17, 0xec, 0xd6, 0x94, + 0xc6, 0x6a, 0x80, 0xc6, 0xbb, 0x3d, 0xd7, 0xb7, 0xde, 0x85, 0xa5, 0x89, 0x6a, 0x93, 0xaf, 0xc0, + 0x82, 0xe9, 0x13, 0xb2, 0x2a, 0x0d, 0xa7, 0x61, 0xf8, 0x03, 0x6f, 0xfd, 0xba, 0x04, 0xd6, 0x78, + 0x46, 0x9f, 0xee, 0x4d, 0xa5, 0xe9, 0xde, 0xf4, 0x26, 0xd4, 0xcd, 0x91, 0x2c, 0x4f, 0x1f, 0x49, + 0xe8, 0x15, 0xc3, 0xd8, 0x42, 0xaf, 0x9e, 0xb9, 0xca, 0xab, 0xd1, 0x9f, 0x77, 0xe1, 0x5e, 0x92, + 0xb2, 0x3e, 0x8b, 0xbd, 0x10, 0xc7, 0x6a, 0x90, 0x06, 0x89, 0x3f, 0xa4, 0xa9, 0x51, 0x9f, 0x0a, + 0xd6, 0xe7, 0xb6, 0x86, 0xed, 0x64, 0xf4, 0x58, 0x81, 0xf2, 0x31, 0xfa, 0xc1, 0x0c, 0x34, 0xb6, + 0x3a, 0x1d, 0x4c, 0x03, 0xed, 0xb8, 0x97, 0x90, 0x77, 0x00, 0x30, 0x7f, 0x60, 0x65, 0x47, 0x03, + 0x4b, 0xe3, 0x8c, 0xc0, 0xaa, 0x7d, 0xa6, 0x05, 0xa4, 0x0d, 0x8b, 0x01, 0xe3, 0x99, 0x17, 0xfb, + 0x54, 0x94, 0x9e, 0x32, 0x1f, 0x07, 0xac, 0xa9, 0xe3, 0xfc, 0x63, 0xea, 0x67, 0x49, 0xba, 0xab, + 0x20, 0x87, 0x88, 0x50, 0x56, 0x9a, 0xc1, 0x88, 0x94, 0xdc, 0x82, 0xd9, 0x2c, 0x19, 0xb8, 0xe7, + 0xd8, 0x03, 0x0b, 0x0a, 0x24, 0xe6, 0xe7, 0x27, 0xe4, 0x55, 0xe1, 0xe0, 0xe1, 0x30, 0x8a, 0xdd, + 0xd8, 0x8b, 0x28, 0x06, 0x5b, 0x4d, 0x01, 0x40, 0x2a, 0x3a, 0x5e, 0x44, 0xc9, 0xcb, 0x50, 0x53, + 0x30, 0x16, 0xe0, 0xca, 0x60, 0x46, 0x81, 0xaa, 0x52, 0x8c, 0x13, 0x68, 0x3d, 0xa5, 0x3d, 0xf7, + 0x29, 0xf5, 0xdd, 0xde, 0xc3, 0x4d, 0x5c, 0x10, 0x34, 0x9c, 0x5a, 0x4a, 0x7b, 0x1f, 0x53, 0x7f, + 0xff, 0xe1, 0x26, 0xb9, 0x07, 0x55, 0xe9, 0xad, 0x2c, 0xc0, 0xd9, 0x5d, 0x5b, 0x98, 0x47, 0x69, + 0x5b, 0x24, 0xe7, 0x46, 0xe4, 0x5d, 0xb8, 0xba, 0xee, 0x38, 0x47, 0x97, 0x74, 0x54, 0x45, 0xde, + 0x85, 0x6e, 0x2a, 0xd9, 0x80, 0xe6, 0x59, 0xcc, 0x9f, 0xb9, 0xb4, 0xe7, 0x72, 0xea, 0xa5, 0xfe, + 0x19, 0x26, 0x73, 0xdd, 0xae, 0x86, 0xd0, 0xed, 0xf5, 0xba, 0xa8, 0xf9, 0xa8, 0x52, 0x9d, 0xb7, + 0xaa, 0xad, 0x7f, 0x9d, 0x81, 0xc6, 0xfe, 0x49, 0xf7, 0x85, 0x46, 0x45, 0xe3, 0xa6, 0x8f, 0x8a, + 0xd9, 0x8a, 0xf2, 0xb4, 0x56, 0x6c, 0xc0, 0xbc, 0xec, 0x12, 0x9d, 0xe3, 0x2c, 0x9d, 0x2d, 0xb0, + 0x9f, 0xe2, 0x5e, 0xe2, 0x68, 0x00, 0x79, 0x19, 0x1a, 0x46, 0xe7, 0x73, 0xf4, 0xaf, 0x9a, 0x53, + 0x2f, 0xfa, 0x9d, 0x93, 0xaf, 0xe4, 0x15, 0xa5, 0x17, 0x19, 0xf6, 0x7c, 0x6d, 0xb4, 0x52, 0xf4, + 0x22, 0x23, 0x6f, 0xc0, 0xa2, 0x02, 0x25, 0xe7, 0x34, 0x66, 0x9f, 0xd3, 0x14, 0xbb, 0x5f, 0x23, + 0x9b, 0x12, 0xa9, 0x75, 0x64, 0x59, 0xbb, 0x03, 0xe0, 0x14, 0x23, 0x1d, 0xe1, 0x35, 0x58, 0x14, + 0x4b, 0x01, 0x37, 0x1f, 0x66, 0x6e, 0xd7, 0xd7, 0x66, 0xd6, 0x67, 0x9c, 0x05, 0x21, 0x56, 0xb5, + 0x0f, 0xf8, 0x38, 0xce, 0xe3, 0xbe, 0xdd, 0x58, 0x9b, 0x59, 0xaf, 0x9a, 0xb8, 0x2d, 0xee, 0x93, + 0x77, 0x75, 0xc5, 0x7b, 0xc3, 0xd8, 0xc7, 0x01, 0x6a, 0x6e, 0x2e, 0xab, 0x85, 0x87, 0xef, 0x85, + 0x5e, 0xba, 0x3f, 0x8c, 0xfd, 0x2e, 0xeb, 0x8f, 0xb4, 0x46, 0xc8, 0xc8, 0x03, 0x80, 0x08, 0x57, + 0x00, 0x62, 0xfd, 0x6d, 0x5f, 0x1f, 0x9f, 0x28, 0x34, 0x01, 0x31, 0x42, 0xd0, 0xfa, 0xfe, 0x2c, + 0xd4, 0x8a, 0xb5, 0xce, 0x3d, 0xa8, 0xca, 0xd5, 0x12, 0x0b, 0x70, 0x60, 0xf3, 0x11, 0x42, 0xe9, + 0xe8, 0x08, 0x95, 0xbf, 0x68, 0x84, 0x6c, 0xa8, 0x04, 0x94, 0xfb, 0x18, 0x38, 0x55, 0x1d, 0x38, + 0x42, 0x42, 0xbe, 0x06, 0x64, 0x90, 0xb2, 0xc8, 0x4b, 0x2f, 0xcd, 0x2e, 0xab, 0x60, 0x97, 0x59, + 0x4a, 0x53, 0xf4, 0xda, 0x07, 0x60, 0xc5, 0xf4, 0x22, 0x73, 0x53, 0xea, 0x05, 0x2e, 0x8d, 0xfb, + 0x2c, 0xa6, 0x38, 0x98, 0x4d, 0x5d, 0xf8, 0x1e, 0xca, 0x0c, 0x9f, 0x6b, 0x0a, 0xbc, 0x43, 0xbd, + 0x40, 0x6a, 0xc8, 0xd7, 0x60, 0x2e, 0x15, 0xf9, 0x4a, 0xcf, 0x5c, 0x2a, 0x33, 0x3f, 0xa1, 0x97, + 0x8e, 0x10, 0x2b, 0x96, 0xc2, 0x90, 0xf7, 0xe0, 0x96, 0xae, 0xdd, 0x20, 0xa5, 0x3d, 0x76, 0x61, + 0x56, 0x72, 0x1e, 0x2b, 0x79, 0x43, 0x01, 0x8e, 0x51, 0x5f, 0x54, 0x75, 0x74, 0x8e, 0xa8, 0x8e, + 0xcf, 0x11, 0x6b, 0xd0, 0x60, 0xdc, 0xed, 0x89, 0x75, 0x11, 0x2e, 0x47, 0x6b, 0x08, 0x00, 0xc6, + 0xf7, 0x3d, 0x9e, 0xe1, 0x00, 0x1c, 0xc2, 0x9d, 0xc1, 0x90, 0x9f, 0xd1, 0xc0, 0x0d, 0x92, 0x67, + 0xb1, 0xdb, 0x63, 0x61, 0x46, 0x71, 0xb9, 0x12, 0xe0, 0xec, 0xce, 0x6d, 0x98, 0x98, 0xfb, 0x57, + 0x25, 0x61, 0x37, 0x79, 0x16, 0xef, 0x23, 0x7c, 0x27, 0x47, 0x93, 0x1d, 0x58, 0x4e, 0x87, 0x71, + 0xc6, 0x22, 0xaa, 0x4d, 0x85, 0x8c, 0x67, 0xe8, 0x9c, 0x75, 0xed, 0x51, 0x8e, 0x04, 0x48, 0xae, + 0xb3, 0x94, 0x9a, 0x9f, 0x07, 0x8c, 0x8b, 0x08, 0xb1, 0x44, 0x6e, 0x79, 0xe6, 0xb1, 0xcc, 0x45, + 0x53, 0x11, 0xc7, 0xe5, 0xfb, 0xac, 0xea, 0xb7, 0x85, 0xc8, 0xbb, 0xf8, 0xc4, 0x63, 0xd9, 0x09, + 0x8b, 0xe8, 0x21, 0x27, 0x0f, 0xa0, 0xe6, 0xc5, 0xb1, 0x5a, 0xf8, 0xc9, 0xc5, 0xfa, 0x58, 0xce, + 0x46, 0x37, 0xa9, 0x7a, 0x71, 0x8c, 0x5f, 0xad, 0x1f, 0x57, 0x80, 0x4c, 0xae, 0xc5, 0xff, 0x6f, + 0xfa, 0xe2, 0x73, 0x7d, 0x63, 0xf6, 0xb9, 0xbe, 0xf1, 0x15, 0x28, 0x56, 0x69, 0x08, 0x9f, 0x43, + 0x78, 0x23, 0x17, 0x0a, 0xd0, 0xb8, 0x87, 0xcc, 0x7f, 0x79, 0x0f, 0xa9, 0xfe, 0x36, 0x3c, 0xa4, + 0xf6, 0xbf, 0xf6, 0x10, 0x78, 0x41, 0x0f, 0xa9, 0xbf, 0x80, 0x87, 0xfc, 0xf7, 0x2c, 0x54, 0xc4, + 0x7e, 0x94, 0xbc, 0x05, 0x35, 0xb1, 0x23, 0x35, 0x67, 0x9e, 0x66, 0xb1, 0x5d, 0x35, 0x32, 0x40, + 0xf5, 0x53, 0xf5, 0x4d, 0xbe, 0x05, 0x4d, 0xa4, 0x88, 0xed, 0xaa, 0xe4, 0x95, 0xcd, 0x19, 0x4b, + 0xf0, 0xc6, 0x8e, 0x15, 0x1a, 0x9f, 0x1a, 0xb2, 0x2f, 0xb3, 0xae, 0x13, 0x33, 0x3d, 0x8b, 0x63, + 0x9a, 0xe2, 0x1e, 0xa4, 0x62, 0xce, 0xf4, 0x28, 0x16, 0x1b, 0x91, 0x37, 0xa1, 0x19, 0xd2, 0x5e, + 0xe6, 0x62, 0x9d, 0x70, 0x35, 0x3f, 0x3b, 0x31, 0x5e, 0x0d, 0x81, 0x10, 0x15, 0xc3, 0xc5, 0xfc, + 0x26, 0x2c, 0xa6, 0xac, 0x7f, 0x66, 0x52, 0xe6, 0x26, 0x37, 0x00, 0x08, 0xc9, 0x39, 0x6f, 0x42, + 0x7d, 0x90, 0x26, 0xa7, 0x54, 0xad, 0xf2, 0xe6, 0xaf, 0x58, 0xe5, 0x21, 0x46, 0xae, 0xf2, 0xde, + 0x84, 0xfa, 0xe9, 0x90, 0xe5, 0xeb, 0xc2, 0xea, 0x15, 0x0c, 0xc4, 0x48, 0xc6, 0x43, 0x58, 0xc4, + 0x96, 0x18, 0xae, 0x57, 0x9b, 0xa8, 0x17, 0x36, 0xd6, 0x70, 0xb7, 0xaf, 0x83, 0x25, 0x1b, 0xf3, + 0xdc, 0x94, 0x26, 0x1b, 0x3c, 0x4a, 0x4b, 0xb2, 0xb3, 0x51, 0x3f, 0xaf, 0x4f, 0xd2, 0x10, 0x63, + 0xd0, 0x1e, 0xc3, 0x6d, 0x49, 0xa3, 0x9f, 0x19, 0x4c, 0xb7, 0x97, 0x26, 0x91, 0xcb, 0x62, 0x9c, + 0x7b, 0x47, 0x2d, 0xdc, 0x44, 0xf8, 0xde, 0x67, 0x85, 0x8d, 0xfd, 0x34, 0x89, 0xda, 0x31, 0x79, + 0x04, 0x37, 0x19, 0x77, 0xe3, 0x61, 0x18, 0xba, 0xde, 0x33, 0x2f, 0xa5, 0x2e, 0xa7, 0x11, 0xc3, + 0x11, 0xc1, 0x14, 0x57, 0x75, 0x96, 0x19, 0xef, 0x0c, 0xc3, 0x70, 0x4b, 0x28, 0xbb, 0x34, 0x62, + 0xe8, 0xae, 0x57, 0x04, 0x57, 0xf3, 0xcb, 0x04, 0x57, 0xeb, 0x3f, 0xcb, 0xb0, 0x30, 0x02, 0x22, + 0x2b, 0x50, 0x56, 0x39, 0x51, 0x07, 0x58, 0x99, 0x05, 0xe4, 0x11, 0x58, 0x3c, 0x19, 0xa6, 0x3e, + 0xc5, 0xb9, 0x5f, 0x96, 0x54, 0x9e, 0x1c, 0x10, 0x89, 0x11, 0xbf, 0x31, 0x74, 0x1f, 0x81, 0x95, + 0x79, 0x69, 0x9f, 0x66, 0x06, 0x6b, 0x72, 0x7f, 0xd9, 0x94, 0x98, 0x9c, 0xb5, 0x09, 0x24, 0x2f, + 0xab, 0x38, 0x18, 0x32, 0x17, 0xc0, 0x96, 0x2e, 0x27, 0x3f, 0x24, 0xda, 0x04, 0x92, 0x97, 0x54, + 0x70, 0xcc, 0x55, 0x99, 0xa5, 0x4b, 0xc9, 0x39, 0x6f, 0xc3, 0x7c, 0xda, 0x93, 0x51, 0x3b, 0x87, + 0x51, 0x7b, 0x73, 0x4a, 0xa7, 0x19, 0xa1, 0x3b, 0x97, 0xf6, 0x30, 0x68, 0x25, 0x2f, 0x4a, 0x02, + 0xaa, 0xb6, 0x9d, 0xd3, 0x78, 0xc6, 0xc6, 0x73, 0x2e, 0xed, 0x89, 0xaf, 0xd6, 0x0f, 0xca, 0x50, + 0xcb, 0x0f, 0x03, 0xbf, 0x78, 0x06, 0xfa, 0xad, 0x2e, 0x68, 0xf5, 0x14, 0x55, 0x99, 0x98, 0xa2, + 0x6e, 0xc0, 0xdc, 0x30, 0x66, 0x9f, 0x0d, 0xe5, 0xb2, 0xa7, 0xea, 0xa8, 0xaf, 0x2b, 0xa6, 0xae, + 0xb9, 0x2b, 0xa6, 0xae, 0x77, 0xa1, 0xd9, 0xcb, 0xb8, 0xcc, 0xba, 0x2e, 0x8b, 0x7b, 0x89, 0x3a, + 0x56, 0x1c, 0x5b, 0xba, 0x63, 0xa5, 0x1a, 0xbd, 0x8c, 0xe7, 0x5f, 0xad, 0x1f, 0x94, 0xa0, 0x96, + 0x9f, 0x7a, 0x92, 0x0d, 0x00, 0x23, 0x0a, 0x4b, 0x13, 0xbe, 0x62, 0x68, 0xc9, 0x23, 0x68, 0xa6, + 0x83, 0xd8, 0x8c, 0x5a, 0xe9, 0x91, 0xea, 0xe8, 0xc8, 0x19, 0xc4, 0x2a, 0x7b, 0x0d, 0x62, 0x23, + 0x6c, 0xf3, 0xe3, 0x8b, 0x99, 0xe7, 0x1c, 0x5f, 0xb4, 0xbe, 0x5f, 0x32, 0x8f, 0x05, 0xc9, 0x1a, + 0xcc, 0x0a, 0x0f, 0x9e, 0x56, 0x23, 0xa9, 0x20, 0x1b, 0x50, 0x13, 0x95, 0x91, 0xa8, 0xa9, 0xf5, + 0xa8, 0xa6, 0xf2, 0xc7, 0x8b, 0x56, 0xe1, 0x9f, 0xcb, 0x50, 0x37, 0x4e, 0x77, 0xc9, 0xab, 0x50, + 0xed, 0xa7, 0xc9, 0x70, 0xe0, 0x9e, 0x5e, 0x4e, 0xa9, 0xc6, 0x3c, 0xea, 0xb6, 0x2f, 0x05, 0xcc, + 0xeb, 0xf7, 0xe5, 0xe2, 0x7e, 0x32, 0x42, 0xe7, 0xbd, 0x7e, 0x1f, 0xd7, 0xf2, 0x6b, 0x50, 0x95, + 0xe7, 0x18, 0x34, 0x18, 0x59, 0xb7, 0xe4, 0x52, 0xf2, 0x00, 0x1a, 0xa2, 0x45, 0x79, 0x99, 0x95, + 0x69, 0x8d, 0x82, 0x74, 0x10, 0x7f, 0xa8, 0x4a, 0x56, 0x84, 0xbc, 0xf4, 0xd9, 0xab, 0x08, 0x5b, + 0xaa, 0x0e, 0x79, 0x3f, 0xcc, 0x3d, 0xef, 0x24, 0xe9, 0x3d, 0x68, 0x0c, 0x52, 0x8a, 0x66, 0x27, + 0x63, 0xee, 0x84, 0xed, 0x87, 0x1e, 0x3f, 0x3b, 0x4e, 0xe9, 0x56, 0xbf, 0x2f, 0xa2, 0x4c, 0xcc, + 0x3b, 0xfa, 0x77, 0xeb, 0x27, 0x25, 0xa8, 0x9c, 0x24, 0x83, 0x0e, 0x79, 0x1d, 0xaa, 0xb8, 0x6a, + 0x2e, 0xfa, 0x4e, 0x1d, 0x43, 0x6e, 0x5f, 0xb6, 0x33, 0x1a, 0x39, 0xf3, 0xa8, 0xdd, 0xbe, 0x24, + 0xab, 0xfa, 0x54, 0xbc, 0x6c, 0x9c, 0x6f, 0xaa, 0xe3, 0xf0, 0x17, 0x1a, 0x36, 0xd1, 0x0b, 0xc5, + 0x4a, 0x2c, 0xef, 0xb6, 0xd1, 0xe2, 0xea, 0x39, 0x62, 0xfb, 0xb2, 0xf5, 0x4f, 0x25, 0x98, 0xc5, + 0x63, 0xf7, 0xa2, 0xf0, 0xd2, 0x73, 0x0a, 0x2f, 0x7f, 0x99, 0xc2, 0x67, 0xbe, 0xa0, 0x70, 0xf2, + 0x36, 0x2c, 0x65, 0xe9, 0x30, 0xf6, 0xbd, 0x8c, 0x8a, 0xd9, 0x5f, 0xee, 0xec, 0x2a, 0x93, 0x93, + 0x9f, 0x06, 0x3d, 0xa1, 0x97, 0xb8, 0xb3, 0xfb, 0x00, 0x2a, 0x4f, 0x58, 0x18, 0x92, 0x97, 0x60, + 0xce, 0x4f, 0xe2, 0xb8, 0xbd, 0x3b, 0x52, 0x67, 0x25, 0x13, 0x0d, 0x92, 0xeb, 0xb0, 0xb2, 0xe1, + 0x61, 0x52, 0xd4, 0xda, 0x82, 0x95, 0x69, 0x07, 0xa2, 0xe4, 0xab, 0xb0, 0x50, 0x1c, 0xa0, 0xea, + 0xe4, 0xa8, 0x0d, 0x37, 0x0a, 0x55, 0x3b, 0x68, 0xfd, 0x7c, 0x06, 0x6c, 0xdd, 0x03, 0xf2, 0x2f, + 0x4b, 0xe2, 0xee, 0x30, 0x12, 0xa9, 0x89, 0x6c, 0xc0, 0x12, 0xce, 0x8d, 0x83, 0x34, 0xf1, 0x29, + 0xe7, 0x34, 0x70, 0x31, 0xa1, 0x94, 0xd6, 0x2b, 0xce, 0xa2, 0x50, 0x1c, 0x6b, 0x79, 0x47, 0x04, + 0xef, 0x52, 0x3c, 0x8c, 0x04, 0x34, 0x18, 0xfa, 0x34, 0x70, 0xd3, 0xe4, 0x19, 0x97, 0x1e, 0xe0, + 0x2c, 0xc6, 0xc3, 0xe8, 0x58, 0xc9, 0x9d, 0xe4, 0x19, 0x27, 0xaf, 0x42, 0x53, 0x60, 0x59, 0x46, + 0x53, 0x4f, 0x66, 0x9d, 0x19, 0x04, 0x2e, 0xc4, 0xc3, 0xa8, 0x9d, 0x0b, 0xc7, 0xaf, 0x35, 0x2a, + 0x13, 0xd7, 0x1a, 0x6b, 0x50, 0xf7, 0x93, 0xd8, 0x1f, 0xa6, 0x29, 0x8d, 0xfd, 0x4b, 0x4c, 0xbe, + 0x15, 0xc7, 0x14, 0x91, 0x03, 0x58, 0xc9, 0x58, 0x4f, 0xb8, 0x37, 0x2e, 0xd7, 0x45, 0xa2, 0xc3, + 0xb3, 0x86, 0x39, 0xf3, 0x9e, 0x41, 0x05, 0x80, 0x98, 0x52, 0x76, 0xa4, 0xfe, 0xf1, 0x35, 0x87, + 0x28, 0x9e, 0x21, 0x15, 0xf5, 0x4e, 0x87, 0xc2, 0x06, 0x1f, 0x46, 0x83, 0x4c, 0x9f, 0x99, 0x36, + 0x9c, 0x85, 0x74, 0xb8, 0x53, 0x08, 0xc9, 0x47, 0x45, 0xa1, 0xb8, 0xe2, 0xe6, 0xb2, 0x3b, 0xd5, + 0xb5, 0xcf, 0x68, 0xa1, 0x62, 0xd5, 0xad, 0xba, 0x3b, 0x2f, 0xd2, 0x90, 0x6d, 0x37, 0x00, 0x76, + 0x69, 0xe6, 0xb1, 0x10, 0x13, 0x7d, 0x1f, 0x56, 0x14, 0x2f, 0x1f, 0x2b, 0x3c, 0xf1, 0x39, 0x82, + 0x65, 0xaa, 0x05, 0xaa, 0x38, 0x46, 0x75, 0xa6, 0xbd, 0x3b, 0xea, 0xe7, 0xe3, 0xa3, 0xec, 0x10, + 0x3a, 0x2a, 0x61, 0x94, 0xb7, 0x7e, 0x17, 0x56, 0x55, 0x41, 0x0e, 0xed, 0xb3, 0x24, 0xee, 0x0c, + 0xa3, 0xa3, 0x5e, 0x3b, 0x56, 0x67, 0x54, 0xf7, 0xa0, 0xce, 0xd4, 0x6f, 0xed, 0x5d, 0x35, 0x07, + 0xb4, 0xa8, 0x1d, 0x88, 0x6d, 0x76, 0x8a, 0x3c, 0x37, 0x1e, 0x46, 0xca, 0x0b, 0x6a, 0xa9, 0xb6, + 0xd4, 0xfa, 0xaf, 0x3b, 0x40, 0x26, 0x3b, 0x9d, 0x3c, 0x82, 0x95, 0x20, 0xea, 0x31, 0x75, 0x17, + 0x14, 0xd3, 0xc0, 0x1d, 0x78, 0xfe, 0xb9, 0xf2, 0xb8, 0xed, 0xb2, 0x5d, 0x72, 0x88, 0xd4, 0x77, + 0xa5, 0xfa, 0x58, 0x68, 0x4d, 0xd6, 0x39, 0x1b, 0x0c, 0x72, 0x56, 0x79, 0x82, 0x25, 0xd5, 0x92, + 0xf5, 0x0e, 0xd8, 0x8a, 0x15, 0x78, 0x99, 0x97, 0x17, 0x88, 0x5e, 0x2b, 0x9d, 0xf1, 0xba, 0xd4, + 0xef, 0x7a, 0x99, 0xa7, 0xca, 0x43, 0xdf, 0x1d, 0x27, 0xaa, 0x32, 0x91, 0x58, 0x99, 0x20, 0x4a, + 0x2d, 0x12, 0xdf, 0x85, 0x9b, 0x59, 0x92, 0x79, 0xa1, 0xab, 0xe8, 0x29, 0x77, 0xc3, 0xc4, 0x0b, + 0xc4, 0x56, 0x6c, 0x36, 0xaf, 0xea, 0x32, 0x42, 0x76, 0x11, 0xe1, 0xf0, 0x83, 0xc4, 0x0b, 0x70, + 0x3b, 0xb6, 0x32, 0xca, 0xa4, 0x92, 0x36, 0x87, 0xc5, 0x2d, 0x99, 0x14, 0x8a, 0x84, 0xaf, 0xeb, + 0xa2, 0xe4, 0x8e, 0x81, 0xc7, 0xde, 0x80, 0x9f, 0x25, 0x99, 0xe0, 0xcc, 0x23, 0x47, 0xda, 0xdb, + 0x16, 0xda, 0xae, 0x52, 0x1e, 0xe2, 0x06, 0x38, 0x4c, 0x7c, 0x2f, 0x74, 0xe5, 0x48, 0x71, 0x74, + 0xd8, 0x8a, 0xd3, 0x40, 0xa1, 0xf4, 0x03, 0x8c, 0xdd, 0x94, 0x46, 0x49, 0x46, 0x73, 0x54, 0x4d, + 0xc6, 0xae, 0x94, 0x6a, 0xd8, 0x6b, 0xb0, 0x38, 0xe4, 0x34, 0x95, 0x75, 0x3d, 0xbd, 0xcc, 0xa8, + 0xdc, 0x70, 0x56, 0x9c, 0x05, 0x21, 0x16, 0xf5, 0xc4, 0x93, 0x75, 0xf2, 0x16, 0x5c, 0x97, 0x55, + 0x0d, 0xa9, 0x97, 0xc6, 0x9a, 0x10, 0x71, 0xdc, 0x76, 0x56, 0x1c, 0x82, 0xca, 0x03, 0xa9, 0x53, + 0xad, 0xfb, 0xff, 0x70, 0x3b, 0x60, 0x5c, 0xcc, 0x65, 0x88, 0xf5, 0x3d, 0xff, 0x8c, 0xba, 0x67, + 0x2c, 0x53, 0xc5, 0x34, 0x90, 0x78, 0x53, 0x42, 0x04, 0x65, 0x47, 0x00, 0x1e, 0xb3, 0x4c, 0x16, + 0xf8, 0x2d, 0x78, 0x69, 0x92, 0x1d, 0x31, 0xce, 0x15, 0x7d, 0x01, 0xe9, 0xf6, 0x18, 0xfd, 0x90, + 0x71, 0x2e, 0xf9, 0x6f, 0x83, 0x3d, 0x3e, 0x8c, 0xfe, 0x19, 0xf5, 0xcf, 0x45, 0x9d, 0x9b, 0x46, + 0xe7, 0xea, 0x31, 0xdc, 0x11, 0xca, 0x43, 0x2e, 0xd6, 0x82, 0x3c, 0xf3, 0xf4, 0xe8, 0xe9, 0xbe, + 0x5b, 0x44, 0x86, 0x85, 0x1a, 0x51, 0x98, 0xee, 0xbe, 0x55, 0xa8, 0x72, 0xda, 0x8f, 0x68, 0x9c, + 0x71, 0xbc, 0xb5, 0xac, 0x38, 0xf9, 0xb7, 0x0c, 0x2e, 0x4f, 0x5f, 0x42, 0x2c, 0xe9, 0xe0, 0xf2, + 0xe4, 0x0d, 0x84, 0x50, 0x07, 0x34, 0xcc, 0x3c, 0xe9, 0x92, 0x44, 0xaa, 0x51, 0x82, 0x6e, 0x78, + 0x0f, 0xea, 0x52, 0x2d, 0x9b, 0xbb, 0x8c, 0x7a, 0xc9, 0x90, 0x0d, 0x7c, 0x0d, 0x16, 0xa3, 0xa7, + 0xbe, 0xef, 0xb2, 0x78, 0x30, 0xcc, 0xa4, 0x91, 0x15, 0x39, 0x72, 0x42, 0xdc, 0x16, 0x52, 0x34, + 0xb4, 0x0e, 0x96, 0x81, 0x93, 0xd6, 0xae, 0x23, 0xb0, 0x99, 0x03, 0xa5, 0x45, 0x8d, 0x4c, 0x86, + 0x59, 0x6e, 0xf2, 0x46, 0x81, 0x3c, 0x42, 0x31, 0xda, 0x5c, 0x83, 0x46, 0x18, 0x61, 0x4c, 0x49, + 0xd4, 0x4d, 0x59, 0xbb, 0x30, 0x12, 0x81, 0x84, 0x88, 0x6f, 0xc2, 0xaa, 0xe9, 0xda, 0x58, 0xb8, + 0xba, 0x83, 0x8a, 0x38, 0x5e, 0x45, 0x56, 0x9c, 0x9b, 0x85, 0x77, 0xb7, 0x0b, 0xfd, 0xa1, 0xe1, + 0x6c, 0x92, 0x7c, 0xca, 0xb2, 0xc8, 0x1b, 0x08, 0xde, 0x2d, 0xc3, 0xd9, 0x90, 0xb7, 0x8d, 0xaa, + 0x43, 0x4e, 0xde, 0x80, 0xe5, 0x88, 0xc5, 0xae, 0x8c, 0x8b, 0xa2, 0xa0, 0x55, 0x39, 0x6e, 0x11, + 0x8b, 0x0f, 0x84, 0xa6, 0xab, 0x4b, 0x10, 0x70, 0xef, 0x62, 0x02, 0x7e, 0x5b, 0xc1, 0xbd, 0x8b, + 0x51, 0xf8, 0x03, 0x58, 0x11, 0xd6, 0x55, 0x40, 0x15, 0xf8, 0x97, 0x64, 0x64, 0x47, 0x2c, 0x76, + 0x50, 0x35, 0x42, 0xf0, 0x2e, 0x26, 0x09, 0x77, 0x14, 0xc1, 0xbb, 0x18, 0x23, 0x1c, 0xc3, 0xb2, + 0xf2, 0x35, 0x37, 0xe9, 0xb9, 0x3a, 0x45, 0xdb, 0x77, 0x71, 0x66, 0x58, 0x1b, 0x99, 0x8a, 0xa6, + 0x64, 0x7a, 0x67, 0x49, 0x91, 0x8d, 0xe4, 0x5f, 0x24, 0x40, 0x1c, 0xd4, 0x91, 0xcc, 0x79, 0xcf, + 0x4c, 0x80, 0x87, 0x4f, 0x7d, 0x7f, 0x7a, 0xe6, 0x94, 0x44, 0x33, 0x73, 0xae, 0x4d, 0x10, 0x8d, + 0xcc, 0xf9, 0x01, 0xdc, 0x51, 0xc4, 0x30, 0xd2, 0xfb, 0xf4, 0x91, 0x62, 0x5f, 0x46, 0xf6, 0x2d, + 0x09, 0x3a, 0x88, 0xe4, 0xee, 0xd1, 0x2c, 0x7a, 0xaa, 0x05, 0xb3, 0xfc, 0xd6, 0x54, 0x0b, 0x46, + 0x1d, 0xbe, 0x0d, 0x77, 0xa4, 0xeb, 0x3c, 0xc5, 0x9b, 0x29, 0x97, 0x05, 0x17, 0x32, 0x7d, 0xe3, + 0x59, 0x05, 0x7f, 0x68, 0x07, 0x32, 0x6f, 0x20, 0x48, 0xde, 0x5e, 0xb5, 0x83, 0x0b, 0x91, 0xc0, + 0xf7, 0xd3, 0x24, 0xea, 0x3e, 0x24, 0x3b, 0x70, 0xef, 0x39, 0x06, 0x02, 0xc6, 0xcf, 0x6d, 0x8a, + 0x26, 0x56, 0xa7, 0x9b, 0xd8, 0x65, 0xfc, 0x9c, 0xec, 0xc1, 0xda, 0x73, 0x8c, 0x60, 0x2e, 0xb3, + 0x7b, 0x68, 0xe5, 0xf6, 0x74, 0x2b, 0x98, 0xcc, 0xae, 0x6e, 0x8c, 0x3e, 0x1b, 0xec, 0x5f, 0xd5, + 0x18, 0x75, 0x40, 0x38, 0xad, 0x31, 0xf2, 0xb6, 0x2a, 0x37, 0x71, 0x36, 0xad, 0x31, 0xf2, 0xde, + 0x4a, 0x19, 0x39, 0x82, 0x57, 0xaf, 0x32, 0xf2, 0x94, 0x71, 0x96, 0x89, 0xe5, 0x66, 0x12, 0x50, + 0x6e, 0x33, 0x34, 0xb5, 0x36, 0xcd, 0xd4, 0xc7, 0x12, 0xd8, 0x11, 0x38, 0xd2, 0x85, 0xd7, 0xaf, + 0x32, 0x18, 0x30, 0xee, 0x7b, 0x69, 0x90, 0x9b, 0xfc, 0x14, 0x4d, 0xb6, 0xa6, 0x99, 0xdc, 0xd5, + 0x50, 0x69, 0x74, 0x1f, 0x5e, 0x9e, 0x30, 0x8a, 0xe9, 0xf7, 0x29, 0xf5, 0xf3, 0xc6, 0x9e, 0x4f, + 0xeb, 0x73, 0x91, 0xcf, 0x3f, 0xa6, 0xbe, 0x6a, 0xed, 0x01, 0xbc, 0x32, 0xdd, 0x0e, 0x9e, 0x68, + 0xf1, 0xdc, 0x54, 0x88, 0xa6, 0xee, 0x4e, 0x9a, 0x3a, 0x42, 0x9c, 0xb2, 0xf6, 0x3e, 0xdc, 0xee, + 0x65, 0xdc, 0x8d, 0xf5, 0x51, 0x59, 0x44, 0xa3, 0x24, 0xbd, 0x74, 0xe3, 0x04, 0x0f, 0x36, 0xec, + 0x1f, 0x96, 0xf0, 0xf2, 0xeb, 0x66, 0x2f, 0xe3, 0x1d, 0x79, 0x40, 0x26, 0x01, 0x1d, 0xa9, 0x17, + 0x89, 0xd0, 0xa0, 0x67, 0x2c, 0xbe, 0x74, 0x25, 0xf1, 0x8f, 0x24, 0x71, 0x49, 0x13, 0x4f, 0x58, + 0x7c, 0x89, 0xe7, 0x2d, 0x62, 0x4d, 0x31, 0x4e, 0xd1, 0xa5, 0xfd, 0x48, 0x92, 0x96, 0x4d, 0x92, + 0x2e, 0xe9, 0x01, 0xac, 0x18, 0xb4, 0x20, 0xea, 0xa9, 0x82, 0xfe, 0x58, 0x72, 0x2c, 0xcd, 0xd9, + 0x8d, 0x7a, 0xb2, 0x9c, 0x87, 0x70, 0x63, 0x8c, 0xa0, 0x8b, 0xf9, 0x13, 0x49, 0x21, 0x06, 0x45, + 0x97, 0xb2, 0x03, 0x77, 0x05, 0x49, 0x84, 0xf2, 0x15, 0x3d, 0xf2, 0xa7, 0x72, 0xdb, 0xb2, 0xda, + 0xcb, 0xb8, 0x88, 0xe7, 0x69, 0x9d, 0xf2, 0x0e, 0xd8, 0xa3, 0x46, 0x8c, 0x7e, 0xf9, 0x33, 0x49, + 0x5f, 0x31, 0xe8, 0x45, 0xd7, 0x7c, 0x13, 0x56, 0xa7, 0x10, 0x75, 0xc9, 0x7f, 0x2e, 0xa9, 0x37, + 0xc6, 0xa8, 0xba, 0x54, 0xd5, 0xaf, 0x05, 0xb9, 0xe8, 0xa3, 0xbf, 0x90, 0xcc, 0x65, 0x83, 0x99, + 0x77, 0xd3, 0x7b, 0x70, 0x6b, 0x92, 0xa6, 0x8b, 0xfc, 0xb1, 0x24, 0x5e, 0x1f, 0x25, 0x8e, 0x0d, + 0x7e, 0x11, 0xf4, 0xe8, 0x96, 0x11, 0xb7, 0xff, 0x52, 0xd2, 0xc4, 0xe0, 0xeb, 0x70, 0x17, 0x2a, + 0xb9, 0xa0, 0x1c, 0xa1, 0x18, 0xe9, 0xe6, 0xaf, 0x8a, 0xc1, 0x9f, 0xc8, 0x33, 0x1f, 0xc0, 0x9d, + 0x29, 0x34, 0x79, 0x12, 0x26, 0x12, 0xad, 0xfd, 0x13, 0x49, 0xb6, 0xc7, 0xc8, 0x88, 0xd8, 0x67, + 0x21, 0x15, 0x6b, 0xbd, 0x49, 0x0b, 0x5c, 0x3d, 0x18, 0x7b, 0x68, 0xff, 0xb5, 0xe4, 0xdf, 0x18, + 0xe5, 0x77, 0x51, 0xdf, 0x7d, 0x38, 0xbd, 0x7c, 0xc5, 0xc6, 0x8c, 0xfb, 0x37, 0x53, 0xcb, 0x97, + 0x7c, 0x4c, 0xb8, 0xeb, 0x60, 0x69, 0x0b, 0x2a, 0x93, 0xc4, 0xf6, 0xdf, 0x4a, 0xd2, 0x82, 0x24, + 0xc9, 0xa4, 0xd1, 0x31, 0xbb, 0x48, 0x67, 0x42, 0xdd, 0xaf, 0x7f, 0x57, 0x8c, 0x63, 0x91, 0x03, + 0x55, 0xcf, 0x2a, 0x77, 0x17, 0xb4, 0x20, 0xd2, 0x4c, 0x9c, 0x92, 0xfe, 0x5e, 0xb2, 0x88, 0x64, + 0xed, 0x46, 0x92, 0x87, 0x93, 0xd1, 0xfb, 0xf0, 0x92, 0x41, 0x92, 0xe5, 0x60, 0x2e, 0x11, 0xd2, + 0x88, 0xdb, 0x3f, 0x2d, 0x5c, 0x0e, 0xa9, 0x58, 0x98, 0xc8, 0x21, 0xfb, 0x19, 0x97, 0xd9, 0x7b, + 0x3a, 0x5d, 0xa5, 0xa2, 0x88, 0xdb, 0x3f, 0x93, 0x16, 0x6e, 0x4d, 0x58, 0x90, 0x59, 0xe8, 0x90, + 0xeb, 0x68, 0x11, 0x46, 0xd0, 0xdd, 0xcd, 0xaa, 0xff, 0x43, 0x11, 0x2d, 0xed, 0xe0, 0x42, 0x78, + 0xbb, 0x51, 0xf9, 0x2d, 0x19, 0xab, 0x39, 0x71, 0xb2, 0xfa, 0x3f, 0x97, 0x74, 0xbb, 0xa0, 0x8f, + 0x35, 0xe0, 0x43, 0x78, 0xf9, 0x2a, 0x13, 0x45, 0x13, 0x7e, 0x21, 0xad, 0xdc, 0x9e, 0x62, 0x25, + 0x6f, 0x84, 0x1a, 0xb4, 0xd3, 0x74, 0x98, 0x51, 0xd3, 0x4a, 0xc4, 0xed, 0x7f, 0x2c, 0x06, 0x6d, + 0x5b, 0xa8, 0x73, 0xf2, 0x21, 0xd7, 0xc1, 0x67, 0xd2, 0x54, 0xf3, 0x23, 0x6e, 0xff, 0xb2, 0x08, + 0xbe, 0x82, 0x28, 0xdb, 0x7f, 0xc8, 0x5b, 0x3f, 0x2d, 0xe5, 0x5b, 0x5f, 0x63, 0x9b, 0x4f, 0x5e, + 0x81, 0x66, 0xc4, 0xe2, 0x93, 0xee, 0x91, 0x3c, 0x31, 0xc8, 0x8f, 0x59, 0x1a, 0x52, 0x2a, 0xa0, + 0x1d, 0x74, 0x96, 0x01, 0x1b, 0xd0, 0x90, 0xc5, 0xd4, 0xfd, 0x6c, 0x48, 0x87, 0x34, 0x47, 0xcb, + 0x2d, 0xf6, 0xb2, 0xd6, 0x7e, 0x47, 0x28, 0x15, 0xe9, 0x1d, 0xb0, 0x73, 0xd2, 0x69, 0x4a, 0xbd, + 0x73, 0x9a, 0xe6, 0x34, 0xb5, 0xd3, 0xd5, 0xfa, 0x6d, 0xa9, 0x96, 0xc4, 0xd6, 0xe7, 0x50, 0xe9, + 0x26, 0x69, 0x46, 0x5e, 0x83, 0xf9, 0x53, 0x3c, 0xf6, 0xe2, 0xd3, 0xcf, 0xfd, 0x94, 0x92, 0xbc, + 0x02, 0x0b, 0x8c, 0xe3, 0x3d, 0xb1, 0x17, 0x0a, 0xa2, 0x7a, 0x82, 0x35, 0x2a, 0x7c, 0xc1, 0x83, + 0xdb, 0x3f, 0x28, 0x83, 0x25, 0x1f, 0x68, 0xee, 0xa7, 0x5e, 0x44, 0xb7, 0x93, 0x61, 0x1c, 0x90, + 0x07, 0x50, 0x31, 0xee, 0x15, 0xaf, 0x9b, 0xcf, 0x38, 0x11, 0x60, 0xdc, 0x33, 0x20, 0x90, 0xb4, + 0xa0, 0x36, 0x8c, 0x4f, 0x85, 0x8a, 0x06, 0x23, 0xe7, 0x67, 0x85, 0x98, 0xdc, 0x80, 0x39, 0xf9, + 0xb4, 0x4c, 0x75, 0x86, 0xfa, 0x22, 0xeb, 0x50, 0xf3, 0xbd, 0xd0, 0xdf, 0x1f, 0xc6, 0x3e, 0x9f, + 0x72, 0x9a, 0x57, 0x28, 0xc9, 0xff, 0x83, 0x7a, 0x4f, 0x54, 0xd2, 0xc5, 0xe7, 0x09, 0xea, 0x69, + 0xf1, 0xc8, 0x81, 0x3b, 0xaa, 0xf1, 0x25, 0x03, 0xf9, 0x06, 0x2c, 0xf8, 0xd1, 0x40, 0x9e, 0x1d, + 0x18, 0xd7, 0x26, 0xea, 0x2d, 0x30, 0x62, 0x76, 0xa2, 0xc1, 0xae, 0x97, 0x79, 0x78, 0x9f, 0x57, + 0xf7, 0x8b, 0x8f, 0xd6, 0x0f, 0x4b, 0x50, 0x37, 0x3a, 0xe5, 0x79, 0xfd, 0x81, 0x80, 0x89, 0xfe, + 0xf8, 0x1a, 0xcc, 0xf2, 0xcc, 0x53, 0x23, 0x93, 0x3f, 0x40, 0x1e, 0xef, 0x67, 0x47, 0x82, 0xc8, + 0x3a, 0xcc, 0xd0, 0x58, 0x8f, 0xd3, 0x55, 0x58, 0x01, 0x69, 0xfd, 0xba, 0x04, 0x73, 0x52, 0x43, + 0x5e, 0x87, 0x5a, 0x6f, 0x18, 0xfb, 0x2e, 0xde, 0x94, 0x4c, 0x1e, 0xb1, 0x57, 0x85, 0x72, 0x97, + 0x72, 0x7f, 0xe2, 0x98, 0xb5, 0xfc, 0x45, 0xc7, 0xac, 0xe6, 0xf9, 0xf3, 0xcc, 0xf3, 0xce, 0x9f, + 0x5f, 0x87, 0x59, 0xec, 0x70, 0xf5, 0xb8, 0x72, 0x69, 0xa2, 0xe6, 0x8e, 0xd4, 0x17, 0xae, 0x38, + 0xfb, 0x3c, 0x57, 0xfc, 0x36, 0x34, 0xf0, 0x74, 0x9e, 0xc5, 0x7d, 0xd1, 0x04, 0xf2, 0x00, 0x16, + 0xfa, 0xea, 0x5b, 0x1e, 0xf5, 0x4e, 0xb6, 0xb2, 0xd1, 0x37, 0x08, 0xad, 0xc7, 0x50, 0xd7, 0x06, + 0xba, 0x34, 0x23, 0xef, 0x41, 0x73, 0x84, 0xaf, 0xa3, 0x4a, 0x5d, 0xf3, 0x98, 0x65, 0x39, 0x0b, + 0xa6, 0x21, 0xde, 0xfa, 0x7e, 0x09, 0xe6, 0xe4, 0x6b, 0x5e, 0xf2, 0xb6, 0x51, 0x8b, 0xfc, 0x5d, + 0x64, 0xde, 0x58, 0xa3, 0xbc, 0xa2, 0x32, 0x5d, 0x9a, 0xf1, 0x17, 0x3c, 0x03, 0xb7, 0x61, 0xfe, + 0x29, 0x4d, 0xf1, 0x55, 0xa8, 0x8c, 0x0a, 0xfd, 0xd9, 0x7a, 0x03, 0x6a, 0xa2, 0x2e, 0xf2, 0x45, + 0xe4, 0x17, 0x5e, 0xe9, 0xb4, 0xfe, 0xb0, 0x04, 0xf3, 0xea, 0xfd, 0x31, 0xb9, 0x0f, 0x30, 0x48, + 0x93, 0x4f, 0x47, 0x1a, 0xbd, 0x58, 0x50, 0xe4, 0xdb, 0xd0, 0x9a, 0x80, 0xc8, 0x2b, 0x9e, 0x47, + 0x70, 0xa3, 0x4f, 0x63, 0x9a, 0x7a, 0x62, 0x27, 0xa0, 0xce, 0x0e, 0xe4, 0x53, 0xb2, 0x32, 0x3e, + 0x25, 0x5b, 0xc9, 0xb5, 0xf2, 0x04, 0x41, 0xbe, 0x29, 0x7b, 0xb1, 0xfc, 0xf2, 0x1a, 0x34, 0x47, + 0x5f, 0x39, 0x93, 0x15, 0x7d, 0xce, 0x2e, 0x4f, 0x33, 0xe5, 0xc7, 0xc6, 0xef, 0xcf, 0xc8, 0x7f, + 0x78, 0xc0, 0x4b, 0xcb, 0x25, 0x58, 0x10, 0x7f, 0xf3, 0x17, 0x30, 0xd6, 0x35, 0x2d, 0xca, 0xaf, + 0x24, 0xad, 0x92, 0x16, 0xe5, 0xf7, 0x71, 0x56, 0x99, 0x2c, 0xc3, 0xa2, 0x10, 0x19, 0x37, 0x51, + 0xd6, 0x0c, 0x69, 0x40, 0x15, 0xad, 0x25, 0x83, 0x8e, 0x55, 0x21, 0x0b, 0x50, 0x13, 0x5f, 0x78, + 0x89, 0x61, 0xcd, 0xe6, 0x46, 0x70, 0x1b, 0xbf, 0xd5, 0xef, 0x5b, 0x73, 0x1a, 0xff, 0x51, 0xc2, + 0x62, 0x6b, 0x5e, 0x7f, 0x3d, 0x61, 0x61, 0x68, 0x55, 0xc9, 0x0d, 0x20, 0xe2, 0x6b, 0xf4, 0xb9, + 0xb3, 0x55, 0x23, 0x36, 0xac, 0x98, 0x72, 0xfd, 0x20, 0xd5, 0x02, 0x42, 0xa0, 0x29, 0x34, 0xc5, + 0xfd, 0x9c, 0x55, 0x27, 0xab, 0x70, 0x03, 0x65, 0x13, 0x4f, 0x7d, 0xac, 0x86, 0x2e, 0x4f, 0xa4, + 0x70, 0x6b, 0x81, 0x34, 0x01, 0xc4, 0x97, 0x8c, 0x29, 0xab, 0xa9, 0xbf, 0xe5, 0x48, 0x5b, 0x8b, + 0x64, 0x11, 0xea, 0xc5, 0xf7, 0xa6, 0x65, 0xe9, 0x0a, 0x8e, 0xf6, 0xb9, 0xb5, 0xa4, 0x7b, 0xc6, + 0x78, 0xf8, 0x6b, 0xad, 0x90, 0x97, 0xc0, 0x56, 0xec, 0x89, 0xab, 0x0d, 0xeb, 0xfa, 0xc6, 0xbb, + 0xd0, 0x30, 0x9f, 0xb7, 0x8a, 0xb2, 0x8e, 0x3d, 0xce, 0x4f, 0xce, 0xd2, 0x64, 0xd8, 0x3f, 0xb3, + 0xae, 0x89, 0xae, 0xcc, 0xcb, 0xb1, 0x4a, 0xa4, 0x0a, 0x95, 0xc7, 0x1e, 0x3f, 0xb3, 0xca, 0x1b, + 0xdf, 0x84, 0xc5, 0xb1, 0x67, 0xcd, 0x42, 0xd9, 0x39, 0xea, 0xec, 0x59, 0xd7, 0xc4, 0xaf, 0xfd, + 0xad, 0xee, 0x89, 0x55, 0x22, 0x2b, 0x60, 0x3d, 0x6e, 0x7f, 0xf8, 0xd8, 0xdd, 0x39, 0x3a, 0x3c, + 0x76, 0xf6, 0xba, 0xdd, 0xf6, 0x51, 0xc7, 0x2a, 0x6f, 0xdc, 0x07, 0x28, 0x9e, 0xb1, 0x91, 0x1a, + 0xcc, 0xe2, 0x49, 0x8e, 0x24, 0x9e, 0xb0, 0x27, 0x1f, 0x5b, 0x25, 0x52, 0x87, 0x79, 0x35, 0xb5, + 0x5b, 0xe5, 0x8d, 0x87, 0xb0, 0xa8, 0xb6, 0x6f, 0xa2, 0x6d, 0x4f, 0x58, 0x2c, 0xa6, 0x1a, 0xd2, + 0xee, 0x7c, 0xbc, 0x75, 0xd0, 0xde, 0x75, 0xdb, 0x9d, 0xdd, 0xbd, 0xef, 0xb9, 0x4f, 0xda, 0x9d, + 0x5d, 0x69, 0xe1, 0x71, 0xa7, 0xfb, 0x89, 0x55, 0xda, 0x38, 0x85, 0x95, 0x69, 0x2f, 0x5f, 0xc9, + 0x6d, 0xb8, 0xa9, 0x99, 0xbb, 0xed, 0xee, 0xc9, 0x56, 0x67, 0x67, 0xcf, 0x3d, 0xdc, 0x3b, 0x71, + 0xda, 0x3b, 0xd6, 0x35, 0x32, 0x07, 0xe5, 0x83, 0xb7, 0xac, 0x12, 0xfe, 0xdd, 0xb4, 0xca, 0x04, + 0x60, 0x6e, 0xe7, 0xa8, 0xdb, 0xee, 0xec, 0x59, 0x33, 0xc2, 0x8f, 0xda, 0x9d, 0xce, 0x9e, 0xe3, + 0x1e, 0x3b, 0x47, 0xbb, 0xdf, 0xdd, 0x39, 0xb1, 0x2a, 0x1b, 0x6f, 0x15, 0x6f, 0x78, 0xb1, 0x29, + 0x2b, 0x60, 0xb5, 0xe3, 0xa7, 0x5e, 0xc8, 0x82, 0x5c, 0x66, 0x5d, 0x13, 0x6d, 0x39, 0x92, 0xf9, + 0xd4, 0x2a, 0x6d, 0xfc, 0x4e, 0xf1, 0xc0, 0x14, 0x29, 0x37, 0x61, 0xd9, 0xfc, 0x56, 0x74, 0xeb, + 0xda, 0xb8, 0xa2, 0x93, 0x74, 0xfd, 0x24, 0xa5, 0x56, 0x89, 0xdc, 0x82, 0xeb, 0xa6, 0xe2, 0x13, + 0x96, 0x9d, 0x49, 0x55, 0x79, 0xe3, 0x97, 0x25, 0xa8, 0xea, 0xc7, 0x41, 0x45, 0x3c, 0xc5, 0x34, + 0x45, 0x4f, 0xbf, 0x46, 0xae, 0xc3, 0x12, 0x46, 0x06, 0xed, 0x65, 0x47, 0xc3, 0x4c, 0x89, 0x4b, + 0xda, 0xa3, 0x1c, 0xd6, 0x3f, 0x33, 0xe4, 0x65, 0x62, 0x41, 0x43, 0x86, 0x9f, 0x7c, 0xe2, 0x61, + 0xcd, 0x88, 0x06, 0x62, 0xf4, 0xc5, 0x19, 0xcb, 0xa5, 0x15, 0x51, 0xa3, 0x11, 0xb3, 0xb9, 0x6a, + 0x96, 0xdc, 0x81, 0x5b, 0x9a, 0x30, 0xa9, 0x9e, 0xdb, 0x58, 0x83, 0x86, 0xf9, 0x28, 0x49, 0x97, + 0x28, 0x9c, 0x4c, 0x56, 0x79, 0xe3, 0x1b, 0xb0, 0x34, 0xf1, 0x00, 0x42, 0x0c, 0x4f, 0xbb, 0x23, + 0x7b, 0xf6, 0xb0, 0xdd, 0x71, 0x0f, 0xb7, 0xbe, 0x67, 0x95, 0x04, 0x77, 0xfb, 0xe0, 0xe8, 0xe8, + 0xd0, 0xdd, 0x6f, 0x1f, 0x9c, 0xec, 0x39, 0x56, 0x79, 0x63, 0x63, 0x8c, 0x8b, 0x6e, 0x2a, 0xdc, + 0xed, 0x68, 0x67, 0xeb, 0xc0, 0xba, 0x26, 0x46, 0xf7, 0xc3, 0x83, 0xa3, 0xed, 0xad, 0x03, 0xab, + 0xb4, 0xb1, 0x0d, 0x4b, 0x13, 0x97, 0xb7, 0x22, 0x1e, 0xf6, 0x93, 0xd4, 0xa7, 0x52, 0x24, 0xdd, + 0x6b, 0x6b, 0x98, 0x25, 0x56, 0x49, 0x04, 0x3d, 0xaa, 0x64, 0x5a, 0x61, 0x71, 0xdf, 0x2a, 0x6f, + 0x7c, 0x1b, 0x16, 0xc7, 0x96, 0x50, 0x22, 0x80, 0xf6, 0x93, 0x30, 0x4c, 0x9e, 0x09, 0x04, 0xc6, + 0xd3, 0x71, 0x4a, 0x7d, 0x1a, 0x88, 0xcf, 0x92, 0x88, 0xf5, 0x1d, 0xbc, 0x5e, 0xcb, 0x9c, 0xe4, + 0x99, 0x55, 0xde, 0x38, 0x02, 0x6b, 0x7c, 0xd9, 0x42, 0xe6, 0x61, 0xa6, 0x1d, 0x67, 0xd6, 0x35, + 0x51, 0xf1, 0xfd, 0x30, 0xf1, 0x32, 0x19, 0x1d, 0xbb, 0xd4, 0x67, 0x91, 0x17, 0x5a, 0x65, 0x91, + 0x4e, 0x76, 0xbd, 0x8c, 0x9e, 0xb0, 0x88, 0xca, 0x54, 0xb8, 0x3b, 0x94, 0xb7, 0x7e, 0x56, 0x45, + 0x44, 0xce, 0xd8, 0x22, 0x46, 0x34, 0x41, 0xec, 0x1d, 0x64, 0xf3, 0xb1, 0x34, 0x6e, 0x95, 0xb0, + 0x2b, 0xc4, 0xdc, 0xc6, 0xad, 0xf2, 0xf6, 0x57, 0x7f, 0xf5, 0x9b, 0xbb, 0xa5, 0x7f, 0xf9, 0xcd, + 0xdd, 0xd2, 0xbf, 0xff, 0xe6, 0x6e, 0xe9, 0x47, 0xff, 0x71, 0xf7, 0x1a, 0x5c, 0xf7, 0x93, 0xe8, + 0xbe, 0x98, 0xf7, 0x7c, 0x6f, 0x70, 0x3f, 0x63, 0xc1, 0x29, 0xce, 0x04, 0xc7, 0xa5, 0xff, 0x09, + 0x00, 0x00, 0xff, 0xff, 0x49, 0x46, 0x62, 0xc3, 0x11, 0x37, 0x00, 0x00, } diff --git a/proto/executor.proto b/proto/executor.proto index ad8c56a1..ed4f5206 100644 --- a/proto/executor.proto +++ b/proto/executor.proto @@ -173,12 +173,10 @@ message FTSQueryInfo { optional string query_text = 5 [(gogoproto.nullable) = false]; optional string query_tokenizer = 6 [(gogoproto.nullable) = false]; // Always the same as parser/model/index_full_text.go:FullTextParserType - // For QueryType == WithScore, a top_k can be optionally specified. - // If top_k is specified, it means the TableScan is safe to return at most *top* k results - // because upper executors will have a TopK anyway. - // If not specified (optional, or top_k is very large), then all results will be returned. - // This option is not supported for QueryType == NoScore. + // These fields support pushdown for order-by and limit scenarios. optional uint32 top_k = 10; + repeated int64 sort_column_ids = 11; + repeated bool sort_column_asc = 12; // Distinguish match_word, match_expression, match_prefix, match_regexp optional ScalarFuncSig query_func = 20 [(gogoproto.nullable) = false];