mirror of https://github.com/milvus-io/milvus.git
Fix an issue that causes flush hanging (#17169)
issue: #16628 Signed-off-by: Yuchen Gao <yuchen.gao@zilliz.com>pull/17214/head
parent
dfce650d78
commit
5e1e7a6896
|
@ -353,7 +353,7 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
|
|||
"led\020\003\022\013\n\007Flushed\020\004\022\014\n\010Flushing\020\005\022\013\n\007Drop"
|
||||
"ped\020\006\022\r\n\tImporting\020\007*>\n\017PlaceholderType\022"
|
||||
"\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatVect"
|
||||
"or\020e*\331\n\n\007MsgType\022\r\n\tUndefined\020\000\022\024\n\020Creat"
|
||||
"or\020e*\362\n\n\007MsgType\022\r\n\tUndefined\020\000\022\024\n\020Creat"
|
||||
"eCollection\020d\022\022\n\016DropCollection\020e\022\021\n\rHas"
|
||||
"Collection\020f\022\026\n\022DescribeCollection\020g\022\023\n\017"
|
||||
"ShowCollections\020h\022\024\n\020GetSystemConfigs\020i\022"
|
||||
|
@ -369,36 +369,37 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
|
|||
"Segments\020\377\001\022\025\n\020DescribeSegments\020\200\002\022\020\n\013Cr"
|
||||
"eateIndex\020\254\002\022\022\n\rDescribeIndex\020\255\002\022\016\n\tDrop"
|
||||
"Index\020\256\002\022\013\n\006Insert\020\220\003\022\013\n\006Delete\020\221\003\022\n\n\005Fl"
|
||||
"ush\020\222\003\022\013\n\006Search\020\364\003\022\021\n\014SearchResult\020\365\003\022\022"
|
||||
"\n\rGetIndexState\020\366\003\022\032\n\025GetIndexBuildProgr"
|
||||
"ess\020\367\003\022\034\n\027GetCollectionStatistics\020\370\003\022\033\n\026"
|
||||
"GetPartitionStatistics\020\371\003\022\r\n\010Retrieve\020\372\003"
|
||||
"\022\023\n\016RetrieveResult\020\373\003\022\024\n\017WatchDmChannels"
|
||||
"\020\374\003\022\025\n\020RemoveDmChannels\020\375\003\022\027\n\022WatchQuery"
|
||||
"Channels\020\376\003\022\030\n\023RemoveQueryChannels\020\377\003\022\035\n"
|
||||
"\030SealedSegmentsChangeInfo\020\200\004\022\027\n\022WatchDel"
|
||||
"taChannels\020\201\004\022\024\n\017GetShardLeaders\020\202\004\022\020\n\013G"
|
||||
"etReplicas\020\203\004\022\020\n\013SegmentInfo\020\330\004\022\017\n\nSyste"
|
||||
"mInfo\020\331\004\022\024\n\017GetRecoveryInfo\020\332\004\022\024\n\017GetSeg"
|
||||
"mentState\020\333\004\022\r\n\010TimeTick\020\260\t\022\023\n\016QueryNode"
|
||||
"Stats\020\261\t\022\016\n\tLoadIndex\020\262\t\022\016\n\tRequestID\020\263\t"
|
||||
"\022\017\n\nRequestTSO\020\264\t\022\024\n\017AllocateSegment\020\265\t\022"
|
||||
"\026\n\021SegmentStatistics\020\266\t\022\025\n\020SegmentFlushD"
|
||||
"one\020\267\t\022\017\n\nDataNodeTt\020\270\t\022\025\n\020CreateCredent"
|
||||
"ial\020\334\013\022\022\n\rGetCredential\020\335\013\022\025\n\020DeleteCred"
|
||||
"ential\020\336\013\022\025\n\020UpdateCredential\020\337\013\022\026\n\021List"
|
||||
"CredUsernames\020\340\013*\"\n\007DslType\022\007\n\003Dsl\020\000\022\016\n\n"
|
||||
"BoolExprV1\020\001*B\n\017CompactionState\022\021\n\rUndef"
|
||||
"iedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tCompleted\020\002"
|
||||
"*X\n\020ConsistencyLevel\022\n\n\006Strong\020\000\022\013\n\007Sess"
|
||||
"ion\020\001\022\013\n\007Bounded\020\002\022\016\n\nEventually\020\003\022\016\n\nCu"
|
||||
"stomized\020\004*\227\001\n\013ImportState\022\021\n\rImportPend"
|
||||
"ing\020\000\022\020\n\014ImportFailed\020\001\022\021\n\rImportStarted"
|
||||
"\020\002\022\024\n\020ImportDownloaded\020\003\022\020\n\014ImportParsed"
|
||||
"\020\004\022\023\n\017ImportPersisted\020\005\022\023\n\017ImportComplet"
|
||||
"ed\020\006BW\n\016io.milvus.grpcB\013CommonProtoP\001Z3g"
|
||||
"ithub.com/milvus-io/milvus/internal/prot"
|
||||
"o/commonpb\240\001\001b\006proto3"
|
||||
"ush\020\222\003\022\027\n\022ResendSegmentStats\020\223\003\022\013\n\006Searc"
|
||||
"h\020\364\003\022\021\n\014SearchResult\020\365\003\022\022\n\rGetIndexState"
|
||||
"\020\366\003\022\032\n\025GetIndexBuildProgress\020\367\003\022\034\n\027GetCo"
|
||||
"llectionStatistics\020\370\003\022\033\n\026GetPartitionSta"
|
||||
"tistics\020\371\003\022\r\n\010Retrieve\020\372\003\022\023\n\016RetrieveRes"
|
||||
"ult\020\373\003\022\024\n\017WatchDmChannels\020\374\003\022\025\n\020RemoveDm"
|
||||
"Channels\020\375\003\022\027\n\022WatchQueryChannels\020\376\003\022\030\n\023"
|
||||
"RemoveQueryChannels\020\377\003\022\035\n\030SealedSegments"
|
||||
"ChangeInfo\020\200\004\022\027\n\022WatchDeltaChannels\020\201\004\022\024"
|
||||
"\n\017GetShardLeaders\020\202\004\022\020\n\013GetReplicas\020\203\004\022\020"
|
||||
"\n\013SegmentInfo\020\330\004\022\017\n\nSystemInfo\020\331\004\022\024\n\017Get"
|
||||
"RecoveryInfo\020\332\004\022\024\n\017GetSegmentState\020\333\004\022\r\n"
|
||||
"\010TimeTick\020\260\t\022\023\n\016QueryNodeStats\020\261\t\022\016\n\tLoa"
|
||||
"dIndex\020\262\t\022\016\n\tRequestID\020\263\t\022\017\n\nRequestTSO\020"
|
||||
"\264\t\022\024\n\017AllocateSegment\020\265\t\022\026\n\021SegmentStati"
|
||||
"stics\020\266\t\022\025\n\020SegmentFlushDone\020\267\t\022\017\n\nDataN"
|
||||
"odeTt\020\270\t\022\025\n\020CreateCredential\020\334\013\022\022\n\rGetCr"
|
||||
"edential\020\335\013\022\025\n\020DeleteCredential\020\336\013\022\025\n\020Up"
|
||||
"dateCredential\020\337\013\022\026\n\021ListCredUsernames\020\340"
|
||||
"\013*\"\n\007DslType\022\007\n\003Dsl\020\000\022\016\n\nBoolExprV1\020\001*B\n"
|
||||
"\017CompactionState\022\021\n\rUndefiedState\020\000\022\r\n\tE"
|
||||
"xecuting\020\001\022\r\n\tCompleted\020\002*X\n\020Consistency"
|
||||
"Level\022\n\n\006Strong\020\000\022\013\n\007Session\020\001\022\013\n\007Bounde"
|
||||
"d\020\002\022\016\n\nEventually\020\003\022\016\n\nCustomized\020\004*\227\001\n\013"
|
||||
"ImportState\022\021\n\rImportPending\020\000\022\020\n\014Import"
|
||||
"Failed\020\001\022\021\n\rImportStarted\020\002\022\024\n\020ImportDow"
|
||||
"nloaded\020\003\022\020\n\014ImportParsed\020\004\022\023\n\017ImportPer"
|
||||
"sisted\020\005\022\023\n\017ImportCompleted\020\006BW\n\016io.milv"
|
||||
"us.grpcB\013CommonProtoP\001Z3github.com/milvu"
|
||||
"s-io/milvus/internal/proto/commonpb\240\001\001b\006"
|
||||
"proto3"
|
||||
;
|
||||
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
|
||||
};
|
||||
|
@ -417,7 +418,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
|
|||
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
|
||||
static bool descriptor_table_common_2eproto_initialized = false;
|
||||
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 3581,
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 3606,
|
||||
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 10, 0,
|
||||
schemas, file_default_instances, TableStruct_common_2eproto::offsets,
|
||||
file_level_metadata_common_2eproto, 10, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
|
||||
|
@ -565,6 +566,7 @@ bool MsgType_IsValid(int value) {
|
|||
case 400:
|
||||
case 401:
|
||||
case 402:
|
||||
case 403:
|
||||
case 500:
|
||||
case 501:
|
||||
case 502:
|
||||
|
|
|
@ -283,6 +283,7 @@ enum MsgType : int {
|
|||
Insert = 400,
|
||||
Delete = 401,
|
||||
Flush = 402,
|
||||
ResendSegmentStats = 403,
|
||||
Search = 500,
|
||||
SearchResult = 501,
|
||||
GetIndexState = 502,
|
||||
|
|
|
@ -144,6 +144,11 @@ func (c *Cluster) Import(ctx context.Context, nodeID int64, it *datapb.ImportTas
|
|||
c.sessionManager.Import(ctx, nodeID, it)
|
||||
}
|
||||
|
||||
// ReCollectSegmentStats triggers a ReCollectSegmentStats call from session manager.
|
||||
func (c *Cluster) ReCollectSegmentStats(ctx context.Context, nodeID int64) {
|
||||
c.sessionManager.ReCollectSegmentStats(ctx, nodeID)
|
||||
}
|
||||
|
||||
// GetSessions returns all sessions
|
||||
func (c *Cluster) GetSessions() []*Session {
|
||||
return c.sessionManager.GetSessions()
|
||||
|
|
|
@ -577,3 +577,66 @@ func TestCluster_Import(t *testing.T) {
|
|||
})
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
}
|
||||
|
||||
func TestCluster_ReCollectSegmentStats(t *testing.T) {
|
||||
kv := getMetaKv(t)
|
||||
defer func() {
|
||||
kv.RemoveWithPrefix("")
|
||||
kv.Close()
|
||||
}()
|
||||
|
||||
t.Run("recollect succeed", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.TODO())
|
||||
defer cancel()
|
||||
var mockSessionCreator = func(ctx context.Context, addr string) (types.DataNode, error) {
|
||||
return newMockDataNodeClient(1, nil)
|
||||
}
|
||||
sessionManager := NewSessionManager(withSessionCreator(mockSessionCreator))
|
||||
channelManager, err := NewChannelManager(kv, newMockHandler())
|
||||
assert.Nil(t, err)
|
||||
cluster := NewCluster(sessionManager, channelManager)
|
||||
defer cluster.Close()
|
||||
addr := "localhost:8080"
|
||||
info := &NodeInfo{
|
||||
Address: addr,
|
||||
NodeID: 1,
|
||||
}
|
||||
nodes := []*NodeInfo{info}
|
||||
err = cluster.Startup(ctx, nodes)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = cluster.Watch("chan-1", 1)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
cluster.ReCollectSegmentStats(ctx, 1)
|
||||
})
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
})
|
||||
|
||||
t.Run("recollect failed", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.TODO())
|
||||
defer cancel()
|
||||
sessionManager := NewSessionManager()
|
||||
channelManager, err := NewChannelManager(kv, newMockHandler())
|
||||
assert.Nil(t, err)
|
||||
cluster := NewCluster(sessionManager, channelManager)
|
||||
defer cluster.Close()
|
||||
addr := "localhost:8080"
|
||||
info := &NodeInfo{
|
||||
Address: addr,
|
||||
NodeID: 1,
|
||||
}
|
||||
nodes := []*NodeInfo{info}
|
||||
err = cluster.Startup(ctx, nodes)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = cluster.Watch("chan-1", 1)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
cluster.ReCollectSegmentStats(ctx, 1)
|
||||
})
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
})
|
||||
}
|
||||
|
|
|
@ -157,6 +157,15 @@ func (c *mockDataNodeClient) FlushSegments(ctx context.Context, in *datapb.Flush
|
|||
return &commonpb.Status{ErrorCode: commonpb.ErrorCode_Success}, nil
|
||||
}
|
||||
|
||||
func (c *mockDataNodeClient) ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
return &datapb.ResendSegmentStatsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *mockDataNodeClient) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error) {
|
||||
// TODO(dragondriver): change the id, though it's not important in ut
|
||||
nodeID := UniqueID(c.id)
|
||||
|
|
|
@ -297,6 +297,13 @@ func (s *Server) Start() error {
|
|||
atomic.StoreInt64(&s.isServing, ServerStateHealthy)
|
||||
logutil.Logger(s.ctx).Debug("startup success")
|
||||
|
||||
// DataCoord (re)starts successfully and starts to collection segment stats
|
||||
// data from all DataNode.
|
||||
// This will prevent DataCoord from missing out any important segment stats
|
||||
// data while offline.
|
||||
log.Info("DataNode (re)starts successfully and re-collecting segment stats from DataNodes")
|
||||
s.reCollectSegmentStats(s.ctx)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -849,3 +856,16 @@ func (s *Server) loadCollectionFromRootCoord(ctx context.Context, collectionID i
|
|||
s.meta.AddCollection(collInfo)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Server) reCollectSegmentStats(ctx context.Context) {
|
||||
if s.channelManager == nil {
|
||||
log.Error("null channel manager found, which should NOT happen in non-testing environment")
|
||||
return
|
||||
}
|
||||
nodes := s.channelManager.store.GetNodes()
|
||||
log.Info("re-collecting segment stats from DataNodes",
|
||||
zap.Int64s("DataNode IDs", nodes))
|
||||
for _, node := range nodes {
|
||||
s.cluster.ReCollectSegmentStats(ctx, node)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2538,7 +2538,6 @@ func newTestServer(t *testing.T, receiveCh chan interface{}, opts ...Option) *Se
|
|||
return newMockRootCoordService(), nil
|
||||
}
|
||||
|
||||
assert.Nil(t, err)
|
||||
err = svr.Init()
|
||||
assert.Nil(t, err)
|
||||
err = svr.Start()
|
||||
|
|
|
@ -24,6 +24,7 @@ import (
|
|||
|
||||
grpcdatanodeclient "github.com/milvus-io/milvus/internal/distributed/datanode/client"
|
||||
"github.com/milvus-io/milvus/internal/log"
|
||||
"github.com/milvus-io/milvus/internal/proto/commonpb"
|
||||
"github.com/milvus-io/milvus/internal/proto/datapb"
|
||||
"github.com/milvus-io/milvus/internal/types"
|
||||
"go.uber.org/zap"
|
||||
|
@ -32,7 +33,8 @@ import (
|
|||
const (
|
||||
flushTimeout = 5 * time.Second
|
||||
// TODO: evaluate and update import timeout.
|
||||
importTimeout = 3 * time.Hour
|
||||
importTimeout = 3 * time.Hour
|
||||
reCollectTimeout = 5 * time.Second
|
||||
)
|
||||
|
||||
// SessionManager provides the grpc interfaces of cluster
|
||||
|
@ -172,6 +174,35 @@ func (c *SessionManager) execImport(ctx context.Context, nodeID int64, itr *data
|
|||
log.Info("success to import", zap.Int64("node", nodeID), zap.Any("import task", itr))
|
||||
}
|
||||
|
||||
// ReCollectSegmentStats collects segment stats info from DataNodes, after DataCoord reboots.
|
||||
func (c *SessionManager) ReCollectSegmentStats(ctx context.Context, nodeID int64) {
|
||||
go c.execReCollectSegmentStats(ctx, nodeID)
|
||||
}
|
||||
|
||||
func (c *SessionManager) execReCollectSegmentStats(ctx context.Context, nodeID int64) {
|
||||
cli, err := c.getClient(ctx, nodeID)
|
||||
if err != nil {
|
||||
log.Warn("failed to get dataNode client", zap.Int64("DataNode ID", nodeID), zap.Error(err))
|
||||
return
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(ctx, reCollectTimeout)
|
||||
defer cancel()
|
||||
resp, err := cli.ResendSegmentStats(ctx, &datapb.ResendSegmentStatsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_ResendSegmentStats,
|
||||
SourceID: Params.DataCoordCfg.GetNodeID(),
|
||||
},
|
||||
})
|
||||
if err := VerifyResponse(resp, err); err != nil {
|
||||
log.Error("re-collect segment stats call failed",
|
||||
zap.Int64("DataNode ID", nodeID), zap.Error(err))
|
||||
} else {
|
||||
log.Info("re-collect segment stats call succeeded",
|
||||
zap.Int64("DataNode ID", nodeID),
|
||||
zap.Int64s("segment stat collected", resp.GetSegResent()))
|
||||
}
|
||||
}
|
||||
|
||||
func (c *SessionManager) getClient(ctx context.Context, nodeID int64) (types.DataNode, error) {
|
||||
c.sessions.RLock()
|
||||
session, ok := c.sessions.data[nodeID]
|
||||
|
|
|
@ -629,6 +629,23 @@ func (node *DataNode) FlushSegments(ctx context.Context, req *datapb.FlushSegmen
|
|||
}, nil
|
||||
}
|
||||
|
||||
// ResendSegmentStats resend un-flushed segment stats back upstream to DataCoord by resending DataNode time tick message.
|
||||
// It returns a list of segments to be sent.
|
||||
func (node *DataNode) ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
log.Info("start resending segment stats, if any",
|
||||
zap.Int64("DataNode ID", node.NodeID))
|
||||
segResent := node.flowgraphManager.resendTT()
|
||||
log.Info("found segment(s) with stats to resend",
|
||||
zap.Int64s("segment IDs", segResent))
|
||||
return &datapb.ResendSegmentStatsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
},
|
||||
SegResent: segResent,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Stop will release DataNode resources and shutdown datanode
|
||||
func (node *DataNode) Stop() error {
|
||||
// https://github.com/milvus-io/milvus/issues/12282
|
||||
|
|
|
@ -742,3 +742,59 @@ func TestDataNode_GetComponentStates(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
}
|
||||
|
||||
func TestDataNode_ResendSegmentStats(t *testing.T) {
|
||||
etcdCli, err := etcd.GetEtcdClient(&Params.EtcdCfg)
|
||||
assert.Nil(t, err)
|
||||
defer etcdCli.Close()
|
||||
dmChannelName := "fake-by-dev-rootcoord-dml-channel-test-ResendSegmentStats"
|
||||
|
||||
node := newIDLEDataNodeMock(context.TODO(), schemapb.DataType_Int64)
|
||||
node.SetEtcdClient(etcdCli)
|
||||
err = node.Init()
|
||||
assert.Nil(t, err)
|
||||
err = node.Start()
|
||||
assert.Nil(t, err)
|
||||
defer func() {
|
||||
err := node.Stop()
|
||||
assert.Nil(t, err)
|
||||
}()
|
||||
|
||||
vChan := &datapb.VchannelInfo{
|
||||
CollectionID: 1,
|
||||
ChannelName: dmChannelName,
|
||||
UnflushedSegments: []*datapb.SegmentInfo{},
|
||||
FlushedSegments: []*datapb.SegmentInfo{},
|
||||
}
|
||||
|
||||
err = node.flowgraphManager.addAndStart(node, vChan)
|
||||
require.Nil(t, err)
|
||||
|
||||
fgService, ok := node.flowgraphManager.getFlowgraphService(dmChannelName)
|
||||
assert.True(t, ok)
|
||||
|
||||
err = fgService.replica.addNewSegment(0, 1, 1, dmChannelName, &internalpb.MsgPosition{}, &internalpb.MsgPosition{})
|
||||
assert.Nil(t, err)
|
||||
err = fgService.replica.addNewSegment(1, 1, 2, dmChannelName, &internalpb.MsgPosition{}, &internalpb.MsgPosition{})
|
||||
assert.Nil(t, err)
|
||||
err = fgService.replica.addNewSegment(2, 1, 3, dmChannelName, &internalpb.MsgPosition{}, &internalpb.MsgPosition{})
|
||||
assert.Nil(t, err)
|
||||
|
||||
req := &datapb.ResendSegmentStatsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
}
|
||||
|
||||
wg := sync.WaitGroup{}
|
||||
wg.Add(2)
|
||||
|
||||
resp, err := node.ResendSegmentStats(node.ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
|
||||
assert.ElementsMatch(t, []UniqueID{0, 1, 2}, resp.GetSegResent())
|
||||
|
||||
// Duplicate call.
|
||||
resp, err = node.ResendSegmentStats(node.ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
|
||||
assert.ElementsMatch(t, []UniqueID{0, 1, 2}, resp.GetSegResent())
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ type dataSyncService struct {
|
|||
cancelFn context.CancelFunc
|
||||
fg *flowgraph.TimeTickedFlowGraph // internal flowgraph processes insert/delta messages
|
||||
flushCh chan flushMsg // chan to notify flush
|
||||
resendTTCh chan resendTTMsg // chan to ask for resending DataNode time tick message.
|
||||
replica Replica // segment replica stores meta
|
||||
idAllocator allocatorInterface // id/timestamp allocator
|
||||
msFactory msgstream.Factory
|
||||
|
@ -54,6 +55,7 @@ type dataSyncService struct {
|
|||
|
||||
func newDataSyncService(ctx context.Context,
|
||||
flushCh chan flushMsg,
|
||||
resendTTCh chan resendTTMsg,
|
||||
replica Replica,
|
||||
alloc allocatorInterface,
|
||||
factory msgstream.Factory,
|
||||
|
@ -76,6 +78,7 @@ func newDataSyncService(ctx context.Context,
|
|||
cancelFn: cancel,
|
||||
fg: nil,
|
||||
flushCh: flushCh,
|
||||
resendTTCh: resendTTCh,
|
||||
replica: replica,
|
||||
idAllocator: alloc,
|
||||
msFactory: factory,
|
||||
|
@ -223,6 +226,7 @@ func (dsService *dataSyncService) initNodes(vchanInfo *datapb.VchannelInfo) erro
|
|||
dsService.ctx,
|
||||
dsService.collectionID,
|
||||
dsService.flushCh,
|
||||
dsService.resendTTCh,
|
||||
dsService.flushManager,
|
||||
dsService.flushingSegCache,
|
||||
c,
|
||||
|
|
|
@ -146,6 +146,7 @@ func TestDataSyncService_newDataSyncService(te *testing.T) {
|
|||
|
||||
ds, err := newDataSyncService(ctx,
|
||||
make(chan flushMsg),
|
||||
make(chan resendTTMsg),
|
||||
replica,
|
||||
NewAllocatorFactory(),
|
||||
test.inMsgFactory,
|
||||
|
@ -192,6 +193,7 @@ func TestDataSyncService_Start(t *testing.T) {
|
|||
collectionID := UniqueID(1)
|
||||
|
||||
flushChan := make(chan flushMsg, 100)
|
||||
resendTTChan := make(chan resendTTMsg, 100)
|
||||
cm := storage.NewLocalChunkManager(storage.RootPath(dataSyncServiceTestDir))
|
||||
defer cm.RemoveWithPrefix("")
|
||||
replica, err := newReplica(context.Background(), mockRootCoord, cm, collectionID)
|
||||
|
@ -228,7 +230,7 @@ func TestDataSyncService_Start(t *testing.T) {
|
|||
}
|
||||
|
||||
signalCh := make(chan string, 100)
|
||||
sync, err := newDataSyncService(ctx, flushChan, replica, allocFactory, factory, vchan, signalCh, &DataCoordFactory{}, newCache(), cm, newCompactionExecutor())
|
||||
sync, err := newDataSyncService(ctx, flushChan, resendTTChan, replica, allocFactory, factory, vchan, signalCh, &DataCoordFactory{}, newCache(), cm, newCompactionExecutor())
|
||||
|
||||
assert.Nil(t, err)
|
||||
// sync.replica.addCollection(collMeta.ID, collMeta.Schema)
|
||||
|
|
|
@ -61,6 +61,7 @@ type insertBufferNode struct {
|
|||
|
||||
flushMap sync.Map
|
||||
flushChan <-chan flushMsg
|
||||
resendTTChan <-chan resendTTMsg
|
||||
flushingSegCache *Cache
|
||||
flushManager flushManager
|
||||
|
||||
|
@ -347,6 +348,12 @@ func (ibNode *insertBufferNode) Operate(in []Msg) []Msg {
|
|||
dropped: false,
|
||||
})
|
||||
}
|
||||
case resendTTMsg := <-ibNode.resendTTChan:
|
||||
log.Info("resend TT msg received in insertBufferNode",
|
||||
zap.Int64s("segment IDs", resendTTMsg.segmentIDs))
|
||||
if err := ibNode.writeHardTimeTick(fgMsg.timeRange.timestampMax, resendTTMsg.segmentIDs); err != nil {
|
||||
log.Error("send hard time tick into pulsar channel failed", zap.Error(err))
|
||||
}
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
@ -520,8 +527,8 @@ func (ibNode *insertBufferNode) getCollectionandPartitionIDbySegID(segmentID Uni
|
|||
return ibNode.replica.getCollectionAndPartitionID(segmentID)
|
||||
}
|
||||
|
||||
func newInsertBufferNode(ctx context.Context, collID UniqueID, flushCh <-chan flushMsg, fm flushManager,
|
||||
flushingSegCache *Cache, config *nodeConfig) (*insertBufferNode, error) {
|
||||
func newInsertBufferNode(ctx context.Context, collID UniqueID, flushCh <-chan flushMsg, resendTTCh <-chan resendTTMsg,
|
||||
fm flushManager, flushingSegCache *Cache, config *nodeConfig) (*insertBufferNode, error) {
|
||||
|
||||
baseNode := BaseNode{}
|
||||
baseNode.SetMaxQueueLength(config.maxQueueLength)
|
||||
|
@ -581,6 +588,7 @@ func newInsertBufferNode(ctx context.Context, collID UniqueID, flushCh <-chan fl
|
|||
timeTickStream: wTtMsgStream,
|
||||
flushMap: sync.Map{},
|
||||
flushChan: flushCh,
|
||||
resendTTChan: resendTTCh,
|
||||
flushingSegCache: flushingSegCache,
|
||||
flushManager: fm,
|
||||
|
||||
|
|
|
@ -90,6 +90,7 @@ func TestFlowGraphInsertBufferNodeCreate(t *testing.T) {
|
|||
fm := NewRendezvousFlushManager(&allocator{}, cm, replica, func(*segmentFlushPack) {}, emptyFlushAndDropFunc)
|
||||
|
||||
flushChan := make(chan flushMsg, 100)
|
||||
resendTTChan := make(chan resendTTMsg, 100)
|
||||
|
||||
c := &nodeConfig{
|
||||
replica: replica,
|
||||
|
@ -98,7 +99,7 @@ func TestFlowGraphInsertBufferNodeCreate(t *testing.T) {
|
|||
vChannelName: "string",
|
||||
}
|
||||
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, fm, newCache(), c)
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, resendTTChan, fm, newCache(), c)
|
||||
assert.NotNil(t, iBNode)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
@ -112,7 +113,7 @@ func TestFlowGraphInsertBufferNodeCreate(t *testing.T) {
|
|||
cd: 0,
|
||||
}
|
||||
|
||||
_, err = newInsertBufferNode(ctx, collMeta.ID, flushChan, fm, newCache(), c)
|
||||
_, err = newInsertBufferNode(ctx, collMeta.ID, flushChan, resendTTChan, fm, newCache(), c)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
|
@ -176,6 +177,7 @@ func TestFlowGraphInsertBufferNode_Operate(t *testing.T) {
|
|||
fm := NewRendezvousFlushManager(NewAllocatorFactory(), cm, replica, func(*segmentFlushPack) {}, emptyFlushAndDropFunc)
|
||||
|
||||
flushChan := make(chan flushMsg, 100)
|
||||
resendTTChan := make(chan resendTTMsg, 100)
|
||||
c := &nodeConfig{
|
||||
replica: replica,
|
||||
msFactory: factory,
|
||||
|
@ -183,7 +185,7 @@ func TestFlowGraphInsertBufferNode_Operate(t *testing.T) {
|
|||
vChannelName: "string",
|
||||
}
|
||||
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, fm, newCache(), c)
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, resendTTChan, fm, newCache(), c)
|
||||
require.NoError(t, err)
|
||||
|
||||
// trigger log ts
|
||||
|
@ -199,6 +201,13 @@ func TestFlowGraphInsertBufferNode_Operate(t *testing.T) {
|
|||
inMsg := genFlowGraphInsertMsg(insertChannelName)
|
||||
assert.NotPanics(t, func() { iBNode.Operate([]flowgraph.Msg{&inMsg}) })
|
||||
|
||||
resendTTChan <- resendTTMsg{
|
||||
segmentIDs: []int64{0, 1, 2},
|
||||
}
|
||||
|
||||
inMsg = genFlowGraphInsertMsg(insertChannelName)
|
||||
assert.NotPanics(t, func() { iBNode.Operate([]flowgraph.Msg{&inMsg}) })
|
||||
|
||||
// test drop collection operate
|
||||
inMsg = genFlowGraphInsertMsg(insertChannelName)
|
||||
inMsg.dropCollection = true
|
||||
|
@ -420,13 +429,14 @@ func TestFlowGraphInsertBufferNode_AutoFlush(t *testing.T) {
|
|||
}, emptyFlushAndDropFunc)
|
||||
|
||||
flushChan := make(chan flushMsg, 100)
|
||||
resendTTChan := make(chan resendTTMsg, 100)
|
||||
c := &nodeConfig{
|
||||
replica: colRep,
|
||||
msFactory: factory,
|
||||
allocator: NewAllocatorFactory(),
|
||||
vChannelName: "string",
|
||||
}
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, fm, newCache(), c)
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, resendTTChan, fm, newCache(), c)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Auto flush number of rows set to 2
|
||||
|
@ -688,13 +698,14 @@ func TestInsertBufferNode_bufferInsertMsg(t *testing.T) {
|
|||
fm := NewRendezvousFlushManager(&allocator{}, cm, replica, func(*segmentFlushPack) {}, emptyFlushAndDropFunc)
|
||||
|
||||
flushChan := make(chan flushMsg, 100)
|
||||
resendTTChan := make(chan resendTTMsg, 100)
|
||||
c := &nodeConfig{
|
||||
replica: replica,
|
||||
msFactory: factory,
|
||||
allocator: NewAllocatorFactory(),
|
||||
vChannelName: "string",
|
||||
}
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, fm, newCache(), c)
|
||||
iBNode, err := newInsertBufferNode(ctx, collMeta.ID, flushChan, resendTTChan, fm, newCache(), c)
|
||||
require.NoError(t, err)
|
||||
|
||||
inMsg := genFlowGraphInsertMsg(insertChannelName)
|
||||
|
|
|
@ -55,7 +55,8 @@ func (fm *flowgraphManager) addAndStart(dn *DataNode, vchan *datapb.VchannelInfo
|
|||
|
||||
var alloc allocatorInterface = newAllocator(dn.rootCoord)
|
||||
|
||||
dataSyncService, err := newDataSyncService(dn.ctx, make(chan flushMsg, 100), replica, alloc, dn.factory, vchan, dn.clearSignal, dn.dataCoord, dn.segmentCache, dn.chunkManager, dn.compactionExecutor)
|
||||
dataSyncService, err := newDataSyncService(dn.ctx, make(chan flushMsg, 100), make(chan resendTTMsg, 100), replica,
|
||||
alloc, dn.factory, vchan, dn.clearSignal, dn.dataCoord, dn.segmentCache, dn.chunkManager, dn.compactionExecutor)
|
||||
if err != nil {
|
||||
log.Warn("new data sync service fail", zap.String("vChannelName", vchan.GetChannelName()), zap.Error(err))
|
||||
return err
|
||||
|
@ -104,6 +105,26 @@ func (fm *flowgraphManager) getFlushCh(segID UniqueID) (chan<- flushMsg, error)
|
|||
return nil, fmt.Errorf("cannot find segment %d in all flowgraphs", segID)
|
||||
}
|
||||
|
||||
// resendTT loops through flow graphs, looks for segments that are not flushed, and sends them to that flow graph's
|
||||
// `resendTTCh` channel so stats of these segments will be resent.
|
||||
func (fm *flowgraphManager) resendTT() []UniqueID {
|
||||
var unFlushedSegments []UniqueID
|
||||
fm.flowgraphs.Range(func(key, value interface{}) bool {
|
||||
fg := value.(*dataSyncService)
|
||||
segIDs := fg.replica.listNotFlushedSegmentIDs()
|
||||
if len(segIDs) > 0 {
|
||||
log.Info("un-flushed segments found, stats will be resend",
|
||||
zap.Int64s("segment IDs", segIDs))
|
||||
unFlushedSegments = append(unFlushedSegments, segIDs...)
|
||||
fg.resendTTCh <- resendTTMsg{
|
||||
segmentIDs: segIDs,
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
return unFlushedSegments
|
||||
}
|
||||
|
||||
func (fm *flowgraphManager) getFlowgraphService(vchan string) (*dataSyncService, bool) {
|
||||
fg, ok := fm.flowgraphs.Load(vchan)
|
||||
if ok {
|
||||
|
|
|
@ -53,3 +53,8 @@ type flushMsg struct {
|
|||
collectionID UniqueID
|
||||
flushed bool
|
||||
}
|
||||
|
||||
type resendTTMsg struct {
|
||||
msgID UniqueID
|
||||
segmentIDs []UniqueID
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ type Replica interface {
|
|||
getCollectionAndPartitionID(segID UniqueID) (collID, partitionID UniqueID, err error)
|
||||
|
||||
listAllSegmentIDs() []UniqueID
|
||||
listNotFlushedSegmentIDs() []UniqueID
|
||||
addNewSegment(segID, collID, partitionID UniqueID, channelName string, startPos, endPos *internalpb.MsgPosition) error
|
||||
addNormalSegment(segID, collID, partitionID UniqueID, channelName string, numOfRows int64, statsBinlog []*datapb.FieldBinlog, cp *segmentCheckPoint, recoverTs Timestamp) error
|
||||
filterSegments(channelName string, partitionID UniqueID) []*Segment
|
||||
|
@ -822,3 +823,20 @@ func (replica *SegmentReplica) listAllSegmentIDs() []UniqueID {
|
|||
|
||||
return segIDs
|
||||
}
|
||||
|
||||
func (replica *SegmentReplica) listNotFlushedSegmentIDs() []UniqueID {
|
||||
replica.segMu.RLock()
|
||||
defer replica.segMu.RUnlock()
|
||||
|
||||
var segIDs []UniqueID
|
||||
|
||||
for _, seg := range replica.newSegments {
|
||||
segIDs = append(segIDs, seg.segmentID)
|
||||
}
|
||||
|
||||
for _, seg := range replica.normalSegments {
|
||||
segIDs = append(segIDs, seg.segmentID)
|
||||
}
|
||||
|
||||
return segIDs
|
||||
}
|
||||
|
|
|
@ -198,3 +198,16 @@ func (c *Client) Import(ctx context.Context, req *datapb.ImportTaskRequest) (*co
|
|||
}
|
||||
return ret.(*commonpb.Status), err
|
||||
}
|
||||
|
||||
func (c *Client) ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
ret, err := c.grpcClient.ReCall(ctx, func(client interface{}) (interface{}, error) {
|
||||
if !funcutil.CheckCtxValid(ctx) {
|
||||
return nil, ctx.Err()
|
||||
}
|
||||
return client.(datapb.DataNodeClient).ResendSegmentStats(ctx, req)
|
||||
})
|
||||
if err != nil || ret == nil {
|
||||
return nil, err
|
||||
}
|
||||
return ret.(*datapb.ResendSegmentStatsResponse), err
|
||||
}
|
||||
|
|
|
@ -76,6 +76,12 @@ func Test_NewClient(t *testing.T) {
|
|||
|
||||
r6, err := client.Compaction(ctx, nil)
|
||||
retCheck(retNotNil, r6, err)
|
||||
|
||||
r7, err := client.Import(ctx, nil)
|
||||
retCheck(retNotNil, r7, err)
|
||||
|
||||
r8, err := client.ResendSegmentStats(ctx, nil)
|
||||
retCheck(retNotNil, r8, err)
|
||||
}
|
||||
|
||||
client.grpcClient = &mock.ClientBase{
|
||||
|
|
|
@ -357,3 +357,7 @@ func (s *Server) Compaction(ctx context.Context, request *datapb.CompactionPlan)
|
|||
func (s *Server) Import(ctx context.Context, request *datapb.ImportTaskRequest) (*commonpb.Status, error) {
|
||||
return s.datanode.Import(ctx, request)
|
||||
}
|
||||
|
||||
func (s *Server) ResendSegmentStats(ctx context.Context, request *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
return s.datanode.ResendSegmentStats(ctx, request)
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ type MockDataNode struct {
|
|||
regErr error
|
||||
strResp *milvuspb.StringResponse
|
||||
metricResp *milvuspb.GetMetricsResponse
|
||||
resendResp *datapb.ResendSegmentStatsResponse
|
||||
}
|
||||
|
||||
func (m *MockDataNode) Init() error {
|
||||
|
@ -115,6 +116,10 @@ func (m *MockDataNode) Import(ctx context.Context, req *datapb.ImportTaskRequest
|
|||
return m.status, m.err
|
||||
}
|
||||
|
||||
func (m *MockDataNode) ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
return m.resendResp, nil
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
type mockDataCoord struct {
|
||||
types.DataCoord
|
||||
|
@ -259,6 +264,15 @@ func Test_NewServer(t *testing.T) {
|
|||
assert.NotNil(t, resp)
|
||||
})
|
||||
|
||||
t.Run("ResendSegmentStats", func(t *testing.T) {
|
||||
server.datanode = &MockDataNode{
|
||||
resendResp: &datapb.ResendSegmentStatsResponse{},
|
||||
}
|
||||
resp, err := server.ResendSegmentStats(ctx, nil)
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, resp)
|
||||
})
|
||||
|
||||
err = server.Stop()
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
|
|
@ -152,6 +152,7 @@ enum MsgType {
|
|||
Insert = 400;
|
||||
Delete = 401;
|
||||
Flush = 402;
|
||||
ResendSegmentStats = 403;
|
||||
|
||||
/* QUERY */
|
||||
Search = 500;
|
||||
|
|
|
@ -287,9 +287,10 @@ const (
|
|||
MsgType_DescribeIndex MsgType = 301
|
||||
MsgType_DropIndex MsgType = 302
|
||||
// MANIPULATION REQUESTS
|
||||
MsgType_Insert MsgType = 400
|
||||
MsgType_Delete MsgType = 401
|
||||
MsgType_Flush MsgType = 402
|
||||
MsgType_Insert MsgType = 400
|
||||
MsgType_Delete MsgType = 401
|
||||
MsgType_Flush MsgType = 402
|
||||
MsgType_ResendSegmentStats MsgType = 403
|
||||
// QUERY
|
||||
MsgType_Search MsgType = 500
|
||||
MsgType_SearchResult MsgType = 501
|
||||
|
@ -363,6 +364,7 @@ var MsgType_name = map[int32]string{
|
|||
400: "Insert",
|
||||
401: "Delete",
|
||||
402: "Flush",
|
||||
403: "ResendSegmentStats",
|
||||
500: "Search",
|
||||
501: "SearchResult",
|
||||
502: "GetIndexState",
|
||||
|
@ -432,6 +434,7 @@ var MsgType_value = map[string]int32{
|
|||
"Insert": 400,
|
||||
"Delete": 401,
|
||||
"Flush": 402,
|
||||
"ResendSegmentStats": 403,
|
||||
"Search": 500,
|
||||
"SearchResult": 501,
|
||||
"GetIndexState": 502,
|
||||
|
@ -1101,122 +1104,123 @@ func init() {
|
|||
func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
|
||||
|
||||
var fileDescriptor_555bd8c177793206 = []byte{
|
||||
// 1869 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x5b, 0x73, 0x1b, 0x49,
|
||||
0x15, 0xf6, 0x68, 0x14, 0xcb, 0x6a, 0xc9, 0x72, 0xa7, 0xed, 0x38, 0xda, 0xac, 0x77, 0x31, 0x2a,
|
||||
0xa8, 0x72, 0xb9, 0x6a, 0x13, 0x48, 0xaa, 0x80, 0x97, 0xa5, 0xca, 0x92, 0x6c, 0x47, 0x15, 0xdb,
|
||||
0x11, 0x92, 0x9d, 0xdd, 0xa2, 0x0a, 0x52, 0xed, 0x99, 0x63, 0xa9, 0xc9, 0xcc, 0xf4, 0xd0, 0xdd,
|
||||
0xe3, 0x58, 0x3c, 0x2d, 0xcb, 0x1f, 0x80, 0xbc, 0xf0, 0xca, 0x0f, 0x00, 0x8a, 0x3b, 0xfc, 0x04,
|
||||
0xee, 0xcf, 0x2c, 0xf7, 0x47, 0x7e, 0x00, 0xd7, 0xbd, 0x52, 0xa7, 0x67, 0x34, 0x33, 0x4e, 0xb2,
|
||||
0xc5, 0x03, 0x6f, 0x7d, 0xbe, 0x73, 0xed, 0xd3, 0xe7, 0xd2, 0xa4, 0xe9, 0xc9, 0x30, 0x94, 0xd1,
|
||||
0xcd, 0x58, 0x49, 0x23, 0xd9, 0x6a, 0x28, 0x82, 0xf3, 0x44, 0xa7, 0xd4, 0xcd, 0x94, 0xd5, 0x79,
|
||||
0x48, 0x16, 0xc7, 0x86, 0x9b, 0x44, 0xb3, 0x57, 0x09, 0x01, 0xa5, 0xa4, 0x7a, 0xe8, 0x49, 0x1f,
|
||||
0xda, 0xce, 0xa6, 0xb3, 0xd5, 0xba, 0xfd, 0xf2, 0xcd, 0xe7, 0xe8, 0xdc, 0xdc, 0x45, 0xb1, 0x9e,
|
||||
0xf4, 0x61, 0x54, 0x87, 0xf9, 0x91, 0xad, 0x93, 0x45, 0x05, 0x5c, 0xcb, 0xa8, 0x5d, 0xd9, 0x74,
|
||||
0xb6, 0xea, 0xa3, 0x8c, 0xea, 0x7c, 0x8a, 0x34, 0xef, 0xc1, 0xec, 0x01, 0x0f, 0x12, 0x18, 0x72,
|
||||
0xa1, 0x18, 0x25, 0xee, 0x23, 0x98, 0x59, 0xfb, 0xf5, 0x11, 0x1e, 0xd9, 0x1a, 0xb9, 0x72, 0x8e,
|
||||
0xec, 0x4c, 0x31, 0x25, 0x3a, 0x77, 0x48, 0xe3, 0x1e, 0xcc, 0xfa, 0xdc, 0xf0, 0x0f, 0x51, 0x63,
|
||||
0xa4, 0xea, 0x73, 0xc3, 0xad, 0x56, 0x73, 0x64, 0xcf, 0x9d, 0x0d, 0x52, 0xed, 0x06, 0xf2, 0xb4,
|
||||
0x30, 0xe9, 0x58, 0x66, 0x66, 0xf2, 0x9c, 0xd0, 0x61, 0xc0, 0x3d, 0x98, 0xca, 0xc0, 0x07, 0x65,
|
||||
0x43, 0x42, 0xbb, 0x86, 0x4f, 0xe6, 0x76, 0x0d, 0x9f, 0xb0, 0xcf, 0x90, 0xaa, 0x99, 0xc5, 0x69,
|
||||
0x34, 0xad, 0xdb, 0x1f, 0x7b, 0x6e, 0x06, 0x4a, 0x66, 0x8e, 0x67, 0x31, 0x8c, 0xac, 0x06, 0xa6,
|
||||
0xc0, 0x3a, 0xd2, 0x6d, 0x77, 0xd3, 0xdd, 0x6a, 0x8e, 0x32, 0xaa, 0xf3, 0x85, 0x4b, 0x7e, 0xf7,
|
||||
0x95, 0x4c, 0x62, 0x36, 0x20, 0xcd, 0xb8, 0xc0, 0x74, 0xdb, 0xd9, 0x74, 0xb7, 0x1a, 0xb7, 0x3f,
|
||||
0xfe, 0xbf, 0xbc, 0xd9, 0xa0, 0x47, 0x97, 0x54, 0x3b, 0xaf, 0x90, 0xda, 0x8e, 0xef, 0x2b, 0xd0,
|
||||
0x9a, 0xb5, 0x48, 0x45, 0xc4, 0xd9, 0x65, 0x2a, 0x22, 0xc6, 0x1c, 0xc5, 0x52, 0x19, 0x7b, 0x17,
|
||||
0x77, 0x64, 0xcf, 0x9d, 0x27, 0x0e, 0xa9, 0x1d, 0xea, 0x49, 0x97, 0x6b, 0x60, 0x9f, 0x26, 0x4b,
|
||||
0xa1, 0x9e, 0x3c, 0xb4, 0xf7, 0x4d, 0x5f, 0x7c, 0xe3, 0xb9, 0x11, 0x1c, 0xea, 0x89, 0xbd, 0x67,
|
||||
0x2d, 0x4c, 0x0f, 0x98, 0xe0, 0x50, 0x4f, 0x06, 0xfd, 0xcc, 0x72, 0x4a, 0xb0, 0x0d, 0x52, 0x37,
|
||||
0x22, 0x04, 0x6d, 0x78, 0x18, 0xb7, 0xdd, 0x4d, 0x67, 0xab, 0x3a, 0x2a, 0x00, 0x76, 0x83, 0x2c,
|
||||
0x69, 0x99, 0x28, 0x0f, 0x06, 0xfd, 0x76, 0xd5, 0xaa, 0xe5, 0x74, 0xe7, 0x55, 0x52, 0x3f, 0xd4,
|
||||
0x93, 0xbb, 0xc0, 0x7d, 0x50, 0xec, 0x13, 0xa4, 0x7a, 0xca, 0x75, 0x1a, 0x51, 0xe3, 0xc3, 0x23,
|
||||
0xc2, 0x1b, 0x8c, 0xac, 0x64, 0xe7, 0x8b, 0xa4, 0xd9, 0x3f, 0x3c, 0xf8, 0x3f, 0x2c, 0x60, 0xe8,
|
||||
0x7a, 0xca, 0x95, 0x7f, 0xc4, 0xc3, 0x79, 0x21, 0x16, 0xc0, 0xf6, 0x93, 0x45, 0x52, 0xcf, 0xab,
|
||||
0x9e, 0x35, 0x48, 0x6d, 0x9c, 0x78, 0x1e, 0x68, 0x4d, 0x17, 0xd8, 0x2a, 0x59, 0x39, 0x89, 0xe0,
|
||||
0x22, 0x06, 0xcf, 0x80, 0x6f, 0x65, 0xa8, 0xc3, 0xae, 0x92, 0xe5, 0x9e, 0x8c, 0x22, 0xf0, 0xcc,
|
||||
0x1e, 0x17, 0x01, 0xf8, 0xb4, 0xc2, 0xd6, 0x08, 0x1d, 0x82, 0x0a, 0x85, 0xd6, 0x42, 0x46, 0x7d,
|
||||
0x88, 0x04, 0xf8, 0xd4, 0x65, 0xd7, 0xc9, 0x6a, 0x4f, 0x06, 0x01, 0x78, 0x46, 0xc8, 0xe8, 0x48,
|
||||
0x9a, 0xdd, 0x0b, 0xa1, 0x8d, 0xa6, 0x55, 0x34, 0x3b, 0x08, 0x02, 0x98, 0xf0, 0x60, 0x47, 0x4d,
|
||||
0x92, 0x10, 0x22, 0x43, 0xaf, 0xa0, 0x8d, 0x0c, 0xec, 0x8b, 0x10, 0x22, 0xb4, 0x44, 0x6b, 0x25,
|
||||
0x74, 0x10, 0xf9, 0x70, 0x81, 0xef, 0x43, 0x97, 0xd8, 0x0b, 0xe4, 0x5a, 0x86, 0x96, 0x1c, 0xf0,
|
||||
0x10, 0x68, 0x9d, 0xad, 0x90, 0x46, 0xc6, 0x3a, 0xbe, 0x3f, 0xbc, 0x47, 0x49, 0xc9, 0xc2, 0x48,
|
||||
0x3e, 0x1e, 0x81, 0x27, 0x95, 0x4f, 0x1b, 0xa5, 0x10, 0x1e, 0x80, 0x67, 0xa4, 0x1a, 0xf4, 0x69,
|
||||
0x13, 0x03, 0xce, 0xc0, 0x31, 0x70, 0xe5, 0x4d, 0x47, 0xa0, 0x93, 0xc0, 0xd0, 0x65, 0x46, 0x49,
|
||||
0x73, 0x4f, 0x04, 0x70, 0x24, 0xcd, 0x9e, 0x4c, 0x22, 0x9f, 0xb6, 0x58, 0x8b, 0x90, 0x43, 0x30,
|
||||
0x3c, 0xcb, 0xc0, 0x0a, 0xba, 0xed, 0x71, 0x6f, 0x0a, 0x19, 0x40, 0xd9, 0x3a, 0x61, 0x3d, 0x1e,
|
||||
0x45, 0xd2, 0xf4, 0x14, 0x70, 0x03, 0x7b, 0xb6, 0x9e, 0xe9, 0x55, 0x0c, 0xe7, 0x12, 0x2e, 0x02,
|
||||
0xa0, 0xac, 0x90, 0xee, 0x43, 0x00, 0xb9, 0xf4, 0x6a, 0x21, 0x9d, 0xe1, 0x28, 0xbd, 0x86, 0xc1,
|
||||
0x77, 0x13, 0x11, 0xf8, 0x36, 0x25, 0xe9, 0xb3, 0x5c, 0xc3, 0x18, 0xb3, 0xe0, 0x8f, 0x0e, 0x06,
|
||||
0xe3, 0x63, 0xba, 0xce, 0xae, 0x91, 0xab, 0x19, 0x72, 0x08, 0x46, 0x09, 0xcf, 0x26, 0xef, 0x3a,
|
||||
0x86, 0x7a, 0x3f, 0x31, 0xf7, 0xcf, 0x0e, 0x21, 0x94, 0x6a, 0x46, 0xdb, 0xf8, 0xa0, 0xd6, 0xd2,
|
||||
0xfc, 0x89, 0xe8, 0x0b, 0xe8, 0x61, 0x37, 0x8c, 0xcd, 0xac, 0x48, 0x2f, 0xbd, 0xc1, 0x5e, 0x24,
|
||||
0xd7, 0x4f, 0x62, 0x9f, 0x1b, 0x18, 0x84, 0xd8, 0x6c, 0xc7, 0x5c, 0x3f, 0xc2, 0xeb, 0x26, 0x0a,
|
||||
0xe8, 0x8b, 0xec, 0x06, 0x59, 0xbf, 0xfc, 0x16, 0x79, 0xb2, 0x36, 0x50, 0x31, 0xbd, 0x6d, 0x4f,
|
||||
0x81, 0x0f, 0x91, 0x11, 0x3c, 0x98, 0x2b, 0xbe, 0x54, 0x58, 0x7d, 0x96, 0xf9, 0x32, 0x32, 0xd3,
|
||||
0x9b, 0x3f, 0xcb, 0xfc, 0x08, 0x6b, 0x93, 0xb5, 0x7d, 0x30, 0xcf, 0x72, 0x36, 0x91, 0x73, 0x20,
|
||||
0xb4, 0x65, 0x9d, 0x68, 0x50, 0x7a, 0xce, 0xf9, 0x28, 0x63, 0xa4, 0x75, 0x24, 0xcd, 0x18, 0x8b,
|
||||
0xff, 0xc0, 0xb6, 0x13, 0xed, 0x30, 0x46, 0x96, 0xfb, 0xfd, 0x11, 0x7c, 0x39, 0x01, 0x6d, 0x46,
|
||||
0xdc, 0x03, 0xfa, 0xb7, 0xda, 0xf6, 0xeb, 0x84, 0xd8, 0x9c, 0xe0, 0xfe, 0x00, 0xd4, 0x2a, 0xa8,
|
||||
0x23, 0x19, 0x01, 0x5d, 0x60, 0x4d, 0xb2, 0x74, 0x12, 0x09, 0xad, 0x13, 0xf0, 0xa9, 0x83, 0xf5,
|
||||
0x30, 0x88, 0x86, 0x4a, 0x4e, 0x70, 0x54, 0xd1, 0x0a, 0x72, 0xf7, 0x44, 0x24, 0xf4, 0xd4, 0x76,
|
||||
0x02, 0x21, 0x8b, 0x59, 0x61, 0x54, 0xb7, 0xdf, 0x74, 0x48, 0x73, 0x0c, 0x13, 0xac, 0xfa, 0xd4,
|
||||
0xf8, 0x1a, 0xa1, 0x65, 0xba, 0x30, 0x9f, 0xbf, 0x87, 0x83, 0x5d, 0xb9, 0xaf, 0xe4, 0x63, 0x11,
|
||||
0x4d, 0x68, 0x05, 0xad, 0x8d, 0x81, 0x07, 0xd6, 0x72, 0x83, 0xd4, 0xf6, 0x82, 0xc4, 0xba, 0xa9,
|
||||
0x5a, 0xa7, 0x48, 0xa0, 0xd8, 0x15, 0x64, 0xf5, 0x95, 0x8c, 0x63, 0xf0, 0xe9, 0x22, 0x5b, 0x26,
|
||||
0xf5, 0xf4, 0xd5, 0x90, 0x57, 0xdb, 0xfe, 0x2c, 0x59, 0x79, 0x6a, 0xcc, 0xb3, 0x25, 0x52, 0xcd,
|
||||
0x5c, 0x53, 0xd2, 0xec, 0x8a, 0x88, 0xab, 0x59, 0xda, 0x1a, 0xd4, 0xc7, 0x92, 0xd9, 0x0b, 0x24,
|
||||
0x37, 0x19, 0x00, 0xdb, 0x6f, 0x11, 0x3b, 0x67, 0xad, 0xe2, 0x32, 0xa9, 0x9f, 0x44, 0x3e, 0x9c,
|
||||
0x89, 0x08, 0x7c, 0xba, 0x60, 0x4b, 0x36, 0x7d, 0xec, 0xa2, 0x76, 0x7c, 0xcc, 0x20, 0x06, 0x53,
|
||||
0xc2, 0x00, 0xeb, 0xee, 0x2e, 0xd7, 0x25, 0xe8, 0x0c, 0xfb, 0xa0, 0x0f, 0xda, 0x53, 0xe2, 0xb4,
|
||||
0xac, 0x3e, 0xc1, 0x7a, 0x1c, 0x4f, 0xe5, 0xe3, 0x02, 0xd3, 0x74, 0x8a, 0x9e, 0xf6, 0xc1, 0x8c,
|
||||
0x67, 0xda, 0x40, 0xd8, 0x93, 0xd1, 0x99, 0x98, 0x68, 0x2a, 0xd0, 0xd3, 0x81, 0xe4, 0x7e, 0x49,
|
||||
0xfd, 0x4b, 0xd8, 0x09, 0x23, 0x08, 0x80, 0xeb, 0xb2, 0xd5, 0x47, 0xb6, 0x69, 0x6d, 0xa8, 0x3b,
|
||||
0x81, 0xe0, 0x9a, 0x06, 0x78, 0x15, 0x8c, 0x32, 0x25, 0x43, 0x7c, 0xd4, 0x9d, 0xc0, 0x80, 0x4a,
|
||||
0xe9, 0x88, 0xad, 0x91, 0x95, 0x54, 0x7e, 0xc8, 0x95, 0x11, 0xd6, 0xc8, 0xcf, 0x1d, 0x5b, 0x3e,
|
||||
0x4a, 0xc6, 0x05, 0xf6, 0x0b, 0x9c, 0x91, 0xcd, 0xbb, 0x5c, 0x17, 0xd0, 0x2f, 0x1d, 0xb6, 0x4e,
|
||||
0xae, 0xce, 0xaf, 0x56, 0xe0, 0xbf, 0x72, 0xd8, 0x2a, 0x69, 0xe1, 0xd5, 0x72, 0x4c, 0xd3, 0x5f,
|
||||
0x5b, 0x10, 0x2f, 0x51, 0x02, 0x7f, 0x63, 0x2d, 0x64, 0xb7, 0x28, 0xe1, 0xbf, 0xb5, 0xce, 0xd0,
|
||||
0x42, 0x56, 0x44, 0x9a, 0xbe, 0xed, 0x60, 0xa4, 0x73, 0x67, 0x19, 0x4c, 0xdf, 0xb1, 0x82, 0x68,
|
||||
0x35, 0x17, 0x7c, 0xd7, 0x0a, 0x66, 0x36, 0x73, 0xf4, 0x3d, 0x8b, 0xde, 0xe5, 0x91, 0x2f, 0xcf,
|
||||
0xce, 0x72, 0xf4, 0x7d, 0x87, 0xb5, 0xc9, 0x2a, 0xaa, 0x77, 0x79, 0xc0, 0x23, 0xaf, 0x90, 0xff,
|
||||
0xc0, 0x61, 0xd7, 0x08, 0x7d, 0xca, 0x9d, 0xa6, 0x6f, 0x54, 0x18, 0x9d, 0xe7, 0xd7, 0x36, 0x0f,
|
||||
0xfd, 0x76, 0xc5, 0xe6, 0x2a, 0x13, 0x4c, 0xb1, 0xef, 0x54, 0x58, 0x2b, 0x4d, 0x7a, 0x4a, 0x7f,
|
||||
0xb7, 0xc2, 0x1a, 0x64, 0x71, 0x10, 0x69, 0x50, 0x86, 0x7e, 0x1d, 0xeb, 0x7b, 0x31, 0x1d, 0x00,
|
||||
0xf4, 0x1b, 0xd8, 0x46, 0x57, 0x6c, 0x7d, 0xd3, 0x27, 0x96, 0x91, 0x0e, 0x69, 0xfa, 0x77, 0xd7,
|
||||
0x66, 0xa0, 0x3c, 0xb1, 0xff, 0xe1, 0xa2, 0xa7, 0x7d, 0x30, 0x45, 0xd7, 0xd2, 0x7f, 0xba, 0xec,
|
||||
0x06, 0xb9, 0x36, 0xc7, 0xec, 0xfc, 0xcc, 0xfb, 0xf5, 0x5f, 0x2e, 0xdb, 0x20, 0xd7, 0x71, 0x98,
|
||||
0xe4, 0xe5, 0x81, 0x4a, 0x42, 0x1b, 0xe1, 0x69, 0xfa, 0x6f, 0x97, 0xbd, 0x48, 0xd6, 0xf7, 0xc1,
|
||||
0xe4, 0x69, 0x2f, 0x31, 0xff, 0xe3, 0xb2, 0x65, 0xb2, 0x34, 0xc2, 0x01, 0x0b, 0xe7, 0x40, 0xdf,
|
||||
0x76, 0xf1, 0xed, 0xe6, 0x64, 0x16, 0xce, 0x3b, 0x2e, 0x66, 0xf4, 0x35, 0x6e, 0xbc, 0x69, 0x3f,
|
||||
0xec, 0x4d, 0x79, 0x14, 0x41, 0xa0, 0xe9, 0xbb, 0x2e, 0xe6, 0x6d, 0x04, 0xa1, 0x3c, 0x87, 0x12,
|
||||
0xfc, 0x1e, 0x2e, 0x4e, 0x66, 0x85, 0x3f, 0x97, 0x80, 0x9a, 0xe5, 0x8c, 0xf7, 0x5d, 0x7c, 0x81,
|
||||
0x54, 0xfe, 0x32, 0xe7, 0x03, 0x97, 0xbd, 0x44, 0xda, 0xe9, 0x4c, 0x98, 0xe7, 0x1f, 0x99, 0x13,
|
||||
0x18, 0x44, 0x67, 0x92, 0xbe, 0x51, 0xcd, 0x2d, 0xf6, 0x21, 0x30, 0x3c, 0xd7, 0xfb, 0x6a, 0x15,
|
||||
0xe3, 0xc2, 0x1e, 0x2a, 0xe6, 0xa1, 0xa6, 0x6f, 0x56, 0xf1, 0xe1, 0xf6, 0xc1, 0x8c, 0x20, 0x0e,
|
||||
0x84, 0xc7, 0x35, 0xfd, 0x9a, 0x45, 0x32, 0xcb, 0xd6, 0xe4, 0xef, 0xaa, 0x6c, 0x85, 0x90, 0xb4,
|
||||
0xf5, 0x2c, 0xf0, 0xd6, 0xdc, 0x14, 0x6e, 0xd8, 0x73, 0x50, 0x33, 0x8b, 0xfe, 0x3e, 0x77, 0x50,
|
||||
0x1a, 0x70, 0xf4, 0x0f, 0x55, 0x4c, 0xd9, 0xb1, 0x08, 0xe1, 0x58, 0x78, 0x8f, 0xe8, 0xf7, 0xea,
|
||||
0x98, 0x32, 0x7b, 0xa3, 0x23, 0xe9, 0x03, 0xca, 0x68, 0xfa, 0xfd, 0x3a, 0xd6, 0x05, 0x96, 0x5b,
|
||||
0x5a, 0x17, 0x3f, 0xb0, 0x74, 0x36, 0xa4, 0x07, 0x7d, 0xfa, 0x43, 0xdc, 0xf4, 0x24, 0xa3, 0x8f,
|
||||
0xc7, 0xf7, 0xe9, 0x8f, 0xea, 0xe8, 0x6a, 0x27, 0x08, 0xa4, 0xc7, 0x4d, 0x5e, 0xf4, 0x3f, 0xae,
|
||||
0x63, 0xd7, 0x94, 0xbc, 0x67, 0xaf, 0xf6, 0x93, 0x3a, 0xe6, 0x3e, 0xc3, 0x6d, 0x4d, 0xf5, 0x71,
|
||||
0xf6, 0xfd, 0xd4, 0x5a, 0xc5, 0x7f, 0x39, 0x46, 0x72, 0x6c, 0xe8, 0xcf, 0xac, 0xdc, 0xd3, 0xcb,
|
||||
0x8b, 0xfe, 0xb1, 0x91, 0xd5, 0x57, 0x09, 0xfb, 0x53, 0x23, 0x6d, 0x83, 0xcb, 0xdb, 0x8a, 0xfe,
|
||||
0xd9, 0xc2, 0x4f, 0x6f, 0x38, 0xfa, 0x97, 0x06, 0x06, 0x56, 0x5e, 0x52, 0x11, 0x0f, 0x41, 0xd3,
|
||||
0xbf, 0x36, 0xb6, 0x3b, 0xa4, 0xd6, 0xd7, 0x81, 0x1d, 0xad, 0x35, 0xe2, 0xf6, 0x75, 0x40, 0x17,
|
||||
0x70, 0x12, 0x75, 0xa5, 0x0c, 0x76, 0x2f, 0x62, 0xf5, 0xe0, 0x93, 0xd4, 0xd9, 0xee, 0x92, 0x95,
|
||||
0x9e, 0x0c, 0x63, 0x9e, 0x97, 0xaa, 0x9d, 0xa6, 0xe9, 0x18, 0x06, 0x3f, 0x4d, 0xf3, 0x02, 0x8e,
|
||||
0xb3, 0xdd, 0x0b, 0xf0, 0x12, 0x3b, 0xf4, 0x1d, 0x24, 0x51, 0x09, 0x03, 0xf4, 0x69, 0x65, 0xfb,
|
||||
0x75, 0x42, 0x7b, 0x32, 0xd2, 0x42, 0x1b, 0x88, 0xbc, 0xd9, 0x01, 0x9c, 0x43, 0x60, 0x57, 0x8b,
|
||||
0x51, 0x32, 0x9a, 0xd0, 0x05, 0xfb, 0x13, 0x04, 0xfb, 0xa3, 0x4b, 0x17, 0x50, 0x17, 0xb7, 0xb9,
|
||||
0xfd, 0xee, 0xb5, 0x08, 0xd9, 0x3d, 0x87, 0xc8, 0x24, 0x3c, 0x08, 0x66, 0xd4, 0x45, 0xba, 0x97,
|
||||
0x68, 0x23, 0x43, 0xf1, 0x15, 0xbb, 0xe2, 0xbe, 0xe9, 0x90, 0x46, 0xba, 0x6d, 0xf2, 0xd0, 0x52,
|
||||
0x72, 0x08, 0x91, 0x2f, 0xac, 0x71, 0xfc, 0xad, 0x58, 0x28, 0xdb, 0x8b, 0x4e, 0x21, 0x34, 0x36,
|
||||
0x5c, 0x99, 0xf9, 0xb7, 0x32, 0x85, 0xfa, 0xf2, 0x71, 0x14, 0x48, 0xee, 0xdb, 0x95, 0x97, 0xab,
|
||||
0x0e, 0xb9, 0xd2, 0x76, 0xef, 0xe1, 0x67, 0x2e, 0xb3, 0xaf, 0xec, 0x7d, 0x7c, 0x7a, 0xa5, 0x00,
|
||||
0x8b, 0x3b, 0x2f, 0x76, 0x5f, 0x23, 0x2d, 0x21, 0xe7, 0x3f, 0xe6, 0x89, 0x8a, 0xbd, 0x6e, 0xa3,
|
||||
0x67, 0x7f, 0xcc, 0x43, 0xfc, 0x3d, 0x0f, 0x9d, 0xcf, 0xdf, 0x99, 0x08, 0x33, 0x4d, 0x4e, 0xf1,
|
||||
0x1f, 0x7d, 0x2b, 0x15, 0x7b, 0x45, 0xc8, 0xec, 0x74, 0x4b, 0x44, 0x06, 0xdf, 0x29, 0xb8, 0x65,
|
||||
0xff, 0xda, 0xb7, 0xd2, 0xbf, 0x76, 0x7c, 0xfa, 0x2d, 0xc7, 0x39, 0x5d, 0xb4, 0xd0, 0x9d, 0xff,
|
||||
0x06, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x8d, 0x19, 0x19, 0x96, 0x0e, 0x00, 0x00,
|
||||
// 1880 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcb, 0x6f, 0x1c, 0x49,
|
||||
0x19, 0x77, 0x4f, 0x4f, 0x6c, 0x4f, 0xcd, 0xd8, 0xae, 0x94, 0x1d, 0xc7, 0x9b, 0x64, 0x17, 0x33,
|
||||
0x02, 0x29, 0xb2, 0xb4, 0x09, 0x24, 0x12, 0x70, 0x59, 0xa4, 0x78, 0xc6, 0x76, 0x46, 0xb1, 0x9d,
|
||||
0xa1, 0xc7, 0xc9, 0xae, 0x90, 0x20, 0x2a, 0x77, 0x7f, 0x9e, 0x29, 0xd2, 0x5d, 0xd5, 0x54, 0x55,
|
||||
0x3b, 0x19, 0x4e, 0xcb, 0xf2, 0x0f, 0x40, 0x38, 0x70, 0xe5, 0x0f, 0x00, 0xc4, 0x1b, 0xfe, 0x04,
|
||||
0xde, 0x67, 0xde, 0x70, 0xe4, 0x8c, 0x78, 0xee, 0x13, 0x7d, 0xd5, 0x3d, 0xdd, 0xed, 0x24, 0x2b,
|
||||
0x0e, 0x7b, 0xab, 0xef, 0xf7, 0x3d, 0xea, 0x7b, 0x57, 0x91, 0x4e, 0xa8, 0x92, 0x44, 0xc9, 0x6b,
|
||||
0xa9, 0x56, 0x56, 0xb1, 0xd5, 0x44, 0xc4, 0xa7, 0x99, 0xc9, 0xa9, 0x6b, 0x39, 0xab, 0xfb, 0x80,
|
||||
0xcc, 0x8f, 0x2c, 0xb7, 0x99, 0x61, 0xaf, 0x10, 0x02, 0x5a, 0x2b, 0xfd, 0x20, 0x54, 0x11, 0x6c,
|
||||
0x78, 0x9b, 0xde, 0xd5, 0xe5, 0x1b, 0x2f, 0x5d, 0x7b, 0x8e, 0xce, 0xb5, 0x1d, 0x14, 0xeb, 0xa9,
|
||||
0x08, 0x82, 0x16, 0xcc, 0x8e, 0x6c, 0x9d, 0xcc, 0x6b, 0xe0, 0x46, 0xc9, 0x8d, 0xc6, 0xa6, 0x77,
|
||||
0xb5, 0x15, 0x14, 0x54, 0xf7, 0x13, 0xa4, 0x73, 0x07, 0xa6, 0xf7, 0x79, 0x9c, 0xc1, 0x90, 0x0b,
|
||||
0xcd, 0x28, 0xf1, 0x1f, 0xc2, 0xd4, 0xd9, 0x6f, 0x05, 0x78, 0x64, 0x6b, 0xe4, 0xdc, 0x29, 0xb2,
|
||||
0x0b, 0xc5, 0x9c, 0xe8, 0xde, 0x24, 0xed, 0x3b, 0x30, 0xed, 0x73, 0xcb, 0xdf, 0x47, 0x8d, 0x91,
|
||||
0x66, 0xc4, 0x2d, 0x77, 0x5a, 0x9d, 0xc0, 0x9d, 0xbb, 0x57, 0x48, 0x73, 0x3b, 0x56, 0xc7, 0x95,
|
||||
0x49, 0xcf, 0x31, 0x0b, 0x93, 0xa7, 0x84, 0x0e, 0x63, 0x1e, 0xc2, 0x44, 0xc5, 0x11, 0x68, 0xe7,
|
||||
0x12, 0xda, 0xb5, 0x7c, 0x3c, 0xb3, 0x6b, 0xf9, 0x98, 0x7d, 0x8a, 0x34, 0xed, 0x34, 0xcd, 0xbd,
|
||||
0x59, 0xbe, 0xf1, 0x91, 0xe7, 0x66, 0xa0, 0x66, 0xe6, 0x68, 0x9a, 0x42, 0xe0, 0x34, 0x30, 0x05,
|
||||
0xee, 0x22, 0xb3, 0xe1, 0x6f, 0xfa, 0x57, 0x3b, 0x41, 0x41, 0x75, 0x3f, 0x77, 0xe6, 0xde, 0x3d,
|
||||
0xad, 0xb2, 0x94, 0x0d, 0x48, 0x27, 0xad, 0x30, 0xb3, 0xe1, 0x6d, 0xfa, 0x57, 0xdb, 0x37, 0x3e,
|
||||
0xfa, 0xff, 0x6e, 0x73, 0x4e, 0x07, 0x67, 0x54, 0xbb, 0x2f, 0x93, 0x85, 0x5b, 0x51, 0xa4, 0xc1,
|
||||
0x18, 0xb6, 0x4c, 0x1a, 0x22, 0x2d, 0x82, 0x69, 0x88, 0x14, 0x73, 0x94, 0x2a, 0x6d, 0x5d, 0x2c,
|
||||
0x7e, 0xe0, 0xce, 0xdd, 0x27, 0x1e, 0x59, 0x38, 0x30, 0xe3, 0x6d, 0x6e, 0x80, 0x7d, 0x92, 0x2c,
|
||||
0x26, 0x66, 0xfc, 0xc0, 0xc5, 0x9b, 0x57, 0xfc, 0xca, 0x73, 0x3d, 0x38, 0x30, 0x63, 0x17, 0xe7,
|
||||
0x42, 0x92, 0x1f, 0x30, 0xc1, 0x89, 0x19, 0x0f, 0xfa, 0x85, 0xe5, 0x9c, 0x60, 0x57, 0x48, 0xcb,
|
||||
0x8a, 0x04, 0x8c, 0xe5, 0x49, 0xba, 0xe1, 0x6f, 0x7a, 0x57, 0x9b, 0x41, 0x05, 0xb0, 0x4b, 0x64,
|
||||
0xd1, 0xa8, 0x4c, 0x87, 0x30, 0xe8, 0x6f, 0x34, 0x9d, 0x5a, 0x49, 0x77, 0x5f, 0x21, 0xad, 0x03,
|
||||
0x33, 0xbe, 0x0d, 0x3c, 0x02, 0xcd, 0x3e, 0x46, 0x9a, 0xc7, 0xdc, 0xe4, 0x1e, 0xb5, 0xdf, 0xdf,
|
||||
0x23, 0x8c, 0x20, 0x70, 0x92, 0xdd, 0xcf, 0x93, 0x4e, 0xff, 0x60, 0xff, 0x03, 0x58, 0x40, 0xd7,
|
||||
0xcd, 0x84, 0xeb, 0xe8, 0x90, 0x27, 0xb3, 0x46, 0xac, 0x80, 0xad, 0x27, 0xf3, 0xa4, 0x55, 0x76,
|
||||
0x3d, 0x6b, 0x93, 0x85, 0x51, 0x16, 0x86, 0x60, 0x0c, 0x9d, 0x63, 0xab, 0x64, 0xe5, 0x9e, 0x84,
|
||||
0xc7, 0x29, 0x84, 0x16, 0x22, 0x27, 0x43, 0x3d, 0x76, 0x9e, 0x2c, 0xf5, 0x94, 0x94, 0x10, 0xda,
|
||||
0x5d, 0x2e, 0x62, 0x88, 0x68, 0x83, 0xad, 0x11, 0x3a, 0x04, 0x9d, 0x08, 0x63, 0x84, 0x92, 0x7d,
|
||||
0x90, 0x02, 0x22, 0xea, 0xb3, 0x8b, 0x64, 0xb5, 0xa7, 0xe2, 0x18, 0x42, 0x2b, 0x94, 0x3c, 0x54,
|
||||
0x76, 0xe7, 0xb1, 0x30, 0xd6, 0xd0, 0x26, 0x9a, 0x1d, 0xc4, 0x31, 0x8c, 0x79, 0x7c, 0x4b, 0x8f,
|
||||
0xb3, 0x04, 0xa4, 0xa5, 0xe7, 0xd0, 0x46, 0x01, 0xf6, 0x45, 0x02, 0x12, 0x2d, 0xd1, 0x85, 0x1a,
|
||||
0x3a, 0x90, 0x11, 0x3c, 0xc6, 0xfa, 0xd0, 0x45, 0xf6, 0x02, 0xb9, 0x50, 0xa0, 0xb5, 0x0b, 0x78,
|
||||
0x02, 0xb4, 0xc5, 0x56, 0x48, 0xbb, 0x60, 0x1d, 0xdd, 0x1d, 0xde, 0xa1, 0xa4, 0x66, 0x21, 0x50,
|
||||
0x8f, 0x02, 0x08, 0x95, 0x8e, 0x68, 0xbb, 0xe6, 0xc2, 0x7d, 0x08, 0xad, 0xd2, 0x83, 0x3e, 0xed,
|
||||
0xa0, 0xc3, 0x05, 0x38, 0x02, 0xae, 0xc3, 0x49, 0x00, 0x26, 0x8b, 0x2d, 0x5d, 0x62, 0x94, 0x74,
|
||||
0x76, 0x45, 0x0c, 0x87, 0xca, 0xee, 0xaa, 0x4c, 0x46, 0x74, 0x99, 0x2d, 0x13, 0x72, 0x00, 0x96,
|
||||
0x17, 0x19, 0x58, 0xc1, 0x6b, 0x7b, 0x3c, 0x9c, 0x40, 0x01, 0x50, 0xb6, 0x4e, 0x58, 0x8f, 0x4b,
|
||||
0xa9, 0x6c, 0x4f, 0x03, 0xb7, 0xb0, 0xeb, 0xfa, 0x99, 0x9e, 0x47, 0x77, 0xce, 0xe0, 0x22, 0x06,
|
||||
0xca, 0x2a, 0xe9, 0x3e, 0xc4, 0x50, 0x4a, 0xaf, 0x56, 0xd2, 0x05, 0x8e, 0xd2, 0x6b, 0xe8, 0xfc,
|
||||
0x76, 0x26, 0xe2, 0xc8, 0xa5, 0x24, 0x2f, 0xcb, 0x05, 0xf4, 0xb1, 0x70, 0xfe, 0x70, 0x7f, 0x30,
|
||||
0x3a, 0xa2, 0xeb, 0xec, 0x02, 0x39, 0x5f, 0x20, 0x07, 0x60, 0xb5, 0x08, 0x5d, 0xf2, 0x2e, 0xa2,
|
||||
0xab, 0x77, 0x33, 0x7b, 0xf7, 0xe4, 0x00, 0x12, 0xa5, 0xa7, 0x74, 0x03, 0x0b, 0xea, 0x2c, 0xcd,
|
||||
0x4a, 0x44, 0x5f, 0xc0, 0x1b, 0x76, 0x92, 0xd4, 0x4e, 0xab, 0xf4, 0xd2, 0x4b, 0xec, 0x32, 0xb9,
|
||||
0x78, 0x2f, 0x8d, 0xb8, 0x85, 0x41, 0x82, 0xc3, 0x76, 0xc4, 0xcd, 0x43, 0x0c, 0x37, 0xd3, 0x40,
|
||||
0x2f, 0xb3, 0x4b, 0x64, 0xfd, 0x6c, 0x2d, 0xca, 0x64, 0x5d, 0x41, 0xc5, 0x3c, 0xda, 0x9e, 0x86,
|
||||
0x08, 0xa4, 0x15, 0x3c, 0x9e, 0x29, 0xbe, 0x58, 0x59, 0x7d, 0x96, 0xf9, 0x12, 0x32, 0xf3, 0xc8,
|
||||
0x9f, 0x65, 0x7e, 0x88, 0x6d, 0x90, 0xb5, 0x3d, 0xb0, 0xcf, 0x72, 0x36, 0x91, 0xb3, 0x2f, 0x8c,
|
||||
0x63, 0xdd, 0x33, 0xa0, 0xcd, 0x8c, 0xf3, 0x61, 0xc6, 0xc8, 0xf2, 0xa1, 0xb2, 0x23, 0x6c, 0xfe,
|
||||
0x7d, 0x37, 0x4e, 0xb4, 0xcb, 0x18, 0x59, 0xea, 0xf7, 0x03, 0xf8, 0x62, 0x06, 0xc6, 0x06, 0x3c,
|
||||
0x04, 0xfa, 0xb7, 0x85, 0xad, 0xd7, 0x08, 0x71, 0x39, 0xc1, 0xf7, 0x03, 0x50, 0xab, 0xa2, 0x0e,
|
||||
0x95, 0x04, 0x3a, 0xc7, 0x3a, 0x64, 0xf1, 0x9e, 0x14, 0xc6, 0x64, 0x10, 0x51, 0x0f, 0xfb, 0x61,
|
||||
0x20, 0x87, 0x5a, 0x8d, 0x71, 0x55, 0xd1, 0x06, 0x72, 0x77, 0x85, 0x14, 0x66, 0xe2, 0x26, 0x81,
|
||||
0x90, 0xf9, 0xa2, 0x31, 0x9a, 0x5b, 0x6f, 0x78, 0xa4, 0x33, 0x82, 0x31, 0x76, 0x7d, 0x6e, 0x7c,
|
||||
0x8d, 0xd0, 0x3a, 0x5d, 0x99, 0x2f, 0xeb, 0xe1, 0xe1, 0x54, 0xee, 0x69, 0xf5, 0x48, 0xc8, 0x31,
|
||||
0x6d, 0xa0, 0xb5, 0x11, 0xf0, 0xd8, 0x59, 0x6e, 0x93, 0x85, 0xdd, 0x38, 0x73, 0xd7, 0x34, 0xdd,
|
||||
0xa5, 0x48, 0xa0, 0xd8, 0x39, 0x64, 0xf5, 0xb5, 0x4a, 0x53, 0x88, 0xe8, 0x3c, 0x5b, 0x22, 0xad,
|
||||
0xbc, 0x6a, 0xc8, 0x5b, 0xd8, 0xfa, 0x34, 0x59, 0x79, 0x6a, 0xcd, 0xb3, 0x45, 0xd2, 0x2c, 0xae,
|
||||
0xa6, 0xa4, 0xb3, 0x2d, 0x24, 0xd7, 0xd3, 0x7c, 0x34, 0x68, 0x84, 0x2d, 0xb3, 0x1b, 0x2b, 0x6e,
|
||||
0x0b, 0x00, 0xb6, 0xfe, 0x4e, 0xdc, 0x9e, 0x75, 0x8a, 0x4b, 0xa4, 0x75, 0x4f, 0x46, 0x70, 0x22,
|
||||
0x24, 0x44, 0x74, 0xce, 0xb5, 0x6c, 0x5e, 0xec, 0xaa, 0x77, 0x22, 0xcc, 0x20, 0x3a, 0x53, 0xc3,
|
||||
0x00, 0xfb, 0xee, 0x36, 0x37, 0x35, 0xe8, 0x04, 0xe7, 0xa0, 0x0f, 0x26, 0xd4, 0xe2, 0xb8, 0xae,
|
||||
0x3e, 0xc6, 0x7e, 0x1c, 0x4d, 0xd4, 0xa3, 0x0a, 0x33, 0x74, 0x82, 0x37, 0xed, 0x81, 0x1d, 0x4d,
|
||||
0x8d, 0x85, 0xa4, 0xa7, 0xe4, 0x89, 0x18, 0x1b, 0x2a, 0xf0, 0xa6, 0x7d, 0xc5, 0xa3, 0x9a, 0xfa,
|
||||
0x17, 0x70, 0x12, 0x02, 0x88, 0x81, 0x9b, 0xba, 0xd5, 0x87, 0x6e, 0x68, 0x9d, 0xab, 0xb7, 0x62,
|
||||
0xc1, 0x0d, 0x8d, 0x31, 0x14, 0xf4, 0x32, 0x27, 0x13, 0x2c, 0xea, 0xad, 0xd8, 0x82, 0xce, 0x69,
|
||||
0xc9, 0xd6, 0xc8, 0x4a, 0x2e, 0x3f, 0xe4, 0xda, 0x0a, 0x67, 0xe4, 0x67, 0x9e, 0x6b, 0x1f, 0xad,
|
||||
0xd2, 0x0a, 0xfb, 0x39, 0xee, 0xc8, 0xce, 0x6d, 0x6e, 0x2a, 0xe8, 0x17, 0x1e, 0x5b, 0x27, 0xe7,
|
||||
0x67, 0xa1, 0x55, 0xf8, 0x2f, 0x3d, 0xb6, 0x4a, 0x96, 0x31, 0xb4, 0x12, 0x33, 0xf4, 0x57, 0x0e,
|
||||
0xc4, 0x20, 0x6a, 0xe0, 0xaf, 0x9d, 0x85, 0x22, 0x8a, 0x1a, 0xfe, 0x1b, 0x77, 0x19, 0x5a, 0x28,
|
||||
0x9a, 0xc8, 0xd0, 0x37, 0x3d, 0xf4, 0x74, 0x76, 0x59, 0x01, 0xd3, 0xb7, 0x9c, 0x20, 0x5a, 0x2d,
|
||||
0x05, 0xdf, 0x76, 0x82, 0x85, 0xcd, 0x12, 0x7d, 0xc7, 0xa1, 0xb7, 0xb9, 0x8c, 0xd4, 0xc9, 0x49,
|
||||
0x89, 0xbe, 0xeb, 0xb1, 0x0d, 0xb2, 0x8a, 0xea, 0xdb, 0x3c, 0xe6, 0x32, 0xac, 0xe4, 0xdf, 0xf3,
|
||||
0xd8, 0x05, 0x42, 0x9f, 0xba, 0xce, 0xd0, 0xd7, 0x1b, 0x8c, 0xce, 0xf2, 0xeb, 0x86, 0x87, 0x7e,
|
||||
0xab, 0xe1, 0x72, 0x55, 0x08, 0xe6, 0xd8, 0xb7, 0x1b, 0x6c, 0x39, 0x4f, 0x7a, 0x4e, 0x7f, 0xa7,
|
||||
0xc1, 0xda, 0x64, 0x7e, 0x20, 0x0d, 0x68, 0x4b, 0xbf, 0x8a, 0xfd, 0x3d, 0x9f, 0x2f, 0x00, 0xfa,
|
||||
0x35, 0x1c, 0xa3, 0x73, 0xae, 0xbf, 0xe9, 0x13, 0x7c, 0x5c, 0x58, 0x00, 0x06, 0x64, 0x54, 0x9b,
|
||||
0x1d, 0x43, 0xbf, 0xee, 0x34, 0xf2, 0xed, 0x4d, 0xff, 0xe1, 0xbb, 0xd4, 0xd4, 0x57, 0xf9, 0x3f,
|
||||
0x7d, 0x74, 0x61, 0x0f, 0x6c, 0x35, 0xce, 0xf4, 0x5f, 0x3e, 0xbb, 0x44, 0x2e, 0xcc, 0x30, 0xb7,
|
||||
0x58, 0xcb, 0x41, 0xfe, 0xb7, 0xcf, 0xae, 0x90, 0x8b, 0xb8, 0x65, 0xca, 0xbe, 0x41, 0x25, 0x61,
|
||||
0xac, 0x08, 0x0d, 0xfd, 0x8f, 0xcf, 0x2e, 0x93, 0xf5, 0x3d, 0xb0, 0x65, 0x3d, 0x6a, 0xcc, 0xff,
|
||||
0xfa, 0x6c, 0x89, 0x2c, 0x06, 0xb8, 0x79, 0xe1, 0x14, 0xe8, 0x9b, 0x3e, 0x16, 0x75, 0x46, 0x16,
|
||||
0xee, 0xbc, 0xe5, 0x63, 0xaa, 0x5f, 0xe5, 0x36, 0x9c, 0xf4, 0x93, 0xde, 0x84, 0x4b, 0x09, 0xb1,
|
||||
0xa1, 0x6f, 0xfb, 0x98, 0xd0, 0x00, 0x12, 0x75, 0x0a, 0x35, 0xf8, 0x1d, 0x17, 0xb4, 0x13, 0xfe,
|
||||
0x4c, 0x06, 0x7a, 0x5a, 0x32, 0xde, 0xf5, 0xb1, 0x34, 0xb9, 0xfc, 0x59, 0xce, 0x7b, 0x3e, 0x7b,
|
||||
0x91, 0x6c, 0xe4, 0xcb, 0x62, 0x56, 0x18, 0x64, 0x8e, 0x61, 0x20, 0x4f, 0x14, 0x7d, 0xbd, 0x59,
|
||||
0x5a, 0xec, 0x43, 0x6c, 0x79, 0xa9, 0xf7, 0xe5, 0x26, 0xfa, 0x85, 0xc3, 0x55, 0x2d, 0x4a, 0x43,
|
||||
0xdf, 0x68, 0x62, 0x45, 0xf7, 0xc0, 0x06, 0x90, 0xc6, 0x22, 0xe4, 0x86, 0x7e, 0xc5, 0x21, 0x85,
|
||||
0x65, 0x67, 0xf2, 0xb7, 0x4d, 0xb6, 0x42, 0x48, 0x3e, 0x93, 0x0e, 0xf8, 0xdd, 0xcc, 0x14, 0x3e,
|
||||
0xbd, 0xa7, 0xa0, 0xa7, 0x0e, 0xfd, 0x7d, 0x79, 0x41, 0x6d, 0xf3, 0xd1, 0x3f, 0x34, 0x31, 0x65,
|
||||
0x47, 0x22, 0x81, 0x23, 0x11, 0x3e, 0xa4, 0xdf, 0x6d, 0x61, 0xca, 0x5c, 0x44, 0x87, 0x2a, 0x82,
|
||||
0xbc, 0xc2, 0xdf, 0x6b, 0x61, 0xc3, 0x60, 0x1f, 0xe6, 0x0d, 0xf3, 0x7d, 0x47, 0x17, 0xdb, 0x7b,
|
||||
0xd0, 0xa7, 0x3f, 0xc0, 0x2f, 0x00, 0x29, 0xe8, 0xa3, 0xd1, 0x5d, 0xfa, 0xc3, 0x16, 0x5e, 0x75,
|
||||
0x2b, 0x8e, 0x55, 0xc8, 0x6d, 0x39, 0x0d, 0x3f, 0x6a, 0xe1, 0x38, 0xd5, 0x6e, 0x2f, 0xaa, 0xf6,
|
||||
0xe3, 0x16, 0xe6, 0xbe, 0xc0, 0x5d, 0xb3, 0xf5, 0x71, 0x29, 0xfe, 0xc4, 0x59, 0xc5, 0x0f, 0x3b,
|
||||
0x7a, 0x72, 0x64, 0xe9, 0x4f, 0x9d, 0xdc, 0xd3, 0xaf, 0x1a, 0xfd, 0x63, 0xbb, 0xe8, 0xaf, 0x1a,
|
||||
0xf6, 0xa7, 0x76, 0x3e, 0x1f, 0x67, 0x9f, 0x31, 0xfa, 0x67, 0x07, 0x3f, 0xfd, 0xf4, 0xd1, 0xbf,
|
||||
0xb4, 0xd1, 0xb1, 0xfa, 0xeb, 0x25, 0x79, 0x02, 0x86, 0xfe, 0xb5, 0xbd, 0xd5, 0x25, 0x0b, 0x7d,
|
||||
0x13, 0xbb, 0x9d, 0xbb, 0x40, 0xfc, 0xbe, 0x89, 0xe9, 0x1c, 0xae, 0xa8, 0x6d, 0xa5, 0xe2, 0x9d,
|
||||
0xc7, 0xa9, 0xbe, 0xff, 0x71, 0xea, 0x6d, 0x6d, 0x93, 0x95, 0x9e, 0x4a, 0x52, 0x5e, 0xb6, 0xaa,
|
||||
0x5b, 0xb3, 0xf9, 0x7e, 0x86, 0x28, 0x4f, 0xf3, 0x1c, 0xee, 0xb9, 0x9d, 0xc7, 0x10, 0x66, 0xee,
|
||||
0x35, 0xf0, 0x90, 0x44, 0x25, 0x74, 0x30, 0xa2, 0x8d, 0xad, 0xd7, 0x08, 0xed, 0x29, 0x69, 0x84,
|
||||
0xb1, 0x20, 0xc3, 0xe9, 0x3e, 0x9c, 0x42, 0xec, 0xde, 0x1c, 0xab, 0x95, 0x1c, 0xd3, 0x39, 0xf7,
|
||||
0x45, 0x04, 0xf7, 0xd5, 0xcb, 0x5f, 0xa6, 0x6d, 0x7c, 0xe6, 0xdd, 0x3f, 0x70, 0x99, 0x90, 0x9d,
|
||||
0x53, 0x90, 0x36, 0xe3, 0x71, 0x3c, 0xa5, 0x3e, 0xd2, 0xbd, 0xcc, 0x58, 0x95, 0x88, 0x2f, 0xb9,
|
||||
0xb7, 0xef, 0x1b, 0x1e, 0x69, 0xe7, 0xcf, 0x50, 0xe9, 0x5a, 0x4e, 0x0e, 0x41, 0x46, 0xc2, 0x19,
|
||||
0xc7, 0x6f, 0x8c, 0x83, 0x8a, 0x07, 0xd3, 0xab, 0x84, 0x46, 0x96, 0x6b, 0x3b, 0xfb, 0x6f, 0xe6,
|
||||
0x50, 0x5f, 0x3d, 0x92, 0xb1, 0xe2, 0x91, 0x7b, 0x0b, 0x4b, 0xd5, 0x21, 0xd7, 0xc6, 0x3d, 0x88,
|
||||
0xf8, 0xcb, 0x2b, 0xec, 0x6b, 0x17, 0x4f, 0x44, 0xcf, 0x55, 0x60, 0x15, 0xf3, 0xfc, 0xf6, 0xab,
|
||||
0x64, 0x59, 0xa8, 0xd9, 0x57, 0x7a, 0xac, 0xd3, 0x70, 0xbb, 0xdd, 0x73, 0x5f, 0xe9, 0x21, 0x7e,
|
||||
0xab, 0x87, 0xde, 0x67, 0x6f, 0x8e, 0x85, 0x9d, 0x64, 0xc7, 0xf8, 0xc1, 0xbe, 0x9e, 0x8b, 0xbd,
|
||||
0x2c, 0x54, 0x71, 0xba, 0x2e, 0xa4, 0xc5, 0x3a, 0xc5, 0xd7, 0xdd, 0x27, 0xfc, 0x7a, 0xfe, 0x09,
|
||||
0x4f, 0x8f, 0xbf, 0xe9, 0x79, 0xc7, 0xf3, 0x0e, 0xba, 0xf9, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xce, 0x8a, 0x21, 0x2f, 0xaf, 0x0e, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -64,6 +64,8 @@ service DataNode {
|
|||
|
||||
// https://wiki.lfaidata.foundation/display/MIL/MEP+24+--+Support+bulk+load
|
||||
rpc Import(ImportTaskRequest) returns(common.Status) {}
|
||||
|
||||
rpc ResendSegmentStats(ResendSegmentStatsRequest) returns(ResendSegmentStatsResponse) {}
|
||||
}
|
||||
|
||||
message FlushRequest {
|
||||
|
@ -486,4 +488,13 @@ message ImportTaskRequest {
|
|||
message UpdateSegmentStatisticsRequest {
|
||||
common.MsgBase base = 1;
|
||||
repeated SegmentStats stats = 2;
|
||||
}
|
||||
}
|
||||
|
||||
message ResendSegmentStatsRequest {
|
||||
common.MsgBase base = 1;
|
||||
}
|
||||
|
||||
message ResendSegmentStatsResponse {
|
||||
common.Status status = 1;
|
||||
repeated int64 seg_resent = 2;
|
||||
}
|
||||
|
|
|
@ -3721,6 +3721,92 @@ func (m *UpdateSegmentStatisticsRequest) GetStats() []*SegmentStats {
|
|||
return nil
|
||||
}
|
||||
|
||||
type ResendSegmentStatsRequest struct {
|
||||
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *ResendSegmentStatsRequest) Reset() { *m = ResendSegmentStatsRequest{} }
|
||||
func (m *ResendSegmentStatsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ResendSegmentStatsRequest) ProtoMessage() {}
|
||||
func (*ResendSegmentStatsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_82cd95f524594f49, []int{59}
|
||||
}
|
||||
|
||||
func (m *ResendSegmentStatsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ResendSegmentStatsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ResendSegmentStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ResendSegmentStatsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *ResendSegmentStatsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ResendSegmentStatsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ResendSegmentStatsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ResendSegmentStatsRequest.Size(m)
|
||||
}
|
||||
func (m *ResendSegmentStatsRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_ResendSegmentStatsRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_ResendSegmentStatsRequest proto.InternalMessageInfo
|
||||
|
||||
func (m *ResendSegmentStatsRequest) GetBase() *commonpb.MsgBase {
|
||||
if m != nil {
|
||||
return m.Base
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ResendSegmentStatsResponse struct {
|
||||
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
|
||||
SegResent []int64 `protobuf:"varint,2,rep,packed,name=seg_resent,json=segResent,proto3" json:"seg_resent,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *ResendSegmentStatsResponse) Reset() { *m = ResendSegmentStatsResponse{} }
|
||||
func (m *ResendSegmentStatsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ResendSegmentStatsResponse) ProtoMessage() {}
|
||||
func (*ResendSegmentStatsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_82cd95f524594f49, []int{60}
|
||||
}
|
||||
|
||||
func (m *ResendSegmentStatsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ResendSegmentStatsResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ResendSegmentStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ResendSegmentStatsResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *ResendSegmentStatsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ResendSegmentStatsResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ResendSegmentStatsResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ResendSegmentStatsResponse.Size(m)
|
||||
}
|
||||
func (m *ResendSegmentStatsResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_ResendSegmentStatsResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_ResendSegmentStatsResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *ResendSegmentStatsResponse) GetStatus() *commonpb.Status {
|
||||
if m != nil {
|
||||
return m.Status
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ResendSegmentStatsResponse) GetSegResent() []int64 {
|
||||
if m != nil {
|
||||
return m.SegResent
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("milvus.proto.data.ChannelWatchState", ChannelWatchState_name, ChannelWatchState_value)
|
||||
proto.RegisterEnum("milvus.proto.data.CompactionType", CompactionType_name, CompactionType_value)
|
||||
|
@ -3783,229 +3869,234 @@ func init() {
|
|||
proto.RegisterType((*ImportTaskResponse)(nil), "milvus.proto.data.ImportTaskResponse")
|
||||
proto.RegisterType((*ImportTaskRequest)(nil), "milvus.proto.data.ImportTaskRequest")
|
||||
proto.RegisterType((*UpdateSegmentStatisticsRequest)(nil), "milvus.proto.data.UpdateSegmentStatisticsRequest")
|
||||
proto.RegisterType((*ResendSegmentStatsRequest)(nil), "milvus.proto.data.ResendSegmentStatsRequest")
|
||||
proto.RegisterType((*ResendSegmentStatsResponse)(nil), "milvus.proto.data.ResendSegmentStatsResponse")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("data_coord.proto", fileDescriptor_82cd95f524594f49) }
|
||||
|
||||
var fileDescriptor_82cd95f524594f49 = []byte{
|
||||
// 3466 bytes of a gzipped FileDescriptorProto
|
||||
// 3518 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x1b, 0xcb, 0x6e, 0x1b, 0xd7,
|
||||
0xd5, 0xc3, 0x97, 0xc8, 0xc3, 0x87, 0xa8, 0x6b, 0x45, 0xa6, 0x69, 0x5b, 0x96, 0xc7, 0xb1, 0xa3,
|
||||
0x38, 0x8e, 0x9d, 0xc8, 0x09, 0x62, 0x34, 0x2f, 0x44, 0x92, 0xa5, 0x10, 0x95, 0x54, 0x65, 0xa4,
|
||||
0xd5, 0xc3, 0x97, 0xc8, 0xc3, 0x87, 0xe8, 0x6b, 0x47, 0xa6, 0x69, 0x5b, 0x96, 0xc7, 0xb1, 0xa3,
|
||||
0x38, 0x8e, 0x9d, 0xc8, 0x09, 0x62, 0x34, 0x2f, 0xc4, 0x96, 0xad, 0x10, 0xb5, 0x54, 0x65, 0xa4,
|
||||
0xc4, 0x45, 0x53, 0x74, 0x30, 0xe2, 0x5c, 0x51, 0x13, 0x71, 0x66, 0xe8, 0x99, 0xa1, 0x65, 0x65,
|
||||
0x13, 0xa3, 0x01, 0x0a, 0xa4, 0x28, 0xfa, 0x40, 0x37, 0x2d, 0xd0, 0x45, 0x51, 0xa0, 0x40, 0x1f,
|
||||
0x9b, 0x02, 0x41, 0x17, 0x6d, 0xd1, 0x4d, 0x57, 0x41, 0xbb, 0xe8, 0x27, 0x74, 0xd9, 0x5d, 0xbf,
|
||||
0xa1, 0xb8, 0x8f, 0xb9, 0xf3, 0xe0, 0x90, 0x1c, 0x89, 0x76, 0xbc, 0xd3, 0x3d, 0x73, 0xce, 0xb9,
|
||||
0xe7, 0x9e, 0x7b, 0xde, 0xbc, 0x82, 0xba, 0xae, 0x79, 0x9a, 0xda, 0xb6, 0x6d, 0x47, 0xbf, 0xd5,
|
||||
0x73, 0x6c, 0xcf, 0x46, 0x33, 0xa6, 0xd1, 0x7d, 0xd8, 0x77, 0xd9, 0xea, 0x16, 0xf9, 0xdc, 0xac,
|
||||
0xb4, 0x6d, 0xd3, 0xb4, 0x2d, 0x06, 0x6a, 0xd6, 0x0c, 0xcb, 0xc3, 0x8e, 0xa5, 0x75, 0xf9, 0xba,
|
||||
0x12, 0x26, 0x68, 0x56, 0xdc, 0xf6, 0x01, 0x36, 0x35, 0xb6, 0x92, 0xa7, 0x20, 0x7f, 0xcf, 0xec,
|
||||
0x79, 0xc7, 0xf2, 0x2f, 0x24, 0xa8, 0xac, 0x75, 0xfb, 0xee, 0x81, 0x82, 0x1f, 0xf4, 0xb1, 0xeb,
|
||||
0xa1, 0x57, 0x20, 0xb7, 0xa7, 0xb9, 0xb8, 0x21, 0x2d, 0x48, 0x8b, 0xe5, 0xa5, 0x8b, 0xb7, 0x22,
|
||||
0xbb, 0xf2, 0xfd, 0x36, 0xdd, 0xce, 0xb2, 0xe6, 0x62, 0x85, 0x62, 0x22, 0x04, 0x39, 0x7d, 0xaf,
|
||||
0xb5, 0xda, 0xc8, 0x2c, 0x48, 0x8b, 0x59, 0x85, 0xfe, 0x8d, 0xe6, 0x01, 0x5c, 0xdc, 0x31, 0xb1,
|
||||
0xe5, 0xb5, 0x56, 0xdd, 0x46, 0x76, 0x21, 0xbb, 0x98, 0x55, 0x42, 0x10, 0x24, 0x43, 0xa5, 0x6d,
|
||||
0x77, 0xbb, 0xb8, 0xed, 0x19, 0xb6, 0xd5, 0x5a, 0x6d, 0xe4, 0x28, 0x6d, 0x04, 0x26, 0xff, 0x4a,
|
||||
0x82, 0x2a, 0x17, 0xcd, 0xed, 0xd9, 0x96, 0x8b, 0xd1, 0x1d, 0x28, 0xb8, 0x9e, 0xe6, 0xf5, 0x5d,
|
||||
0x2e, 0xdd, 0x85, 0x44, 0xe9, 0x76, 0x28, 0x8a, 0xc2, 0x51, 0x13, 0xc5, 0x8b, 0x6f, 0x9f, 0x1d,
|
||||
0xdc, 0x3e, 0x76, 0x84, 0x5c, 0xfc, 0x08, 0xf2, 0xcf, 0x24, 0xa8, 0xef, 0xf8, 0x4b, 0x5f, 0x7b,
|
||||
0xb3, 0x90, 0x6f, 0xdb, 0x7d, 0xcb, 0xa3, 0x02, 0x56, 0x15, 0xb6, 0x40, 0x57, 0xa0, 0xd2, 0x3e,
|
||||
0xd0, 0x2c, 0x0b, 0x77, 0x55, 0x4b, 0x33, 0x31, 0x15, 0xa5, 0xa4, 0x94, 0x39, 0x6c, 0x4b, 0x33,
|
||||
0x71, 0x2a, 0x89, 0x16, 0xa0, 0xdc, 0xd3, 0x1c, 0xcf, 0x88, 0xe8, 0x2c, 0x0c, 0x92, 0x7f, 0x2d,
|
||||
0xc1, 0xdc, 0x7b, 0xae, 0x6b, 0x74, 0xac, 0x01, 0xc9, 0xe6, 0xa0, 0x60, 0xd9, 0x3a, 0x6e, 0xad,
|
||||
0x52, 0xd1, 0xb2, 0x0a, 0x5f, 0xa1, 0x0b, 0x50, 0xea, 0x61, 0xec, 0xa8, 0x8e, 0xdd, 0xf5, 0x05,
|
||||
0x2b, 0x12, 0x80, 0x62, 0x77, 0x31, 0xfa, 0x00, 0x66, 0xdc, 0x18, 0x23, 0x76, 0x9b, 0xe5, 0xa5,
|
||||
0xab, 0xb7, 0x06, 0xec, 0xf1, 0x56, 0x7c, 0x53, 0x65, 0x90, 0x5a, 0x7e, 0x9c, 0x81, 0xb3, 0x02,
|
||||
0x8f, 0xc9, 0x4a, 0xfe, 0x26, 0x9a, 0x73, 0x71, 0x47, 0x88, 0xc7, 0x16, 0x69, 0x34, 0x27, 0x54,
|
||||
0x9e, 0x0d, 0xab, 0x3c, 0x85, 0x81, 0xc5, 0xf5, 0x99, 0x1f, 0xd0, 0x27, 0xba, 0x0c, 0x65, 0xfc,
|
||||
0xa8, 0x67, 0x38, 0x58, 0xf5, 0x0c, 0x13, 0x37, 0x0a, 0x0b, 0xd2, 0x62, 0x4e, 0x01, 0x06, 0xda,
|
||||
0x35, 0xcc, 0xb0, 0x45, 0x4e, 0xa5, 0xb6, 0x48, 0xf9, 0x37, 0x12, 0x9c, 0x1b, 0xb8, 0x25, 0x6e,
|
||||
0xe2, 0x0a, 0xd4, 0xe9, 0xc9, 0x03, 0xcd, 0x10, 0x63, 0x27, 0x0a, 0xbf, 0x3e, 0x4a, 0xe1, 0x01,
|
||||
0xba, 0x32, 0x40, 0x1f, 0x12, 0x32, 0x93, 0x5e, 0xc8, 0x43, 0x38, 0xb7, 0x8e, 0x3d, 0xbe, 0x01,
|
||||
0xf9, 0x86, 0xdd, 0xd3, 0x87, 0x88, 0xa8, 0x2f, 0x65, 0x06, 0x7c, 0xe9, 0x4f, 0x19, 0xe1, 0x4b,
|
||||
0x74, 0xab, 0x96, 0xb5, 0x6f, 0xa3, 0x8b, 0x50, 0x12, 0x28, 0xdc, 0x2a, 0x02, 0x00, 0x7a, 0x03,
|
||||
0xf2, 0x44, 0x52, 0x66, 0x12, 0xb5, 0xa5, 0x2b, 0xc9, 0x67, 0x0a, 0xf1, 0x54, 0x18, 0x3e, 0x6a,
|
||||
0x41, 0xcd, 0xf5, 0x34, 0xc7, 0x53, 0x7b, 0xb6, 0x4b, 0xef, 0x99, 0x1a, 0x4e, 0x79, 0x49, 0x8e,
|
||||
0x72, 0x10, 0xc1, 0x74, 0xd3, 0xed, 0x6c, 0x73, 0x4c, 0xa5, 0x4a, 0x29, 0xfd, 0x25, 0xba, 0x07,
|
||||
0x15, 0x6c, 0xe9, 0x01, 0xa3, 0x5c, 0x6a, 0x46, 0x65, 0x6c, 0xe9, 0x82, 0x4d, 0x70, 0x3f, 0xf9,
|
||||
0xf4, 0xf7, 0xf3, 0x23, 0x09, 0x1a, 0x83, 0x17, 0x34, 0x49, 0xa0, 0x7c, 0x93, 0x11, 0x61, 0x76,
|
||||
0x41, 0x23, 0x3d, 0x5c, 0x5c, 0x92, 0xc2, 0x49, 0x64, 0x03, 0x9e, 0x0b, 0xa4, 0xa1, 0x5f, 0x9e,
|
||||
0x9a, 0xb1, 0x7c, 0x2e, 0xc1, 0x5c, 0x7c, 0xaf, 0x49, 0xce, 0xfd, 0x1a, 0xe4, 0x0d, 0x6b, 0xdf,
|
||||
0xf6, 0x8f, 0x3d, 0x3f, 0xc2, 0xcf, 0xc8, 0x5e, 0x0c, 0x59, 0x36, 0xe1, 0xc2, 0x3a, 0xf6, 0x5a,
|
||||
0x96, 0x8b, 0x1d, 0x6f, 0xd9, 0xb0, 0xba, 0x76, 0x67, 0x5b, 0xf3, 0x0e, 0x26, 0xf0, 0x91, 0x88,
|
||||
0xb9, 0x67, 0x62, 0xe6, 0x2e, 0xff, 0x4e, 0x82, 0x8b, 0xc9, 0xfb, 0xf1, 0xa3, 0x37, 0xa1, 0xb8,
|
||||
0x6f, 0xe0, 0xae, 0x4e, 0x74, 0x26, 0x51, 0x9d, 0x89, 0x35, 0xf1, 0x95, 0x1e, 0x41, 0xe6, 0x27,
|
||||
0xbc, 0x32, 0xc4, 0x40, 0x77, 0x3c, 0xc7, 0xb0, 0x3a, 0x1b, 0x86, 0xeb, 0x29, 0x0c, 0x3f, 0xa4,
|
||||
0xcf, 0x6c, 0x7a, 0xcb, 0xfc, 0xa1, 0x04, 0xf3, 0xeb, 0xd8, 0x5b, 0x11, 0xa1, 0x96, 0x7c, 0x37,
|
||||
0x5c, 0xcf, 0x68, 0xbb, 0x4f, 0xb6, 0xc8, 0x48, 0x91, 0x33, 0xe5, 0x9f, 0x48, 0x70, 0x79, 0xa8,
|
||||
0x30, 0x5c, 0x75, 0x3c, 0x94, 0xf8, 0x81, 0x36, 0x39, 0x94, 0x7c, 0x13, 0x1f, 0x7f, 0xa4, 0x75,
|
||||
0xfb, 0x78, 0x5b, 0x33, 0x1c, 0x16, 0x4a, 0x4e, 0x19, 0x58, 0xff, 0x28, 0xc1, 0xa5, 0x75, 0xec,
|
||||
0x6d, 0xfb, 0x69, 0xe6, 0x19, 0x6a, 0x27, 0x45, 0x45, 0xf1, 0x63, 0x76, 0x99, 0x89, 0xd2, 0x3e,
|
||||
0x13, 0xf5, 0xcd, 0x53, 0x3f, 0x08, 0x39, 0xe4, 0x0a, 0xab, 0x05, 0xb8, 0xf2, 0xe4, 0xc7, 0x59,
|
||||
0xa8, 0x7c, 0xc4, 0xeb, 0x03, 0x9a, 0x46, 0xe2, 0x7a, 0x90, 0x92, 0xf5, 0x10, 0x2a, 0x29, 0x92,
|
||||
0xaa, 0x8c, 0x75, 0xa8, 0xba, 0x18, 0x1f, 0x9e, 0x26, 0x69, 0x54, 0x08, 0xa1, 0x08, 0xf6, 0x1b,
|
||||
0x30, 0xd3, 0xb7, 0xf6, 0x49, 0x59, 0x8b, 0x75, 0x7e, 0x0a, 0x56, 0x5d, 0x8e, 0x8f, 0x3c, 0x83,
|
||||
0x84, 0xe8, 0x7d, 0x98, 0x8e, 0xf3, 0xca, 0xa7, 0xe2, 0x15, 0x27, 0x43, 0x2d, 0xa8, 0xeb, 0x8e,
|
||||
0xdd, 0xeb, 0x61, 0x5d, 0x75, 0x7d, 0x56, 0x85, 0x74, 0xac, 0x38, 0x9d, 0xcf, 0x4a, 0xfe, 0x42,
|
||||
0x82, 0xb9, 0xfb, 0x9a, 0xd7, 0x3e, 0x58, 0x35, 0xf9, 0xe5, 0x4c, 0x60, 0xda, 0x6f, 0x43, 0xe9,
|
||||
0x21, 0xbf, 0x08, 0x3f, 0x7e, 0x5d, 0x4e, 0x10, 0x28, 0x7c, 0xe5, 0x4a, 0x40, 0x21, 0x7f, 0x25,
|
||||
0xc1, 0x2c, 0x6d, 0x22, 0x7c, 0xe9, 0xbe, 0x7e, 0x27, 0x1b, 0xd3, 0x48, 0xa0, 0xeb, 0x50, 0x33,
|
||||
0x35, 0xe7, 0x70, 0x27, 0xc0, 0xc9, 0x53, 0x9c, 0x18, 0x54, 0x7e, 0x04, 0xc0, 0x57, 0x9b, 0x6e,
|
||||
0xe7, 0x14, 0xf2, 0xdf, 0x85, 0x29, 0xbe, 0x2b, 0xf7, 0xb7, 0x71, 0x17, 0xeb, 0xa3, 0xcb, 0xff,
|
||||
0x94, 0xa0, 0x16, 0x44, 0x50, 0xea, 0x55, 0x35, 0xc8, 0x08, 0x5f, 0xca, 0xb4, 0x56, 0xd1, 0xdb,
|
||||
0x50, 0x60, 0x0d, 0x26, 0xe7, 0x7d, 0x2d, 0xca, 0x9b, 0x37, 0x9f, 0xa1, 0x30, 0x4c, 0x01, 0x0a,
|
||||
0x27, 0x22, 0x3a, 0x12, 0x51, 0x47, 0xf4, 0x8b, 0x01, 0x04, 0xb5, 0x60, 0x3a, 0x5a, 0xb4, 0xf9,
|
||||
0x3e, 0xb3, 0x30, 0x2c, 0xda, 0xac, 0x6a, 0x9e, 0x46, 0x83, 0x4d, 0x2d, 0x52, 0xb3, 0xb9, 0xf2,
|
||||
0xff, 0xf2, 0x50, 0x0e, 0x9d, 0x72, 0xe0, 0x24, 0xf1, 0x2b, 0xcd, 0x8c, 0x8f, 0x9b, 0xd9, 0xc1,
|
||||
0xce, 0xe1, 0x1a, 0xd4, 0x0c, 0x9a, 0xab, 0x55, 0x6e, 0x8a, 0x34, 0xb8, 0x96, 0x94, 0x2a, 0x83,
|
||||
0x72, 0xbf, 0x40, 0xf3, 0x50, 0xb6, 0xfa, 0xa6, 0x6a, 0xef, 0xab, 0x8e, 0x7d, 0xe4, 0xf2, 0x16,
|
||||
0xa4, 0x64, 0xf5, 0xcd, 0x6f, 0xed, 0x2b, 0xf6, 0x91, 0x1b, 0x54, 0xb9, 0x85, 0x13, 0x56, 0xb9,
|
||||
0xf3, 0x50, 0x36, 0xb5, 0x47, 0x84, 0xab, 0x6a, 0xf5, 0x4d, 0xda, 0x9d, 0x64, 0x95, 0x92, 0xa9,
|
||||
0x3d, 0x52, 0xec, 0xa3, 0xad, 0xbe, 0x89, 0x16, 0xa1, 0xde, 0xd5, 0x5c, 0x4f, 0x0d, 0xb7, 0x37,
|
||||
0x45, 0xda, 0xde, 0xd4, 0x08, 0xfc, 0x5e, 0xd0, 0xe2, 0x0c, 0xd6, 0xcb, 0xa5, 0x09, 0xea, 0x65,
|
||||
0xdd, 0xec, 0x06, 0x8c, 0x20, 0x7d, 0xbd, 0xac, 0x9b, 0x5d, 0xc1, 0xe6, 0x2e, 0x4c, 0xed, 0xd1,
|
||||
0x0a, 0xc8, 0x6d, 0x94, 0x87, 0x46, 0xa8, 0x35, 0x52, 0xfc, 0xb0, 0x42, 0x49, 0xf1, 0xd1, 0xd1,
|
||||
0x5b, 0x50, 0xa2, 0xa9, 0x87, 0xd2, 0x56, 0x52, 0xd1, 0x06, 0x04, 0x84, 0x5a, 0xc7, 0x5d, 0x4f,
|
||||
0xa3, 0xd4, 0xd5, 0x74, 0xd4, 0x82, 0x00, 0xbd, 0x02, 0x67, 0xdb, 0x0e, 0xd6, 0x3c, 0xac, 0x2f,
|
||||
0x1f, 0xaf, 0xd8, 0x66, 0x4f, 0xa3, 0xc6, 0xd4, 0xa8, 0x2d, 0x48, 0x8b, 0x45, 0x25, 0xe9, 0x13,
|
||||
0x09, 0x0c, 0x6d, 0xb1, 0x5a, 0x73, 0x6c, 0xb3, 0x31, 0xcd, 0x02, 0x43, 0x14, 0x8a, 0x2e, 0x01,
|
||||
0xf8, 0xa1, 0x5b, 0xf3, 0x1a, 0x75, 0x7a, 0x8b, 0x25, 0x0e, 0x79, 0xcf, 0x93, 0x3f, 0x83, 0xd9,
|
||||
0xc0, 0x42, 0x42, 0xb7, 0x31, 0x78, 0xb1, 0xd2, 0x69, 0x2f, 0x76, 0x74, 0xed, 0xfa, 0xef, 0x1c,
|
||||
0xcc, 0xed, 0x68, 0x0f, 0xf1, 0xd3, 0x2f, 0x93, 0x53, 0xc5, 0xe3, 0x0d, 0x98, 0xa1, 0x95, 0xf1,
|
||||
0x52, 0x48, 0x9e, 0x11, 0x19, 0x38, 0x7c, 0x9d, 0x83, 0x84, 0xe8, 0x5d, 0x52, 0x3a, 0xe0, 0xf6,
|
||||
0xe1, 0xb6, 0x6d, 0x04, 0xd9, 0xf7, 0x52, 0x02, 0x9f, 0x15, 0x81, 0xa5, 0x84, 0x29, 0xd0, 0xf6,
|
||||
0x60, 0x68, 0x63, 0x79, 0xf7, 0x85, 0x91, 0xfd, 0x57, 0xa0, 0xfd, 0x78, 0x84, 0x43, 0x0d, 0x98,
|
||||
0xe2, 0xd9, 0x9d, 0xfa, 0x7d, 0x51, 0xf1, 0x97, 0x68, 0x1b, 0xce, 0xb2, 0x13, 0xec, 0x70, 0xa3,
|
||||
0x66, 0x87, 0x2f, 0xa6, 0x3a, 0x7c, 0x12, 0x69, 0xd4, 0x27, 0x4a, 0x27, 0xf5, 0x89, 0x06, 0x4c,
|
||||
0x71, 0x3b, 0xa5, 0xb1, 0xa0, 0xa8, 0xf8, 0x4b, 0x72, 0xcd, 0x86, 0xd9, 0xb3, 0x1d, 0xcf, 0xb0,
|
||||
0x3a, 0x8d, 0x32, 0xfd, 0x16, 0x00, 0x48, 0x8b, 0x01, 0x81, 0x3e, 0xc7, 0x4c, 0x0a, 0xde, 0x81,
|
||||
0xa2, 0xb0, 0xf0, 0x4c, 0x6a, 0x0b, 0x17, 0x34, 0xf1, 0x18, 0x9d, 0x8d, 0xc5, 0x68, 0xf9, 0x5f,
|
||||
0x12, 0x54, 0x56, 0xc9, 0x91, 0x36, 0xec, 0x0e, 0xcd, 0x28, 0xd7, 0xa0, 0xe6, 0xe0, 0xb6, 0xed,
|
||||
0xe8, 0x2a, 0xb6, 0x3c, 0xc7, 0xc0, 0xac, 0x1b, 0xcd, 0x29, 0x55, 0x06, 0xbd, 0xc7, 0x80, 0x04,
|
||||
0x8d, 0x84, 0x5d, 0xd7, 0xd3, 0xcc, 0x9e, 0xba, 0x4f, 0xdc, 0x3b, 0xc3, 0xd0, 0x04, 0x94, 0x7a,
|
||||
0xf7, 0x15, 0xa8, 0x04, 0x68, 0x9e, 0x4d, 0xf7, 0xcf, 0x29, 0x65, 0x01, 0xdb, 0xb5, 0xd1, 0xf3,
|
||||
0x50, 0xa3, 0x3a, 0x55, 0xbb, 0x76, 0x47, 0x25, 0x9d, 0x1b, 0x4f, 0x36, 0x15, 0x9d, 0x8b, 0x45,
|
||||
0xee, 0x2a, 0x8a, 0xe5, 0x1a, 0x9f, 0x62, 0x9e, 0x6e, 0x04, 0xd6, 0x8e, 0xf1, 0x29, 0x26, 0xb9,
|
||||
0xbe, 0x4a, 0x72, 0xe7, 0x96, 0xad, 0xe3, 0xdd, 0x53, 0x56, 0x1a, 0x29, 0xa6, 0x76, 0x17, 0xa1,
|
||||
0x24, 0x4e, 0xc0, 0x8f, 0x14, 0x00, 0xd0, 0x1a, 0xd4, 0xfc, 0x22, 0x54, 0x65, 0xbd, 0x45, 0x6e,
|
||||
0x68, 0xe5, 0x17, 0xca, 0x7e, 0xae, 0x52, 0xf5, 0xc9, 0xe8, 0x52, 0x5e, 0x83, 0x4a, 0xf8, 0x33,
|
||||
0xd9, 0x75, 0x27, 0x6e, 0x28, 0x02, 0x40, 0xac, 0x71, 0xab, 0x6f, 0x92, 0x3b, 0xe5, 0x81, 0xc5,
|
||||
0x5f, 0xca, 0x9f, 0x4b, 0x50, 0xe5, 0x29, 0x7b, 0x47, 0x4c, 0x95, 0xe9, 0xd1, 0x24, 0x7a, 0x34,
|
||||
0xfa, 0x37, 0xfa, 0x46, 0x74, 0x24, 0xf5, 0x7c, 0x62, 0x10, 0xa0, 0x4c, 0x68, 0x75, 0x1c, 0xc9,
|
||||
0xd7, 0x69, 0x7a, 0xd9, 0xc7, 0xc4, 0xd0, 0xf8, 0xd5, 0x50, 0x43, 0x6b, 0xc0, 0x94, 0xa6, 0xeb,
|
||||
0x0e, 0x76, 0x5d, 0x2e, 0x87, 0xbf, 0x24, 0x5f, 0x1e, 0x62, 0xc7, 0xf5, 0x4d, 0x3e, 0xab, 0xf8,
|
||||
0x4b, 0xf4, 0x16, 0x14, 0x45, 0x39, 0x9d, 0x4d, 0x2a, 0xa1, 0xc2, 0x72, 0xf2, 0xde, 0x4b, 0x50,
|
||||
0xc8, 0x7f, 0xce, 0x40, 0x8d, 0x2b, 0x6c, 0x99, 0xe7, 0xd4, 0xd1, 0xce, 0xb7, 0x0c, 0x95, 0xfd,
|
||||
0xc0, 0xf7, 0x47, 0xcd, 0x58, 0xc2, 0x21, 0x22, 0x42, 0x33, 0xce, 0x01, 0xa3, 0x59, 0x3d, 0x37,
|
||||
0x51, 0x56, 0xcf, 0x9f, 0x34, 0x82, 0x0d, 0xd6, 0x79, 0x85, 0x84, 0x3a, 0x4f, 0xfe, 0x2e, 0x94,
|
||||
0x43, 0x0c, 0x68, 0x84, 0x66, 0xc3, 0x19, 0xae, 0x31, 0x7f, 0x89, 0xee, 0x04, 0xb5, 0x0d, 0x53,
|
||||
0xd5, 0xf9, 0x04, 0x59, 0x62, 0x65, 0x8d, 0xfc, 0x7b, 0x09, 0x0a, 0x9c, 0xf3, 0x65, 0x28, 0xf3,
|
||||
0xa0, 0x43, 0xeb, 0x3e, 0xc6, 0x1d, 0x38, 0x88, 0x14, 0x7e, 0x4f, 0x2e, 0xea, 0x9c, 0x87, 0x62,
|
||||
0x2c, 0xde, 0x4c, 0xf1, 0xb4, 0xe0, 0x7f, 0x0a, 0x05, 0x19, 0xf2, 0x89, 0xc6, 0x97, 0xaf, 0x24,
|
||||
0x3a, 0x58, 0x56, 0x70, 0xdb, 0x7e, 0x88, 0x9d, 0xe3, 0xc9, 0xc7, 0x77, 0x6f, 0x86, 0x0c, 0x3a,
|
||||
0x65, 0x7f, 0x28, 0x08, 0xd0, 0x9b, 0x81, 0xba, 0xb3, 0x49, 0xd3, 0x8b, 0x70, 0x84, 0xe1, 0xe6,
|
||||
0x18, 0xa8, 0xfd, 0xa7, 0x6c, 0x10, 0x19, 0x3d, 0xca, 0x69, 0xeb, 0x9a, 0x27, 0xd2, 0x76, 0xc8,
|
||||
0x3f, 0x97, 0xe0, 0xfc, 0x3a, 0xf6, 0xd6, 0xa2, 0xcd, 0xfd, 0xb3, 0x96, 0xca, 0x84, 0x66, 0x92,
|
||||
0x50, 0x93, 0xdc, 0x7a, 0x13, 0x8a, 0x62, 0x4c, 0xc1, 0x46, 0xc4, 0x62, 0x2d, 0xff, 0x40, 0x82,
|
||||
0x06, 0xdf, 0x85, 0xee, 0x49, 0x4a, 0xea, 0x2e, 0xf6, 0xb0, 0xfe, 0x75, 0xf7, 0xcd, 0x7f, 0x97,
|
||||
0xa0, 0x1e, 0x8e, 0xf8, 0x34, 0x68, 0xbf, 0x0e, 0x79, 0x3a, 0x9e, 0xe0, 0x12, 0x8c, 0x35, 0x56,
|
||||
0x86, 0x4d, 0x42, 0x06, 0x2d, 0xf3, 0x76, 0x45, 0x72, 0xe2, 0xcb, 0x20, 0xed, 0x64, 0x4f, 0x9e,
|
||||
0x76, 0x78, 0x1a, 0xb6, 0xfb, 0x84, 0x2f, 0x1b, 0xff, 0x05, 0x00, 0xf9, 0xcb, 0x0c, 0x34, 0x82,
|
||||
0x7e, 0xe4, 0x6b, 0x8f, 0xfb, 0x43, 0xaa, 0xd5, 0xec, 0x13, 0xaa, 0x56, 0x73, 0x93, 0xc7, 0xfa,
|
||||
0x7c, 0x52, 0xac, 0xff, 0x5b, 0x06, 0x6a, 0x81, 0xd6, 0xb6, 0xbb, 0x9a, 0x85, 0xe6, 0xa0, 0xd0,
|
||||
0xeb, 0x6a, 0xc1, 0xf4, 0x91, 0xaf, 0xd0, 0x8e, 0xa8, 0x73, 0xa2, 0x7a, 0x7a, 0x29, 0xe9, 0x0e,
|
||||
0x87, 0x5c, 0x84, 0x12, 0x63, 0x41, 0xda, 0x41, 0xd6, 0x50, 0xd0, 0xa6, 0x9e, 0xd7, 0x56, 0xcc,
|
||||
0x58, 0x48, 0x3f, 0x7f, 0x13, 0x10, 0xbf, 0x61, 0xd5, 0xb0, 0x54, 0x17, 0xb7, 0x6d, 0x4b, 0x67,
|
||||
0x77, 0x9f, 0x57, 0xea, 0xfc, 0x4b, 0xcb, 0xda, 0x61, 0x70, 0xf4, 0x3a, 0xe4, 0xbc, 0xe3, 0x1e,
|
||||
0x8b, 0xe2, 0xb5, 0xc4, 0xe8, 0x18, 0xc8, 0xb5, 0x7b, 0xdc, 0xc3, 0x0a, 0x45, 0x47, 0xf3, 0x00,
|
||||
0x84, 0x95, 0xe7, 0x68, 0x0f, 0x79, 0x4a, 0xcc, 0x29, 0x21, 0x08, 0xb1, 0x66, 0x5f, 0x87, 0x53,
|
||||
0x2c, 0x75, 0xf0, 0xa5, 0xfc, 0x97, 0x0c, 0xd4, 0x03, 0x96, 0x0a, 0x76, 0xfb, 0x5d, 0x6f, 0xa8,
|
||||
0xfe, 0x46, 0x37, 0x83, 0xe3, 0xea, 0x86, 0x77, 0xa1, 0xcc, 0xef, 0xf3, 0x04, 0xf6, 0x00, 0x8c,
|
||||
0x64, 0x63, 0x84, 0x81, 0xe6, 0x9f, 0x90, 0x81, 0x16, 0x4e, 0x68, 0xa0, 0xf2, 0x0e, 0xcc, 0xf9,
|
||||
0x71, 0x2f, 0x40, 0xd8, 0xc4, 0x9e, 0x36, 0xa2, 0xe0, 0xb8, 0x0c, 0x65, 0x96, 0xcf, 0x58, 0x22,
|
||||
0x67, 0xa5, 0x3a, 0xec, 0x89, 0x0e, 0x57, 0xfe, 0x1e, 0xcc, 0xd2, 0xb8, 0x11, 0x1f, 0xe5, 0xa6,
|
||||
0x99, 0xab, 0xcb, 0xa2, 0x11, 0x20, 0x45, 0x3f, 0xb3, 0xee, 0x92, 0x12, 0x81, 0xc9, 0x1b, 0xf0,
|
||||
0x5c, 0x8c, 0xff, 0x04, 0x79, 0x81, 0x94, 0x42, 0x73, 0x3b, 0xd1, 0x9f, 0x45, 0x4f, 0x9f, 0xfd,
|
||||
0x2e, 0x89, 0xc9, 0xad, 0x6a, 0xe8, 0x71, 0xfb, 0xd2, 0xd1, 0x3b, 0x50, 0xb2, 0xf0, 0x91, 0x1a,
|
||||
0x0e, 0xbe, 0x29, 0x06, 0x74, 0x45, 0x0b, 0x1f, 0xd1, 0xbf, 0xe4, 0x2d, 0x38, 0x37, 0x20, 0xea,
|
||||
0x24, 0x67, 0xff, 0xab, 0x04, 0xe7, 0x57, 0x1d, 0xbb, 0xf7, 0x91, 0xe1, 0x78, 0x7d, 0xad, 0x1b,
|
||||
0xfd, 0x61, 0xe4, 0xe9, 0xb4, 0x71, 0xef, 0x87, 0xd2, 0x30, 0x8b, 0xcb, 0x37, 0x13, 0xcc, 0x75,
|
||||
0x50, 0x28, 0x7e, 0xe8, 0x50, 0xd2, 0xfe, 0x6f, 0x36, 0x49, 0x78, 0x8e, 0x37, 0x26, 0xd9, 0xa4,
|
||||
0xa9, 0x52, 0x12, 0xa7, 0x3e, 0xd9, 0xd3, 0x4e, 0x7d, 0x86, 0x78, 0x7e, 0xee, 0x09, 0x79, 0xfe,
|
||||
0x89, 0xdb, 0x90, 0xf7, 0x21, 0x3a, 0x91, 0xa3, 0x21, 0xf7, 0x54, 0xa3, 0xbc, 0x65, 0x80, 0x60,
|
||||
0x3a, 0xc5, 0x5f, 0xb5, 0xa4, 0x61, 0x13, 0xa2, 0x22, 0xb7, 0x25, 0xa2, 0x2c, 0x9d, 0x2a, 0x47,
|
||||
0xe6, 0x25, 0x1f, 0x40, 0x33, 0xc9, 0x4a, 0x27, 0xb1, 0xfc, 0x2f, 0x33, 0x00, 0x2d, 0x3a, 0x1d,
|
||||
0xda, 0xd5, 0xdc, 0xc3, 0xd3, 0x55, 0x94, 0x57, 0xa1, 0x1a, 0x18, 0x4c, 0xe0, 0xef, 0x61, 0x2b,
|
||||
0xd2, 0x89, 0x4b, 0x88, 0xc2, 0x96, 0xe0, 0x0c, 0x14, 0xbb, 0x3a, 0xe5, 0x13, 0xf2, 0x1a, 0x66,
|
||||
0x14, 0xb1, 0xa0, 0x87, 0x2e, 0x40, 0xc9, 0xb1, 0x8f, 0x54, 0xe2, 0x66, 0x3a, 0xcd, 0xad, 0x45,
|
||||
0xa5, 0xe8, 0xd8, 0x47, 0xc4, 0xf9, 0x74, 0x74, 0x0e, 0xa6, 0x3c, 0xcd, 0x3d, 0x24, 0xfc, 0x0b,
|
||||
0x2c, 0xdd, 0x91, 0x65, 0x4b, 0x47, 0xb3, 0x90, 0xdf, 0x37, 0xba, 0xd8, 0x6d, 0x4c, 0x51, 0x96,
|
||||
0x6c, 0x81, 0xde, 0xf0, 0xdf, 0x2f, 0x14, 0x53, 0xff, 0xfe, 0xca, 0x9e, 0x30, 0x7c, 0x25, 0xc1,
|
||||
0x74, 0xa0, 0x35, 0x1a, 0x80, 0x48, 0x4c, 0xa3, 0xf1, 0x6c, 0xc5, 0xd6, 0x59, 0xa8, 0xa8, 0x0d,
|
||||
0xf9, 0x89, 0x85, 0x11, 0xb2, 0xa8, 0x15, 0x90, 0x8c, 0xaa, 0xcb, 0xc9, 0xb9, 0xc8, 0xa1, 0x0d,
|
||||
0xdd, 0xff, 0x85, 0xa7, 0xe0, 0xd8, 0x47, 0x2d, 0x5d, 0x68, 0x83, 0x3d, 0xe3, 0x62, 0x55, 0x28,
|
||||
0xd1, 0xc6, 0x0a, 0x7d, 0xc9, 0x75, 0x15, 0xaa, 0xd8, 0x71, 0x6c, 0x47, 0x35, 0xb1, 0xeb, 0x6a,
|
||||
0x1d, 0xcc, 0x8b, 0xae, 0x0a, 0x05, 0x6e, 0x32, 0x98, 0xfc, 0x9f, 0x2c, 0xd4, 0x82, 0xa3, 0xf8,
|
||||
0xbf, 0xeb, 0x18, 0xba, 0xff, 0xbb, 0x8e, 0xa1, 0x93, 0x60, 0xee, 0xb0, 0x50, 0x18, 0x0a, 0xe6,
|
||||
0x1c, 0xd2, 0xd2, 0x49, 0x1e, 0x24, 0x0e, 0x66, 0xd9, 0x3a, 0x0e, 0x2e, 0x16, 0x7c, 0x10, 0xbf,
|
||||
0xd7, 0x88, 0x7d, 0xe4, 0x52, 0xd8, 0x47, 0x3e, 0x85, 0x7d, 0x14, 0x12, 0xec, 0x63, 0x0e, 0x0a,
|
||||
0x7b, 0xfd, 0xf6, 0x21, 0xf6, 0x78, 0x79, 0xc4, 0x57, 0x51, 0xbb, 0x29, 0xc6, 0xec, 0x46, 0x98,
|
||||
0x47, 0x29, 0x6c, 0x1e, 0x17, 0xa0, 0xc4, 0x7e, 0x5c, 0x50, 0x3d, 0x97, 0x4e, 0x59, 0xb3, 0x4a,
|
||||
0x91, 0x01, 0x76, 0x5d, 0x74, 0xd7, 0xef, 0x1d, 0xca, 0x49, 0x8e, 0x4e, 0x23, 0x4e, 0xcc, 0x42,
|
||||
0xfc, 0xce, 0xe1, 0x2e, 0x34, 0x0e, 0x70, 0xdf, 0xa1, 0x6f, 0x01, 0x54, 0xfa, 0x58, 0xf5, 0x41,
|
||||
0x1f, 0x3b, 0xc7, 0xda, 0x5e, 0x17, 0x37, 0x2a, 0x54, 0xb0, 0x39, 0xf1, 0x7d, 0x55, 0xf3, 0xb4,
|
||||
0x0f, 0xfc, 0xaf, 0xe8, 0x35, 0x98, 0x8b, 0x51, 0x1a, 0x96, 0x8e, 0x1f, 0x61, 0xbd, 0x51, 0xa5,
|
||||
0x74, 0xb3, 0x11, 0xba, 0x16, 0xfb, 0x26, 0x7f, 0x02, 0x28, 0x90, 0x64, 0xb2, 0xde, 0x31, 0x76,
|
||||
0xd5, 0x99, 0xf8, 0x55, 0xcb, 0x7f, 0x90, 0x60, 0x26, 0xbc, 0xd9, 0x69, 0x13, 0xe8, 0x3b, 0x50,
|
||||
0x66, 0x33, 0x6b, 0x95, 0x38, 0x30, 0xef, 0x1e, 0x2f, 0x8d, 0xd4, 0xb1, 0x02, 0x46, 0x10, 0xc7,
|
||||
0xae, 0x42, 0xf5, 0xc8, 0x76, 0x0e, 0x0d, 0xab, 0xa3, 0x12, 0xc9, 0x7c, 0xb7, 0xa9, 0x70, 0xe0,
|
||||
0x16, 0x81, 0xc9, 0x5f, 0x48, 0x30, 0xff, 0x61, 0x4f, 0xd7, 0x3c, 0x1c, 0xaa, 0x24, 0x26, 0x7d,
|
||||
0x50, 0xf2, 0xba, 0xff, 0xa6, 0x23, 0x93, 0x6e, 0xee, 0xca, 0xb0, 0x6f, 0xfc, 0x52, 0x82, 0x99,
|
||||
0x81, 0x5e, 0x13, 0xd5, 0x00, 0x3e, 0xb4, 0xda, 0xbc, 0x09, 0xaf, 0x9f, 0x41, 0x15, 0x28, 0xfa,
|
||||
0x2d, 0x79, 0x5d, 0x42, 0x65, 0x98, 0xda, 0xb5, 0x29, 0x76, 0x3d, 0x83, 0xea, 0x50, 0x61, 0x84,
|
||||
0xfd, 0x76, 0x1b, 0xbb, 0x6e, 0x3d, 0x2b, 0x20, 0x6b, 0x9a, 0xd1, 0xed, 0x3b, 0xb8, 0x9e, 0x43,
|
||||
0x55, 0x28, 0xed, 0xda, 0x0a, 0xee, 0x62, 0xcd, 0xc5, 0xf5, 0x3c, 0x42, 0x50, 0xe3, 0x0b, 0x9f,
|
||||
0xa8, 0x10, 0x82, 0xf9, 0x64, 0x53, 0x37, 0xf6, 0xc3, 0x5d, 0x19, 0x69, 0x55, 0xd0, 0x39, 0x38,
|
||||
0xfb, 0xa1, 0xa5, 0xe3, 0x7d, 0xc3, 0xc2, 0x7a, 0xf0, 0xa9, 0x7e, 0x06, 0x9d, 0x85, 0xe9, 0x96,
|
||||
0x65, 0x61, 0x27, 0x04, 0x94, 0x08, 0x70, 0x13, 0x3b, 0x1d, 0x1c, 0x02, 0x66, 0xd0, 0x0c, 0x54,
|
||||
0x37, 0x8d, 0x47, 0x21, 0x50, 0x76, 0xe9, 0x1f, 0xcf, 0x41, 0x89, 0x18, 0xee, 0x8a, 0x6d, 0x3b,
|
||||
0x3a, 0xea, 0x01, 0xa2, 0xcf, 0x8f, 0xcc, 0x9e, 0x6d, 0x89, 0x77, 0x7a, 0xe8, 0x95, 0x21, 0x09,
|
||||
0x75, 0x10, 0x95, 0x5f, 0x61, 0xf3, 0xfa, 0x10, 0x8a, 0x18, 0xba, 0x7c, 0x06, 0x99, 0x74, 0x47,
|
||||
0xd2, 0xea, 0xed, 0x1a, 0xed, 0x43, 0xff, 0x87, 0xe6, 0x11, 0x3b, 0xc6, 0x50, 0xfd, 0x1d, 0x63,
|
||||
0xcf, 0xff, 0xf8, 0x82, 0xbd, 0x11, 0xf3, 0xfd, 0x4f, 0x3e, 0x83, 0x1e, 0xc0, 0xec, 0x3a, 0x0e,
|
||||
0xd9, 0x9c, 0xbf, 0xe1, 0xd2, 0xf0, 0x0d, 0x07, 0x90, 0x4f, 0xb8, 0xe5, 0x06, 0xe4, 0xe9, 0x5c,
|
||||
0x07, 0x25, 0x99, 0x65, 0xf8, 0x31, 0x7b, 0x73, 0x61, 0x38, 0x82, 0xe0, 0xf6, 0x09, 0x4c, 0xc7,
|
||||
0x1e, 0xe3, 0xa2, 0x17, 0x13, 0xc8, 0x92, 0x9f, 0x55, 0x37, 0x6f, 0xa4, 0x41, 0x15, 0x7b, 0x75,
|
||||
0xa0, 0x16, 0x7d, 0xbc, 0x84, 0x16, 0x13, 0xe8, 0x13, 0x1f, 0x52, 0x36, 0x5f, 0x4c, 0x81, 0x29,
|
||||
0x36, 0x32, 0xa1, 0x1e, 0x7f, 0x1c, 0x8a, 0x6e, 0x8c, 0x64, 0x10, 0x35, 0xb7, 0x97, 0x52, 0xe1,
|
||||
0x8a, 0xed, 0x8e, 0xa9, 0x11, 0x0c, 0x3c, 0x4e, 0x44, 0xb7, 0x92, 0xd9, 0x0c, 0x7b, 0x35, 0xd9,
|
||||
0xbc, 0x9d, 0x1a, 0x5f, 0x6c, 0xfd, 0x7d, 0x36, 0x4f, 0x4e, 0x7a, 0xe0, 0x87, 0x5e, 0x4d, 0x66,
|
||||
0x37, 0xe2, 0x65, 0x62, 0x73, 0xe9, 0x24, 0x24, 0x42, 0x88, 0xcf, 0xe8, 0x20, 0x38, 0xe1, 0x91,
|
||||
0x5c, 0xdc, 0xef, 0x7c, 0x7e, 0xc3, 0x5f, 0xff, 0x35, 0x5f, 0x3d, 0x01, 0x85, 0x10, 0xc0, 0x8e,
|
||||
0x3f, 0xbf, 0xf5, 0xdd, 0xf0, 0xf6, 0x58, 0xab, 0x39, 0x9d, 0x0f, 0x7e, 0x0c, 0xd3, 0xb1, 0x9f,
|
||||
0xf4, 0x13, 0xbd, 0x26, 0xf9, 0x67, 0xff, 0xe6, 0xa8, 0x34, 0xcd, 0x5c, 0x32, 0x36, 0x57, 0x47,
|
||||
0x43, 0xac, 0x3f, 0x61, 0xf6, 0xde, 0xbc, 0x91, 0x06, 0x55, 0x1c, 0xc4, 0xa5, 0xe1, 0x32, 0x36,
|
||||
0x9b, 0x46, 0x37, 0x93, 0x79, 0x24, 0xcf, 0xd5, 0x9b, 0x2f, 0xa7, 0xc4, 0x16, 0x9b, 0xaa, 0x00,
|
||||
0xeb, 0xd8, 0xdb, 0xc4, 0x9e, 0x43, 0x6c, 0xe4, 0x7a, 0xa2, 0xca, 0x03, 0x04, 0x7f, 0x9b, 0x17,
|
||||
0xc6, 0xe2, 0x89, 0x0d, 0xbe, 0x0d, 0xc8, 0x4f, 0xb1, 0xa1, 0x07, 0x25, 0x57, 0x47, 0x8e, 0xef,
|
||||
0xd8, 0xac, 0x6d, 0xdc, 0xdd, 0x3c, 0x80, 0xfa, 0xa6, 0x66, 0x91, 0xc6, 0x2d, 0xe0, 0x7b, 0x33,
|
||||
0x51, 0xb0, 0x38, 0xda, 0x10, 0x6d, 0x0d, 0xc5, 0x16, 0x87, 0x39, 0x12, 0x39, 0x54, 0x13, 0x2e,
|
||||
0x88, 0xe3, 0xb1, 0x25, 0xd0, 0x46, 0x0c, 0x71, 0x48, 0x6c, 0x19, 0x81, 0x2f, 0x36, 0x7e, 0x2c,
|
||||
0xd1, 0x47, 0xde, 0x31, 0x84, 0xfb, 0x86, 0x77, 0xb0, 0xdd, 0xd5, 0x2c, 0x37, 0x8d, 0x08, 0x14,
|
||||
0xf1, 0x04, 0x22, 0x70, 0x7c, 0x21, 0x82, 0x0e, 0xd5, 0xc8, 0x74, 0x0c, 0x25, 0xbd, 0x0a, 0x49,
|
||||
0x9a, 0xcf, 0x35, 0x17, 0xc7, 0x23, 0x8a, 0x5d, 0x0e, 0xa0, 0xea, 0xdb, 0x2b, 0x53, 0xee, 0x8b,
|
||||
0xc3, 0x24, 0x0d, 0x70, 0x86, 0xb8, 0x5b, 0x32, 0x6a, 0xd8, 0xdd, 0x06, 0x9b, 0x7f, 0x94, 0x6e,
|
||||
0x68, 0x34, 0xca, 0xdd, 0x86, 0x4f, 0x14, 0x58, 0x3c, 0x89, 0x0d, 0xda, 0x92, 0x83, 0x55, 0xe2,
|
||||
0xdc, 0x30, 0x31, 0x9e, 0x0c, 0x99, 0xdb, 0xc9, 0x67, 0xd0, 0x7d, 0x28, 0xb0, 0x6a, 0x1e, 0x3d,
|
||||
0x3f, 0xba, 0xd0, 0xe7, 0xdc, 0xaf, 0x8d, 0xc1, 0x12, 0x8c, 0x0f, 0xe1, 0xdc, 0x90, 0x32, 0x3f,
|
||||
0x31, 0xcf, 0x8d, 0x6e, 0x09, 0xc6, 0x78, 0xf9, 0xd2, 0x6f, 0xf3, 0x50, 0xf4, 0x9f, 0x1a, 0x3c,
|
||||
0x83, 0x1a, 0xf6, 0x19, 0x14, 0x95, 0x1f, 0xc3, 0x74, 0xec, 0xcd, 0x72, 0xa2, 0x8d, 0x24, 0xbf,
|
||||
0x6b, 0x1e, 0x17, 0x34, 0xef, 0xf3, 0xff, 0x64, 0x14, 0xf9, 0xe5, 0x85, 0x61, 0x85, 0x69, 0x3c,
|
||||
0xb5, 0x8c, 0x61, 0xfc, 0xd4, 0x13, 0xc9, 0x16, 0x40, 0x28, 0xd0, 0x8f, 0xfe, 0xfd, 0x87, 0xc4,
|
||||
0xae, 0x71, 0x02, 0x6f, 0x9e, 0xd0, 0x3d, 0x46, 0xb3, 0x5b, 0xbe, 0xf3, 0x9d, 0x57, 0x3b, 0x86,
|
||||
0x77, 0xd0, 0xdf, 0x23, 0x5f, 0x6e, 0x33, 0xd4, 0x97, 0x0d, 0x9b, 0xff, 0x75, 0xdb, 0x37, 0x90,
|
||||
0xdb, 0x94, 0xfa, 0x36, 0xd9, 0xa3, 0xb7, 0xb7, 0x57, 0xa0, 0xab, 0x3b, 0xff, 0x0f, 0x00, 0x00,
|
||||
0xff, 0xff, 0x99, 0xf2, 0x88, 0x67, 0x64, 0x3b, 0x00, 0x00,
|
||||
0x13, 0xa3, 0x01, 0x0a, 0xa4, 0x28, 0xfa, 0x40, 0x37, 0x6d, 0xd1, 0x45, 0xd1, 0x55, 0x1f, 0x9b,
|
||||
0x02, 0x41, 0x17, 0x6d, 0xd1, 0x4d, 0x57, 0x41, 0xbb, 0xe8, 0x27, 0x74, 0xd9, 0x5d, 0xbf, 0xa1,
|
||||
0xb8, 0x8f, 0xb9, 0xf3, 0xe0, 0x0c, 0x39, 0x22, 0xed, 0x78, 0xa7, 0x7b, 0xe6, 0x9c, 0x73, 0xcf,
|
||||
0x3d, 0xf7, 0xbc, 0x79, 0x05, 0x4d, 0x5d, 0xf3, 0x34, 0xb5, 0x6b, 0xdb, 0x8e, 0x7e, 0x6d, 0xe0,
|
||||
0xd8, 0x9e, 0x8d, 0x8e, 0x9b, 0x46, 0xff, 0xe1, 0xd0, 0x65, 0xab, 0x6b, 0xe4, 0x73, 0xbb, 0xd6,
|
||||
0xb5, 0x4d, 0xd3, 0xb6, 0x18, 0xa8, 0xdd, 0x30, 0x2c, 0x0f, 0x3b, 0x96, 0xd6, 0xe7, 0xeb, 0x5a,
|
||||
0x98, 0xa0, 0x5d, 0x73, 0xbb, 0x7b, 0xd8, 0xd4, 0xd8, 0x4a, 0x9e, 0x83, 0xe2, 0x1d, 0x73, 0xe0,
|
||||
0x1d, 0xca, 0xbf, 0x90, 0xa0, 0x76, 0xb7, 0x3f, 0x74, 0xf7, 0x14, 0xfc, 0x60, 0x88, 0x5d, 0x0f,
|
||||
0xbd, 0x02, 0x85, 0x1d, 0xcd, 0xc5, 0x2d, 0x69, 0x49, 0x5a, 0xae, 0xae, 0x9c, 0xbd, 0x16, 0xd9,
|
||||
0x95, 0xef, 0xb7, 0xee, 0xf6, 0x6e, 0x69, 0x2e, 0x56, 0x28, 0x26, 0x42, 0x50, 0xd0, 0x77, 0x3a,
|
||||
0xab, 0xad, 0xdc, 0x92, 0xb4, 0x9c, 0x57, 0xe8, 0xdf, 0x68, 0x11, 0xc0, 0xc5, 0x3d, 0x13, 0x5b,
|
||||
0x5e, 0x67, 0xd5, 0x6d, 0xe5, 0x97, 0xf2, 0xcb, 0x79, 0x25, 0x04, 0x41, 0x32, 0xd4, 0xba, 0x76,
|
||||
0xbf, 0x8f, 0xbb, 0x9e, 0x61, 0x5b, 0x9d, 0xd5, 0x56, 0x81, 0xd2, 0x46, 0x60, 0xf2, 0xaf, 0x25,
|
||||
0xa8, 0x73, 0xd1, 0xdc, 0x81, 0x6d, 0xb9, 0x18, 0xdd, 0x80, 0x92, 0xeb, 0x69, 0xde, 0xd0, 0xe5,
|
||||
0xd2, 0x9d, 0x49, 0x94, 0x6e, 0x8b, 0xa2, 0x28, 0x1c, 0x35, 0x51, 0xbc, 0xf8, 0xf6, 0xf9, 0xd1,
|
||||
0xed, 0x63, 0x47, 0x28, 0xc4, 0x8f, 0x20, 0xff, 0x4c, 0x82, 0xe6, 0x96, 0xbf, 0xf4, 0xb5, 0x77,
|
||||
0x12, 0x8a, 0x5d, 0x7b, 0x68, 0x79, 0x54, 0xc0, 0xba, 0xc2, 0x16, 0xe8, 0x02, 0xd4, 0xba, 0x7b,
|
||||
0x9a, 0x65, 0xe1, 0xbe, 0x6a, 0x69, 0x26, 0xa6, 0xa2, 0x54, 0x94, 0x2a, 0x87, 0x6d, 0x68, 0x26,
|
||||
0xce, 0x24, 0xd1, 0x12, 0x54, 0x07, 0x9a, 0xe3, 0x19, 0x11, 0x9d, 0x85, 0x41, 0xf2, 0x6f, 0x24,
|
||||
0x58, 0x78, 0xcf, 0x75, 0x8d, 0x9e, 0x35, 0x22, 0xd9, 0x02, 0x94, 0x2c, 0x5b, 0xc7, 0x9d, 0x55,
|
||||
0x2a, 0x5a, 0x5e, 0xe1, 0x2b, 0x74, 0x06, 0x2a, 0x03, 0x8c, 0x1d, 0xd5, 0xb1, 0xfb, 0xbe, 0x60,
|
||||
0x65, 0x02, 0x50, 0xec, 0x3e, 0x46, 0x1f, 0xc0, 0x71, 0x37, 0xc6, 0x88, 0xdd, 0x66, 0x75, 0xe5,
|
||||
0xe2, 0xb5, 0x11, 0x7b, 0xbc, 0x16, 0xdf, 0x54, 0x19, 0xa5, 0x96, 0x1f, 0xe7, 0xe0, 0x84, 0xc0,
|
||||
0x63, 0xb2, 0x92, 0xbf, 0x89, 0xe6, 0x5c, 0xdc, 0x13, 0xe2, 0xb1, 0x45, 0x16, 0xcd, 0x09, 0x95,
|
||||
0xe7, 0xc3, 0x2a, 0xcf, 0x60, 0x60, 0x71, 0x7d, 0x16, 0x47, 0xf4, 0x89, 0xce, 0x43, 0x15, 0x3f,
|
||||
0x1a, 0x18, 0x0e, 0x56, 0x3d, 0xc3, 0xc4, 0xad, 0xd2, 0x92, 0xb4, 0x5c, 0x50, 0x80, 0x81, 0xb6,
|
||||
0x0d, 0x33, 0x6c, 0x91, 0x73, 0x99, 0x2d, 0x52, 0xfe, 0xad, 0x04, 0xa7, 0x46, 0x6e, 0x89, 0x9b,
|
||||
0xb8, 0x02, 0x4d, 0x7a, 0xf2, 0x40, 0x33, 0xc4, 0xd8, 0x89, 0xc2, 0x2f, 0x8f, 0x53, 0x78, 0x80,
|
||||
0xae, 0x8c, 0xd0, 0x87, 0x84, 0xcc, 0x65, 0x17, 0x72, 0x1f, 0x4e, 0xad, 0x61, 0x8f, 0x6f, 0x40,
|
||||
0xbe, 0x61, 0x77, 0xfa, 0x10, 0x11, 0xf5, 0xa5, 0xdc, 0x88, 0x2f, 0xfd, 0x29, 0x27, 0x7c, 0x89,
|
||||
0x6e, 0xd5, 0xb1, 0x76, 0x6d, 0x74, 0x16, 0x2a, 0x02, 0x85, 0x5b, 0x45, 0x00, 0x40, 0x6f, 0x40,
|
||||
0x91, 0x48, 0xca, 0x4c, 0xa2, 0xb1, 0x72, 0x21, 0xf9, 0x4c, 0x21, 0x9e, 0x0a, 0xc3, 0x47, 0x1d,
|
||||
0x68, 0xb8, 0x9e, 0xe6, 0x78, 0xea, 0xc0, 0x76, 0xe9, 0x3d, 0x53, 0xc3, 0xa9, 0xae, 0xc8, 0x51,
|
||||
0x0e, 0x22, 0x98, 0xae, 0xbb, 0xbd, 0x4d, 0x8e, 0xa9, 0xd4, 0x29, 0xa5, 0xbf, 0x44, 0x77, 0xa0,
|
||||
0x86, 0x2d, 0x3d, 0x60, 0x54, 0xc8, 0xcc, 0xa8, 0x8a, 0x2d, 0x5d, 0xb0, 0x09, 0xee, 0xa7, 0x98,
|
||||
0xfd, 0x7e, 0x7e, 0x24, 0x41, 0x6b, 0xf4, 0x82, 0x66, 0x09, 0x94, 0x6f, 0x32, 0x22, 0xcc, 0x2e,
|
||||
0x68, 0xac, 0x87, 0x8b, 0x4b, 0x52, 0x38, 0x89, 0x6c, 0xc0, 0x73, 0x81, 0x34, 0xf4, 0xcb, 0x53,
|
||||
0x33, 0x96, 0xcf, 0x25, 0x58, 0x88, 0xef, 0x35, 0xcb, 0xb9, 0x5f, 0x83, 0xa2, 0x61, 0xed, 0xda,
|
||||
0xfe, 0xb1, 0x17, 0xc7, 0xf8, 0x19, 0xd9, 0x8b, 0x21, 0xcb, 0x26, 0x9c, 0x59, 0xc3, 0x5e, 0xc7,
|
||||
0x72, 0xb1, 0xe3, 0xdd, 0x32, 0xac, 0xbe, 0xdd, 0xdb, 0xd4, 0xbc, 0xbd, 0x19, 0x7c, 0x24, 0x62,
|
||||
0xee, 0xb9, 0x98, 0xb9, 0xcb, 0xbf, 0x93, 0xe0, 0x6c, 0xf2, 0x7e, 0xfc, 0xe8, 0x6d, 0x28, 0xef,
|
||||
0x1a, 0xb8, 0xaf, 0x13, 0x9d, 0x49, 0x54, 0x67, 0x62, 0x4d, 0x7c, 0x65, 0x40, 0x90, 0xf9, 0x09,
|
||||
0x2f, 0xa4, 0x18, 0xe8, 0x96, 0xe7, 0x18, 0x56, 0xef, 0x9e, 0xe1, 0x7a, 0x0a, 0xc3, 0x0f, 0xe9,
|
||||
0x33, 0x9f, 0xdd, 0x32, 0x7f, 0x28, 0xc1, 0xe2, 0x1a, 0xf6, 0x6e, 0x8b, 0x50, 0x4b, 0xbe, 0x1b,
|
||||
0xae, 0x67, 0x74, 0xdd, 0x27, 0x5b, 0x64, 0x64, 0xc8, 0x99, 0xf2, 0x4f, 0x24, 0x38, 0x9f, 0x2a,
|
||||
0x0c, 0x57, 0x1d, 0x0f, 0x25, 0x7e, 0xa0, 0x4d, 0x0e, 0x25, 0xdf, 0xc4, 0x87, 0x1f, 0x69, 0xfd,
|
||||
0x21, 0xde, 0xd4, 0x0c, 0x87, 0x85, 0x92, 0x29, 0x03, 0xeb, 0x1f, 0x25, 0x38, 0xb7, 0x86, 0xbd,
|
||||
0x4d, 0x3f, 0xcd, 0x3c, 0x43, 0xed, 0x64, 0xa8, 0x28, 0x7e, 0xcc, 0x2e, 0x33, 0x51, 0xda, 0x67,
|
||||
0xa2, 0xbe, 0x45, 0xea, 0x07, 0x21, 0x87, 0xbc, 0xcd, 0x6a, 0x01, 0xae, 0x3c, 0xf9, 0x71, 0x1e,
|
||||
0x6a, 0x1f, 0xf1, 0xfa, 0x80, 0xa6, 0x91, 0xb8, 0x1e, 0xa4, 0x64, 0x3d, 0x84, 0x4a, 0x8a, 0xa4,
|
||||
0x2a, 0x63, 0x0d, 0xea, 0x2e, 0xc6, 0xfb, 0xd3, 0x24, 0x8d, 0x1a, 0x21, 0x14, 0xc1, 0xfe, 0x1e,
|
||||
0x1c, 0x1f, 0x5a, 0xbb, 0xa4, 0xac, 0xc5, 0x3a, 0x3f, 0x05, 0xab, 0x2e, 0x27, 0x47, 0x9e, 0x51,
|
||||
0x42, 0xf4, 0x3e, 0xcc, 0xc7, 0x79, 0x15, 0x33, 0xf1, 0x8a, 0x93, 0xa1, 0x0e, 0x34, 0x75, 0xc7,
|
||||
0x1e, 0x0c, 0xb0, 0xae, 0xba, 0x3e, 0xab, 0x52, 0x36, 0x56, 0x9c, 0xce, 0x67, 0x25, 0x7f, 0x21,
|
||||
0xc1, 0xc2, 0x7d, 0xcd, 0xeb, 0xee, 0xad, 0x9a, 0xfc, 0x72, 0x66, 0x30, 0xed, 0xb7, 0xa1, 0xf2,
|
||||
0x90, 0x5f, 0x84, 0x1f, 0xbf, 0xce, 0x27, 0x08, 0x14, 0xbe, 0x72, 0x25, 0xa0, 0x90, 0xbf, 0x92,
|
||||
0xe0, 0x24, 0x6d, 0x22, 0x7c, 0xe9, 0xbe, 0x7e, 0x27, 0x9b, 0xd0, 0x48, 0xa0, 0xcb, 0xd0, 0x30,
|
||||
0x35, 0x67, 0x7f, 0x2b, 0xc0, 0x29, 0x52, 0x9c, 0x18, 0x54, 0x7e, 0x04, 0xc0, 0x57, 0xeb, 0x6e,
|
||||
0x6f, 0x0a, 0xf9, 0x6f, 0xc2, 0x1c, 0xdf, 0x95, 0xfb, 0xdb, 0xa4, 0x8b, 0xf5, 0xd1, 0xe5, 0x7f,
|
||||
0x4a, 0xd0, 0x08, 0x22, 0x28, 0xf5, 0xaa, 0x06, 0xe4, 0x84, 0x2f, 0xe5, 0x3a, 0xab, 0xe8, 0x6d,
|
||||
0x28, 0xb1, 0x06, 0x93, 0xf3, 0xbe, 0x14, 0xe5, 0xcd, 0x9b, 0xcf, 0x50, 0x18, 0xa6, 0x00, 0x85,
|
||||
0x13, 0x11, 0x1d, 0x89, 0xa8, 0x23, 0xfa, 0xc5, 0x00, 0x82, 0x3a, 0x30, 0x1f, 0x2d, 0xda, 0x7c,
|
||||
0x9f, 0x59, 0x4a, 0x8b, 0x36, 0xab, 0x9a, 0xa7, 0xd1, 0x60, 0xd3, 0x88, 0xd4, 0x6c, 0xae, 0xfc,
|
||||
0xbf, 0x22, 0x54, 0x43, 0xa7, 0x1c, 0x39, 0x49, 0xfc, 0x4a, 0x73, 0x93, 0xe3, 0x66, 0x7e, 0xb4,
|
||||
0x73, 0xb8, 0x04, 0x0d, 0x83, 0xe6, 0x6a, 0x95, 0x9b, 0x22, 0x0d, 0xae, 0x15, 0xa5, 0xce, 0xa0,
|
||||
0xdc, 0x2f, 0xd0, 0x22, 0x54, 0xad, 0xa1, 0xa9, 0xda, 0xbb, 0xaa, 0x63, 0x1f, 0xb8, 0xbc, 0x05,
|
||||
0xa9, 0x58, 0x43, 0xf3, 0x5b, 0xbb, 0x8a, 0x7d, 0xe0, 0x06, 0x55, 0x6e, 0xe9, 0x88, 0x55, 0xee,
|
||||
0x22, 0x54, 0x4d, 0xed, 0x11, 0xe1, 0xaa, 0x5a, 0x43, 0x93, 0x76, 0x27, 0x79, 0xa5, 0x62, 0x6a,
|
||||
0x8f, 0x14, 0xfb, 0x60, 0x63, 0x68, 0xa2, 0x65, 0x68, 0xf6, 0x35, 0xd7, 0x53, 0xc3, 0xed, 0x4d,
|
||||
0x99, 0xb6, 0x37, 0x0d, 0x02, 0xbf, 0x13, 0xb4, 0x38, 0xa3, 0xf5, 0x72, 0x65, 0x86, 0x7a, 0x59,
|
||||
0x37, 0xfb, 0x01, 0x23, 0xc8, 0x5e, 0x2f, 0xeb, 0x66, 0x5f, 0xb0, 0xb9, 0x09, 0x73, 0x3b, 0xb4,
|
||||
0x02, 0x72, 0x5b, 0xd5, 0xd4, 0x08, 0x75, 0x97, 0x14, 0x3f, 0xac, 0x50, 0x52, 0x7c, 0x74, 0xf4,
|
||||
0x16, 0x54, 0x68, 0xea, 0xa1, 0xb4, 0xb5, 0x4c, 0xb4, 0x01, 0x01, 0xa1, 0xd6, 0x71, 0xdf, 0xd3,
|
||||
0x28, 0x75, 0x3d, 0x1b, 0xb5, 0x20, 0x40, 0xaf, 0xc0, 0x89, 0xae, 0x83, 0x35, 0x0f, 0xeb, 0xb7,
|
||||
0x0e, 0x6f, 0xdb, 0xe6, 0x40, 0xa3, 0xc6, 0xd4, 0x6a, 0x2c, 0x49, 0xcb, 0x65, 0x25, 0xe9, 0x13,
|
||||
0x09, 0x0c, 0x5d, 0xb1, 0xba, 0xeb, 0xd8, 0x66, 0x6b, 0x9e, 0x05, 0x86, 0x28, 0x14, 0x9d, 0x03,
|
||||
0xf0, 0x43, 0xb7, 0xe6, 0xb5, 0x9a, 0xf4, 0x16, 0x2b, 0x1c, 0xf2, 0x9e, 0x27, 0x7f, 0x06, 0x27,
|
||||
0x03, 0x0b, 0x09, 0xdd, 0xc6, 0xe8, 0xc5, 0x4a, 0xd3, 0x5e, 0xec, 0xf8, 0xda, 0xf5, 0xdf, 0x05,
|
||||
0x58, 0xd8, 0xd2, 0x1e, 0xe2, 0xa7, 0x5f, 0x26, 0x67, 0x8a, 0xc7, 0xf7, 0xe0, 0x38, 0xad, 0x8c,
|
||||
0x57, 0x42, 0xf2, 0x8c, 0xc9, 0xc0, 0xe1, 0xeb, 0x1c, 0x25, 0x44, 0xef, 0x92, 0xd2, 0x01, 0x77,
|
||||
0xf7, 0x37, 0x6d, 0x23, 0xc8, 0xbe, 0xe7, 0x12, 0xf8, 0xdc, 0x16, 0x58, 0x4a, 0x98, 0x02, 0x6d,
|
||||
0x8e, 0x86, 0x36, 0x96, 0x77, 0x5f, 0x18, 0xdb, 0x7f, 0x05, 0xda, 0x8f, 0x47, 0x38, 0xd4, 0x82,
|
||||
0x39, 0x9e, 0xdd, 0xa9, 0xdf, 0x97, 0x15, 0x7f, 0x89, 0x36, 0xe1, 0x04, 0x3b, 0xc1, 0x16, 0x37,
|
||||
0x6a, 0x76, 0xf8, 0x72, 0xa6, 0xc3, 0x27, 0x91, 0x46, 0x7d, 0xa2, 0x72, 0x54, 0x9f, 0x68, 0xc1,
|
||||
0x1c, 0xb7, 0x53, 0x1a, 0x0b, 0xca, 0x8a, 0xbf, 0x24, 0xd7, 0x6c, 0x98, 0x03, 0xdb, 0xf1, 0x0c,
|
||||
0xab, 0xd7, 0xaa, 0xd2, 0x6f, 0x01, 0x80, 0xb4, 0x18, 0x10, 0xe8, 0x73, 0xc2, 0xa4, 0xe0, 0x1d,
|
||||
0x28, 0x0b, 0x0b, 0xcf, 0x65, 0xb6, 0x70, 0x41, 0x13, 0x8f, 0xd1, 0xf9, 0x58, 0x8c, 0x96, 0xff,
|
||||
0x25, 0x41, 0x6d, 0x95, 0x1c, 0xe9, 0x9e, 0xdd, 0xa3, 0x19, 0xe5, 0x12, 0x34, 0x1c, 0xdc, 0xb5,
|
||||
0x1d, 0x5d, 0xc5, 0x96, 0xe7, 0x18, 0x98, 0x75, 0xa3, 0x05, 0xa5, 0xce, 0xa0, 0x77, 0x18, 0x90,
|
||||
0xa0, 0x91, 0xb0, 0xeb, 0x7a, 0x9a, 0x39, 0x50, 0x77, 0x89, 0x7b, 0xe7, 0x18, 0x9a, 0x80, 0x52,
|
||||
0xef, 0xbe, 0x00, 0xb5, 0x00, 0xcd, 0xb3, 0xe9, 0xfe, 0x05, 0xa5, 0x2a, 0x60, 0xdb, 0x36, 0x7a,
|
||||
0x1e, 0x1a, 0x54, 0xa7, 0x6a, 0xdf, 0xee, 0xa9, 0xa4, 0x73, 0xe3, 0xc9, 0xa6, 0xa6, 0x73, 0xb1,
|
||||
0xc8, 0x5d, 0x45, 0xb1, 0x5c, 0xe3, 0x53, 0xcc, 0xd3, 0x8d, 0xc0, 0xda, 0x32, 0x3e, 0xc5, 0x24,
|
||||
0xd7, 0xd7, 0x49, 0xee, 0xdc, 0xb0, 0x75, 0xbc, 0x3d, 0x65, 0xa5, 0x91, 0x61, 0x6a, 0x77, 0x16,
|
||||
0x2a, 0xe2, 0x04, 0xfc, 0x48, 0x01, 0x00, 0xdd, 0x85, 0x86, 0x5f, 0x84, 0xaa, 0xac, 0xb7, 0x28,
|
||||
0xa4, 0x56, 0x7e, 0xa1, 0xec, 0xe7, 0x2a, 0x75, 0x9f, 0x8c, 0x2e, 0xe5, 0xbb, 0x50, 0x0b, 0x7f,
|
||||
0x26, 0xbb, 0x6e, 0xc5, 0x0d, 0x45, 0x00, 0x88, 0x35, 0x6e, 0x0c, 0x4d, 0x72, 0xa7, 0x3c, 0xb0,
|
||||
0xf8, 0x4b, 0xf9, 0x73, 0x09, 0xea, 0x3c, 0x65, 0x6f, 0x89, 0xa9, 0x32, 0x3d, 0x9a, 0x44, 0x8f,
|
||||
0x46, 0xff, 0x46, 0xdf, 0x88, 0x8e, 0xa4, 0x9e, 0x4f, 0x0c, 0x02, 0x94, 0x09, 0xad, 0x8e, 0x23,
|
||||
0xf9, 0x3a, 0x4b, 0x2f, 0xfb, 0x98, 0x18, 0x1a, 0xbf, 0x1a, 0x6a, 0x68, 0x2d, 0x98, 0xd3, 0x74,
|
||||
0xdd, 0xc1, 0xae, 0xcb, 0xe5, 0xf0, 0x97, 0xe4, 0xcb, 0x43, 0xec, 0xb8, 0xbe, 0xc9, 0xe7, 0x15,
|
||||
0x7f, 0x89, 0xde, 0x82, 0xb2, 0x28, 0xa7, 0xf3, 0x49, 0x25, 0x54, 0x58, 0x4e, 0xde, 0x7b, 0x09,
|
||||
0x0a, 0xf9, 0xcf, 0x39, 0x68, 0x70, 0x85, 0xdd, 0xe2, 0x39, 0x75, 0xbc, 0xf3, 0xdd, 0x82, 0xda,
|
||||
0x6e, 0xe0, 0xfb, 0xe3, 0x66, 0x2c, 0xe1, 0x10, 0x11, 0xa1, 0x99, 0xe4, 0x80, 0xd1, 0xac, 0x5e,
|
||||
0x98, 0x29, 0xab, 0x17, 0x8f, 0x1a, 0xc1, 0x46, 0xeb, 0xbc, 0x52, 0x42, 0x9d, 0x27, 0x7f, 0x17,
|
||||
0xaa, 0x21, 0x06, 0x34, 0x42, 0xb3, 0xe1, 0x0c, 0xd7, 0x98, 0xbf, 0x44, 0x37, 0x82, 0xda, 0x86,
|
||||
0xa9, 0xea, 0x74, 0x82, 0x2c, 0xb1, 0xb2, 0x46, 0xfe, 0xbd, 0x04, 0x25, 0xce, 0xf9, 0x3c, 0x54,
|
||||
0x79, 0xd0, 0xa1, 0x75, 0x1f, 0xe3, 0x0e, 0x1c, 0x44, 0x0a, 0xbf, 0x27, 0x17, 0x75, 0x4e, 0x43,
|
||||
0x39, 0x16, 0x6f, 0xe6, 0x78, 0x5a, 0xf0, 0x3f, 0x85, 0x82, 0x0c, 0xf9, 0x44, 0xe3, 0xcb, 0x57,
|
||||
0x12, 0x1d, 0x2c, 0x2b, 0xb8, 0x6b, 0x3f, 0xc4, 0xce, 0xe1, 0xec, 0xe3, 0xbb, 0x37, 0x43, 0x06,
|
||||
0x9d, 0xb1, 0x3f, 0x14, 0x04, 0xe8, 0xcd, 0x40, 0xdd, 0xf9, 0xa4, 0xe9, 0x45, 0x38, 0xc2, 0x70,
|
||||
0x73, 0x0c, 0xd4, 0xfe, 0x53, 0x36, 0x88, 0x8c, 0x1e, 0x65, 0xda, 0xba, 0xe6, 0x89, 0xb4, 0x1d,
|
||||
0xf2, 0xcf, 0x25, 0x38, 0xbd, 0x86, 0xbd, 0xbb, 0xd1, 0xe6, 0xfe, 0x59, 0x4b, 0x65, 0x42, 0x3b,
|
||||
0x49, 0xa8, 0x59, 0x6e, 0xbd, 0x0d, 0x65, 0x31, 0xa6, 0x60, 0x23, 0x62, 0xb1, 0x96, 0x7f, 0x20,
|
||||
0x41, 0x8b, 0xef, 0x42, 0xf7, 0x24, 0x25, 0x75, 0x1f, 0x7b, 0x58, 0xff, 0xba, 0xfb, 0xe6, 0xbf,
|
||||
0x4b, 0xd0, 0x0c, 0x47, 0x7c, 0x1a, 0xb4, 0x5f, 0x87, 0x22, 0x1d, 0x4f, 0x70, 0x09, 0x26, 0x1a,
|
||||
0x2b, 0xc3, 0x26, 0x21, 0x83, 0x96, 0x79, 0xdb, 0x22, 0x39, 0xf1, 0x65, 0x90, 0x76, 0xf2, 0x47,
|
||||
0x4f, 0x3b, 0x3c, 0x0d, 0xdb, 0x43, 0xc2, 0x97, 0x8d, 0xff, 0x02, 0x80, 0xfc, 0x65, 0x0e, 0x5a,
|
||||
0x41, 0x3f, 0xf2, 0xb5, 0xc7, 0xfd, 0x94, 0x6a, 0x35, 0xff, 0x84, 0xaa, 0xd5, 0xc2, 0xec, 0xb1,
|
||||
0xbe, 0x98, 0x14, 0xeb, 0xff, 0x96, 0x83, 0x46, 0xa0, 0xb5, 0xcd, 0xbe, 0x66, 0xa1, 0x05, 0x28,
|
||||
0x0d, 0xfa, 0x5a, 0x30, 0x7d, 0xe4, 0x2b, 0xb4, 0x25, 0xea, 0x9c, 0xa8, 0x9e, 0x5e, 0x4a, 0xba,
|
||||
0xc3, 0x94, 0x8b, 0x50, 0x62, 0x2c, 0x48, 0x3b, 0xc8, 0x1a, 0x0a, 0xda, 0xd4, 0xf3, 0xda, 0x8a,
|
||||
0x19, 0x0b, 0xe9, 0xe7, 0xaf, 0x02, 0xe2, 0x37, 0xac, 0x1a, 0x96, 0xea, 0xe2, 0xae, 0x6d, 0xe9,
|
||||
0xec, 0xee, 0x8b, 0x4a, 0x93, 0x7f, 0xe9, 0x58, 0x5b, 0x0c, 0x8e, 0x5e, 0x87, 0x82, 0x77, 0x38,
|
||||
0x60, 0x51, 0xbc, 0x91, 0x18, 0x1d, 0x03, 0xb9, 0xb6, 0x0f, 0x07, 0x58, 0xa1, 0xe8, 0x68, 0x11,
|
||||
0x80, 0xb0, 0xf2, 0x1c, 0xed, 0x21, 0x4f, 0x89, 0x05, 0x25, 0x04, 0x21, 0xd6, 0xec, 0xeb, 0x70,
|
||||
0x8e, 0xa5, 0x0e, 0xbe, 0x94, 0xff, 0x92, 0x83, 0x66, 0xc0, 0x52, 0xc1, 0xee, 0xb0, 0xef, 0xa5,
|
||||
0xea, 0x6f, 0x7c, 0x33, 0x38, 0xa9, 0x6e, 0x78, 0x17, 0xaa, 0xfc, 0x3e, 0x8f, 0x60, 0x0f, 0xc0,
|
||||
0x48, 0xee, 0x8d, 0x31, 0xd0, 0xe2, 0x13, 0x32, 0xd0, 0xd2, 0x11, 0x0d, 0x54, 0xde, 0x82, 0x05,
|
||||
0x3f, 0xee, 0x05, 0x08, 0xeb, 0xd8, 0xd3, 0xc6, 0x14, 0x1c, 0xe7, 0xa1, 0xca, 0xf2, 0x19, 0x4b,
|
||||
0xe4, 0xac, 0x54, 0x87, 0x1d, 0xd1, 0xe1, 0xca, 0xdf, 0x83, 0x93, 0x34, 0x6e, 0xc4, 0x47, 0xb9,
|
||||
0x59, 0xe6, 0xea, 0xb2, 0x68, 0x04, 0x48, 0xd1, 0xcf, 0xac, 0xbb, 0xa2, 0x44, 0x60, 0xf2, 0x3d,
|
||||
0x78, 0x2e, 0xc6, 0x7f, 0x86, 0xbc, 0x40, 0x4a, 0xa1, 0x85, 0xad, 0xe8, 0xcf, 0xa2, 0xd3, 0x67,
|
||||
0xbf, 0x73, 0x62, 0x72, 0xab, 0x1a, 0x7a, 0xdc, 0xbe, 0x74, 0xf4, 0x0e, 0x54, 0x2c, 0x7c, 0xa0,
|
||||
0x86, 0x83, 0x6f, 0x86, 0x01, 0x5d, 0xd9, 0xc2, 0x07, 0xf4, 0x2f, 0x79, 0x03, 0x4e, 0x8d, 0x88,
|
||||
0x3a, 0xcb, 0xd9, 0xff, 0x2a, 0xc1, 0xe9, 0x55, 0xc7, 0x1e, 0x7c, 0x64, 0x38, 0xde, 0x50, 0xeb,
|
||||
0x47, 0x7f, 0x18, 0x79, 0x3a, 0x6d, 0xdc, 0xfb, 0xa1, 0x34, 0xcc, 0xe2, 0xf2, 0xd5, 0x04, 0x73,
|
||||
0x1d, 0x15, 0x8a, 0x1f, 0x3a, 0x94, 0xb4, 0xff, 0x9b, 0x4f, 0x12, 0x9e, 0xe3, 0x4d, 0x48, 0x36,
|
||||
0x59, 0xaa, 0x94, 0xc4, 0xa9, 0x4f, 0x7e, 0xda, 0xa9, 0x4f, 0x8a, 0xe7, 0x17, 0x9e, 0x90, 0xe7,
|
||||
0x1f, 0xb9, 0x0d, 0x79, 0x1f, 0xa2, 0x13, 0x39, 0x1a, 0x72, 0xa7, 0x1a, 0xe5, 0xdd, 0x02, 0x08,
|
||||
0xa6, 0x53, 0xfc, 0x55, 0x4b, 0x16, 0x36, 0x21, 0x2a, 0x72, 0x5b, 0x22, 0xca, 0xd2, 0xa9, 0x72,
|
||||
0x64, 0x5e, 0xf2, 0x01, 0xb4, 0x93, 0xac, 0x74, 0x16, 0xcb, 0xff, 0x32, 0x07, 0xd0, 0xa1, 0xd3,
|
||||
0xa1, 0x6d, 0xcd, 0xdd, 0x9f, 0xae, 0xa2, 0xbc, 0x08, 0xf5, 0xc0, 0x60, 0x02, 0x7f, 0x0f, 0x5b,
|
||||
0x91, 0x4e, 0x5c, 0x42, 0x14, 0xb6, 0x04, 0x67, 0xa4, 0xd8, 0xd5, 0x29, 0x9f, 0x90, 0xd7, 0x30,
|
||||
0xa3, 0x88, 0x05, 0x3d, 0x74, 0x06, 0x2a, 0x8e, 0x7d, 0xa0, 0x12, 0x37, 0xd3, 0x69, 0x6e, 0x2d,
|
||||
0x2b, 0x65, 0xc7, 0x3e, 0x20, 0xce, 0xa7, 0xa3, 0x53, 0x30, 0xe7, 0x69, 0xee, 0x3e, 0xe1, 0x5f,
|
||||
0x62, 0xe9, 0x8e, 0x2c, 0x3b, 0x3a, 0x3a, 0x09, 0xc5, 0x5d, 0xa3, 0x8f, 0xdd, 0xd6, 0x1c, 0x65,
|
||||
0xc9, 0x16, 0xe8, 0x0d, 0xff, 0xfd, 0x42, 0x39, 0xf3, 0xef, 0xaf, 0xec, 0x09, 0xc3, 0x57, 0x12,
|
||||
0xcc, 0x07, 0x5a, 0xa3, 0x01, 0x88, 0xc4, 0x34, 0x1a, 0xcf, 0x6e, 0xdb, 0x3a, 0x0b, 0x15, 0x8d,
|
||||
0x94, 0x9f, 0x58, 0x18, 0x21, 0x8b, 0x5a, 0x01, 0xc9, 0xb8, 0xba, 0x9c, 0x9c, 0x8b, 0x1c, 0xda,
|
||||
0xd0, 0xfd, 0x5f, 0x78, 0x4a, 0x8e, 0x7d, 0xd0, 0xd1, 0x85, 0x36, 0xd8, 0x33, 0x2e, 0x56, 0x85,
|
||||
0x12, 0x6d, 0xdc, 0xa6, 0x2f, 0xb9, 0x2e, 0x42, 0x1d, 0x3b, 0x8e, 0xed, 0xa8, 0x26, 0x76, 0x5d,
|
||||
0xad, 0x87, 0x79, 0xd1, 0x55, 0xa3, 0xc0, 0x75, 0x06, 0x93, 0xff, 0x93, 0x87, 0x46, 0x70, 0x14,
|
||||
0xff, 0x77, 0x1d, 0x43, 0xf7, 0x7f, 0xd7, 0x31, 0x74, 0x12, 0xcc, 0x1d, 0x16, 0x0a, 0x43, 0xc1,
|
||||
0x9c, 0x43, 0x3a, 0x3a, 0xc9, 0x83, 0xc4, 0xc1, 0x2c, 0x5b, 0xc7, 0xc1, 0xc5, 0x82, 0x0f, 0xe2,
|
||||
0xf7, 0x1a, 0xb1, 0x8f, 0x42, 0x06, 0xfb, 0x28, 0x66, 0xb0, 0x8f, 0x52, 0x82, 0x7d, 0x2c, 0x40,
|
||||
0x69, 0x67, 0xd8, 0xdd, 0xc7, 0x1e, 0x2f, 0x8f, 0xf8, 0x2a, 0x6a, 0x37, 0xe5, 0x98, 0xdd, 0x08,
|
||||
0xf3, 0xa8, 0x84, 0xcd, 0xe3, 0x0c, 0x54, 0xd8, 0x8f, 0x0b, 0xaa, 0xe7, 0xd2, 0x29, 0x6b, 0x5e,
|
||||
0x29, 0x33, 0xc0, 0xb6, 0x8b, 0x6e, 0xfa, 0xbd, 0x43, 0x35, 0xc9, 0xd1, 0x69, 0xc4, 0x89, 0x59,
|
||||
0x88, 0xdf, 0x39, 0xdc, 0x84, 0xd6, 0x1e, 0x1e, 0x3a, 0xf4, 0x2d, 0x80, 0x4a, 0x1f, 0xab, 0x3e,
|
||||
0x18, 0x62, 0xe7, 0x50, 0xdb, 0xe9, 0xe3, 0x56, 0x8d, 0x0a, 0xb6, 0x20, 0xbe, 0xaf, 0x6a, 0x9e,
|
||||
0xf6, 0x81, 0xff, 0x15, 0xbd, 0x06, 0x0b, 0x31, 0x4a, 0xc3, 0xd2, 0xf1, 0x23, 0xac, 0xb7, 0xea,
|
||||
0x94, 0xee, 0x64, 0x84, 0xae, 0xc3, 0xbe, 0xc9, 0x9f, 0x00, 0x0a, 0x24, 0x99, 0xad, 0x77, 0x8c,
|
||||
0x5d, 0x75, 0x2e, 0x7e, 0xd5, 0xf2, 0x1f, 0x24, 0x38, 0x1e, 0xde, 0x6c, 0xda, 0x04, 0xfa, 0x0e,
|
||||
0x54, 0xd9, 0xcc, 0x5a, 0x25, 0x0e, 0xcc, 0xbb, 0xc7, 0x73, 0x63, 0x75, 0xac, 0x80, 0x11, 0xc4,
|
||||
0xb1, 0x8b, 0x50, 0x3f, 0xb0, 0x9d, 0x7d, 0xc3, 0xea, 0xa9, 0x44, 0x32, 0xdf, 0x6d, 0x6a, 0x1c,
|
||||
0xb8, 0x41, 0x60, 0xf2, 0x17, 0x12, 0x2c, 0x7e, 0x38, 0xd0, 0x35, 0x0f, 0x87, 0x2a, 0x89, 0x59,
|
||||
0x1f, 0x94, 0xbc, 0xee, 0xbf, 0xe9, 0xc8, 0x65, 0x9b, 0xbb, 0x32, 0x6c, 0x79, 0x1d, 0x4e, 0x2b,
|
||||
0xd8, 0xc5, 0x96, 0x1e, 0xf9, 0x38, 0xad, 0x14, 0xf2, 0x00, 0xda, 0x49, 0xec, 0x66, 0xb9, 0x7b,
|
||||
0x56, 0xd2, 0xa9, 0x0e, 0x61, 0xeb, 0xf1, 0x08, 0x45, 0x2a, 0x09, 0xba, 0x8f, 0x77, 0xe5, 0x97,
|
||||
0x12, 0x1c, 0x1f, 0x69, 0x96, 0x51, 0x03, 0xe0, 0x43, 0xab, 0xcb, 0xa7, 0x08, 0xcd, 0x63, 0xa8,
|
||||
0x06, 0x65, 0x7f, 0xa6, 0xd0, 0x94, 0x50, 0x15, 0xe6, 0xb6, 0x6d, 0x8a, 0xdd, 0xcc, 0xa1, 0x26,
|
||||
0xd4, 0x18, 0xe1, 0xb0, 0xdb, 0xc5, 0xae, 0xdb, 0xcc, 0x0b, 0xc8, 0x5d, 0xcd, 0xe8, 0x0f, 0x1d,
|
||||
0xdc, 0x2c, 0xa0, 0x3a, 0x54, 0xb6, 0x6d, 0x05, 0xf7, 0xb1, 0xe6, 0xe2, 0x66, 0x11, 0x21, 0x68,
|
||||
0xf0, 0x85, 0x4f, 0x54, 0x0a, 0xc1, 0x7c, 0xb2, 0xb9, 0x2b, 0xbb, 0xe1, 0xb6, 0x92, 0xf4, 0x5a,
|
||||
0xe8, 0x14, 0x9c, 0xf8, 0xd0, 0xd2, 0xf1, 0xae, 0x61, 0x61, 0x3d, 0xf8, 0xd4, 0x3c, 0x86, 0x4e,
|
||||
0xc0, 0x7c, 0xc7, 0xb2, 0xb0, 0x13, 0x02, 0x4a, 0x04, 0xb8, 0x8e, 0x9d, 0x1e, 0x0e, 0x01, 0x73,
|
||||
0xe8, 0x38, 0xd4, 0xd7, 0x8d, 0x47, 0x21, 0x50, 0x7e, 0xe5, 0x1f, 0xcf, 0x41, 0x85, 0x78, 0xde,
|
||||
0x6d, 0xdb, 0x76, 0x74, 0x34, 0x00, 0x44, 0xdf, 0x4f, 0x99, 0x03, 0xdb, 0x12, 0x0f, 0x0d, 0xd1,
|
||||
0x2b, 0x29, 0x15, 0xc1, 0x28, 0x2a, 0xbf, 0xfd, 0xf6, 0xe5, 0x14, 0x8a, 0x18, 0xba, 0x7c, 0x0c,
|
||||
0x99, 0x74, 0x47, 0xd2, 0xab, 0x6e, 0x1b, 0xdd, 0x7d, 0xff, 0x97, 0xf2, 0x31, 0x3b, 0xc6, 0x50,
|
||||
0xfd, 0x1d, 0x63, 0xef, 0x17, 0xf9, 0x82, 0x3d, 0x72, 0xf3, 0x8d, 0x48, 0x3e, 0x86, 0x1e, 0xc0,
|
||||
0xc9, 0x35, 0x1c, 0x72, 0x1a, 0x7f, 0xc3, 0x95, 0xf4, 0x0d, 0x47, 0x90, 0x8f, 0xb8, 0xe5, 0x3d,
|
||||
0x28, 0xd2, 0xc1, 0x14, 0x4a, 0xf2, 0xab, 0xf0, 0x6b, 0xfc, 0xf6, 0x52, 0x3a, 0x82, 0xe0, 0xf6,
|
||||
0x09, 0xcc, 0xc7, 0x5e, 0x13, 0xa3, 0x17, 0x13, 0xc8, 0x92, 0xdf, 0x85, 0xb7, 0xaf, 0x64, 0x41,
|
||||
0x15, 0x7b, 0xf5, 0xa0, 0x11, 0x7d, 0x7d, 0x85, 0x96, 0x13, 0xe8, 0x13, 0x5f, 0x82, 0xb6, 0x5f,
|
||||
0xcc, 0x80, 0x29, 0x36, 0x32, 0xa1, 0x19, 0x7f, 0xdd, 0x8a, 0xae, 0x8c, 0x65, 0x10, 0x35, 0xb7,
|
||||
0x97, 0x32, 0xe1, 0x8a, 0xed, 0x0e, 0xa9, 0x11, 0x8c, 0xbc, 0xae, 0x44, 0xd7, 0x92, 0xd9, 0xa4,
|
||||
0x3d, 0xfb, 0x6c, 0x5f, 0xcf, 0x8c, 0x2f, 0xb6, 0xfe, 0x3e, 0x1b, 0x88, 0x27, 0xbd, 0x50, 0x44,
|
||||
0xaf, 0x26, 0xb3, 0x1b, 0xf3, 0xb4, 0xb2, 0xbd, 0x72, 0x14, 0x12, 0x21, 0xc4, 0x67, 0x74, 0x92,
|
||||
0x9d, 0xf0, 0xca, 0x2f, 0xee, 0x77, 0x3e, 0xbf, 0xf4, 0xe7, 0x8b, 0xed, 0x57, 0x8f, 0x40, 0x21,
|
||||
0x04, 0xb0, 0xe3, 0xef, 0x87, 0x7d, 0x37, 0xbc, 0x3e, 0xd1, 0x6a, 0xa6, 0xf3, 0xc1, 0x8f, 0x61,
|
||||
0x3e, 0xf6, 0x26, 0x21, 0xd1, 0x6b, 0x92, 0xdf, 0x2d, 0xb4, 0xc7, 0xe5, 0x1a, 0xe6, 0x92, 0xb1,
|
||||
0x1f, 0x06, 0x50, 0x8a, 0xf5, 0x27, 0xfc, 0x78, 0xd0, 0xbe, 0x92, 0x05, 0x55, 0x1c, 0xc4, 0xa5,
|
||||
0xe1, 0x32, 0x36, 0x5c, 0x47, 0x57, 0x93, 0x79, 0x24, 0xff, 0x30, 0xd0, 0x7e, 0x39, 0x23, 0xb6,
|
||||
0xd8, 0x54, 0x05, 0x58, 0xc3, 0xde, 0x3a, 0xf6, 0x1c, 0x62, 0x23, 0x97, 0x13, 0x55, 0x1e, 0x20,
|
||||
0xf8, 0xdb, 0xbc, 0x30, 0x11, 0x4f, 0x6c, 0xf0, 0x6d, 0x40, 0x7e, 0x8a, 0x0d, 0xbd, 0x88, 0xb9,
|
||||
0x38, 0x76, 0xfe, 0xc8, 0x86, 0x85, 0x93, 0xee, 0xe6, 0x01, 0x34, 0xd7, 0x35, 0x8b, 0x74, 0x9e,
|
||||
0x01, 0xdf, 0xab, 0x89, 0x82, 0xc5, 0xd1, 0x52, 0xb4, 0x95, 0x8a, 0x2d, 0x0e, 0x73, 0x20, 0x72,
|
||||
0xa8, 0x26, 0x5c, 0x10, 0xc7, 0x63, 0x4b, 0xa0, 0x8d, 0x18, 0x62, 0x4a, 0x6c, 0x19, 0x83, 0x2f,
|
||||
0x36, 0x7e, 0x2c, 0xd1, 0x57, 0xea, 0x31, 0x84, 0xfb, 0x86, 0xb7, 0xb7, 0xd9, 0xd7, 0x2c, 0x37,
|
||||
0x8b, 0x08, 0x14, 0xf1, 0x08, 0x22, 0x70, 0x7c, 0x21, 0x82, 0x0e, 0xf5, 0xc8, 0x78, 0x0f, 0x25,
|
||||
0x3d, 0x6b, 0x49, 0x1a, 0x30, 0xb6, 0x97, 0x27, 0x23, 0x8a, 0x5d, 0xf6, 0xa0, 0xee, 0xdb, 0x2b,
|
||||
0x53, 0xee, 0x8b, 0x69, 0x92, 0x06, 0x38, 0x29, 0xee, 0x96, 0x8c, 0x1a, 0x76, 0xb7, 0xd1, 0xe9,
|
||||
0x05, 0xca, 0x36, 0xf5, 0x1a, 0xe7, 0x6e, 0xe9, 0x23, 0x11, 0x16, 0x4f, 0x62, 0x93, 0xc2, 0xe4,
|
||||
0x60, 0x95, 0x38, 0xf8, 0x4c, 0x8c, 0x27, 0x29, 0x83, 0x47, 0xf9, 0x18, 0xba, 0x0f, 0x25, 0xd6,
|
||||
0x8e, 0xa0, 0xe7, 0xc7, 0x77, 0x2a, 0x9c, 0xfb, 0xa5, 0x09, 0x58, 0x82, 0xf1, 0x3e, 0x9c, 0x4a,
|
||||
0xe9, 0x53, 0x12, 0xf3, 0xdc, 0xf8, 0x9e, 0x66, 0x82, 0x97, 0xaf, 0xfc, 0xaa, 0x04, 0x65, 0xff,
|
||||
0xad, 0xc4, 0x33, 0xa8, 0x61, 0x9f, 0x41, 0x51, 0xf9, 0x31, 0xcc, 0xc7, 0x1e, 0x5d, 0x27, 0xda,
|
||||
0x48, 0xf2, 0xc3, 0xec, 0x49, 0x41, 0xf3, 0x3e, 0xff, 0x57, 0x4c, 0x91, 0x5f, 0x5e, 0x48, 0x2b,
|
||||
0x4c, 0xe3, 0xa9, 0x65, 0x02, 0xe3, 0xa7, 0x9e, 0x48, 0x36, 0x00, 0x42, 0x81, 0x7e, 0xfc, 0x0f,
|
||||
0x58, 0x24, 0x76, 0x4d, 0x12, 0x78, 0xfd, 0x88, 0xee, 0x31, 0x81, 0x9d, 0x0b, 0x68, 0xb4, 0xc5,
|
||||
0x4d, 0x0c, 0x27, 0xa9, 0x8d, 0x75, 0x62, 0x38, 0x49, 0xef, 0x9b, 0xe5, 0x63, 0xb7, 0x6e, 0x7c,
|
||||
0xe7, 0xd5, 0x9e, 0xe1, 0xed, 0x0d, 0x77, 0x88, 0x38, 0xd7, 0x19, 0xf1, 0xcb, 0x86, 0xcd, 0xff,
|
||||
0xba, 0xee, 0x5b, 0xe5, 0x75, 0xca, 0xef, 0x3a, 0xe1, 0x37, 0xd8, 0xd9, 0x29, 0xd1, 0xd5, 0x8d,
|
||||
0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3b, 0x4f, 0x3d, 0x31, 0x9a, 0x3c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -4969,6 +5060,7 @@ type DataNodeClient interface {
|
|||
Compaction(ctx context.Context, in *CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error)
|
||||
// https://wiki.lfaidata.foundation/display/MIL/MEP+24+--+Support+bulk+load
|
||||
Import(ctx context.Context, in *ImportTaskRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
|
||||
ResendSegmentStats(ctx context.Context, in *ResendSegmentStatsRequest, opts ...grpc.CallOption) (*ResendSegmentStatsResponse, error)
|
||||
}
|
||||
|
||||
type dataNodeClient struct {
|
||||
|
@ -5042,6 +5134,15 @@ func (c *dataNodeClient) Import(ctx context.Context, in *ImportTaskRequest, opts
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *dataNodeClient) ResendSegmentStats(ctx context.Context, in *ResendSegmentStatsRequest, opts ...grpc.CallOption) (*ResendSegmentStatsResponse, error) {
|
||||
out := new(ResendSegmentStatsResponse)
|
||||
err := c.cc.Invoke(ctx, "/milvus.proto.data.DataNode/ResendSegmentStats", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// DataNodeServer is the server API for DataNode service.
|
||||
type DataNodeServer interface {
|
||||
GetComponentStates(context.Context, *internalpb.GetComponentStatesRequest) (*internalpb.ComponentStates, error)
|
||||
|
@ -5053,6 +5154,7 @@ type DataNodeServer interface {
|
|||
Compaction(context.Context, *CompactionPlan) (*commonpb.Status, error)
|
||||
// https://wiki.lfaidata.foundation/display/MIL/MEP+24+--+Support+bulk+load
|
||||
Import(context.Context, *ImportTaskRequest) (*commonpb.Status, error)
|
||||
ResendSegmentStats(context.Context, *ResendSegmentStatsRequest) (*ResendSegmentStatsResponse, error)
|
||||
}
|
||||
|
||||
// UnimplementedDataNodeServer can be embedded to have forward compatible implementations.
|
||||
|
@ -5080,6 +5182,9 @@ func (*UnimplementedDataNodeServer) Compaction(ctx context.Context, req *Compact
|
|||
func (*UnimplementedDataNodeServer) Import(ctx context.Context, req *ImportTaskRequest) (*commonpb.Status, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Import not implemented")
|
||||
}
|
||||
func (*UnimplementedDataNodeServer) ResendSegmentStats(ctx context.Context, req *ResendSegmentStatsRequest) (*ResendSegmentStatsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ResendSegmentStats not implemented")
|
||||
}
|
||||
|
||||
func RegisterDataNodeServer(s *grpc.Server, srv DataNodeServer) {
|
||||
s.RegisterService(&_DataNode_serviceDesc, srv)
|
||||
|
@ -5211,6 +5316,24 @@ func _DataNode_Import_Handler(srv interface{}, ctx context.Context, dec func(int
|
|||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _DataNode_ResendSegmentStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ResendSegmentStatsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(DataNodeServer).ResendSegmentStats(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/milvus.proto.data.DataNode/ResendSegmentStats",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(DataNodeServer).ResendSegmentStats(ctx, req.(*ResendSegmentStatsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _DataNode_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "milvus.proto.data.DataNode",
|
||||
HandlerType: (*DataNodeServer)(nil),
|
||||
|
@ -5243,6 +5366,10 @@ var _DataNode_serviceDesc = grpc.ServiceDesc{
|
|||
MethodName: "Import",
|
||||
Handler: _DataNode_Import_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ResendSegmentStats",
|
||||
Handler: _DataNode_ResendSegmentStats_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "data_coord.proto",
|
||||
|
|
|
@ -77,6 +77,10 @@ type DataNode interface {
|
|||
// Return status indicates if this operation is processed successfully or fail cause;
|
||||
// error is always nil
|
||||
Import(ctx context.Context, req *datapb.ImportTaskRequest) (*commonpb.Status, error)
|
||||
|
||||
// ResendSegmentStats resend un-flushed segment stats back upstream to DataCoord by resending DataNode time tick message.
|
||||
// It returns a list of segments to be sent.
|
||||
ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest) (*datapb.ResendSegmentStatsResponse, error)
|
||||
}
|
||||
|
||||
// DataNodeComponent is used by grpc server of DataNode
|
||||
|
|
|
@ -58,3 +58,7 @@ func (m *DataNodeClient) Compaction(ctx context.Context, req *datapb.CompactionP
|
|||
func (m *DataNodeClient) Import(ctx context.Context, req *datapb.ImportTaskRequest, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
return &commonpb.Status{}, m.Err
|
||||
}
|
||||
|
||||
func (m *DataNodeClient) ResendSegmentStats(ctx context.Context, req *datapb.ResendSegmentStatsRequest, opts ...grpc.CallOption) (*datapb.ResendSegmentStatsResponse, error) {
|
||||
return &datapb.ResendSegmentStatsResponse{}, m.Err
|
||||
}
|
||||
|
|
|
@ -55,9 +55,12 @@ go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/proxy/..." -failfast
|
|||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/datanode/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/indexnode/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/querynode/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/rootcoord" -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/datacoord" -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/querycoord" -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/rootcoord/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/datacoord/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/querycoord/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/proxy/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/datanode/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/distributed/querynode/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/rootcoord" -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/datacoord/..." -failfast
|
||||
go test -race -cover ${APPLE_SILICON_FLAG} "${MILVUS_DIR}/indexcoord/..." -failfast
|
||||
|
|
Loading…
Reference in New Issue