the return struct of "DescribeIndex" should contain "filed_name" (#5055)

Signed-off-by: yefu.chen <yefu.chen@zilliz.com>
pull/5049/head^2
neza2017 2021-04-27 10:30:55 +08:00 committed by GitHub
parent 521f423326
commit 262c484cec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 475 additions and 291 deletions

View File

@ -1210,6 +1210,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::IndexDescription, index_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::IndexDescription, indexid_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::IndexDescription, params_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::IndexDescription, field_name_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeIndexResponse, _internal_metadata_),
~0u, // no _extensions_
@ -1410,26 +1411,26 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
{ 211, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)},
{ 221, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)},
{ 231, -1, sizeof(::milvus::proto::milvus::IndexDescription)},
{ 239, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 246, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 256, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 263, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 273, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 284, -1, sizeof(::milvus::proto::milvus::InsertResponse)},
{ 292, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 300, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 306, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 317, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 325, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 332, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 340, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 354, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 362, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 369, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 381, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 389, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 396, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 401, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
{ 240, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 247, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 257, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 264, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 274, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 285, -1, sizeof(::milvus::proto::milvus::InsertResponse)},
{ 293, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 301, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 307, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 318, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 326, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 333, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 341, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 355, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 363, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 370, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 382, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 390, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 397, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 402, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
@ -1572,142 +1573,143 @@ const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE(
"ribeIndexRequest\022*\n\004base\030\001 \001(\0132\034.milvus."
"proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n"
"\017collection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001"
"(\t\022\022\n\nindex_name\030\005 \001(\t\"j\n\020IndexDescripti"
"(\t\022\022\n\nindex_name\030\005 \001(\t\"~\n\020IndexDescripti"
"on\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\022"
"1\n\006params\030\003 \003(\0132!.milvus.proto.common.Ke"
"yValuePair\"\207\001\n\025DescribeIndexResponse\022+\n\006"
"status\030\001 \001(\0132\033.milvus.proto.common.Statu"
"s\022A\n\022index_descriptions\030\002 \003(\0132%.milvus.p"
"roto.milvus.IndexDescription\"\224\001\n\024GetInde"
"xStateRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pro"
"to.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017co"
"llection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022"
"\022\n\nindex_name\030\005 \001(\t\"t\n\025GetIndexStateResp"
"onse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.comm"
"on.Status\022.\n\005state\030\002 \001(\0162\037.milvus.proto."
"common.IndexState\"\220\001\n\020DropIndexRequest\022*"
"\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBa"
"se\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003"
" \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_name\030\005"
" \001(\t\"\275\001\n\rInsertRequest\022*\n\004base\030\001 \001(\0132\034.m"
"ilvus.proto.common.MsgBase\022\017\n\007db_name\030\002 "
"\001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016partitio"
"n_name\030\004 \001(\t\022+\n\010row_data\030\005 \003(\0132\031.milvus."
"proto.common.Blob\022\021\n\thash_keys\030\006 \003(\r\"e\n\016"
"InsertResponse\022+\n\006status\030\001 \001(\0132\033.milvus."
"proto.common.Status\022\023\n\013rowID_begin\030\002 \001(\003"
"\022\021\n\trowID_end\030\003 \001(\003\"c\n\020PlaceholderValue\022"
"\013\n\003tag\030\001 \001(\t\0222\n\004type\030\002 \001(\0162$.milvus.prot"
"o.milvus.PlaceholderType\022\016\n\006values\030\003 \003(\014"
"\"O\n\020PlaceholderGroup\022;\n\014placeholders\030\001 \003"
"(\0132%.milvus.proto.milvus.PlaceholderValu"
"e\"\246\001\n\rSearchRequest\022*\n\004base\030\001 \001(\0132\034.milv"
"us.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t"
"\022\027\n\017collection_name\030\003 \001(\t\022\027\n\017partition_n"
"ames\030\004 \003(\t\022\013\n\003dsl\030\005 \001(\t\022\031\n\021placeholder_g"
"roup\030\006 \001(\014\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010row_d"
"ata\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSearchResul"
"ts\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common"
".Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushRequest\022*\n"
"\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas"
"e\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collection_names\030\003"
" \003(\t\"\351\001\n\025PersistentSegmentInfo\022\021\n\tsegmen"
"tID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013parti"
"tionID\030\003 \001(\003\022\021\n\topen_time\030\004 \001(\004\022\023\n\013seale"
"d_time\030\005 \001(\004\022\024\n\014flushed_time\030\006 \001(\004\022\020\n\010nu"
"m_rows\030\007 \001(\003\022\020\n\010mem_size\030\010 \001(\003\0220\n\005state\030"
"\t \001(\0162!.milvus.proto.common.SegmentState"
"\"u\n\037GetPersistentSegmentInfoRequest\022*\n\004b"
"ase\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022"
"\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\""
"\212\001\n GetPersistentSegmentInfoResponse\022+\n\006"
"status\030\001 \001(\0132\033.milvus.proto.common.Statu"
"s\0229\n\005infos\030\002 \003(\0132*.milvus.proto.milvus.P"
"ersistentSegmentInfo\"\231\001\n\020QuerySegmentInf"
"o\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001"
"(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_size\030\004 \001("
"\003\022\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_name\030\006 \001(\t\022"
"\017\n\007indexID\030\007 \001(\003\"p\n\032GetQuerySegmentInfoR"
"equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm"
"on.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collection"
"Name\030\003 \001(\t\"\200\001\n\033GetQuerySegmentInfoRespon"
"se\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common"
".Status\0224\n\005infos\030\002 \003(\0132%.milvus.proto.mi"
"lvus.QuerySegmentInfo\"\025\n\023RegisterLinkReq"
"uest\"r\n\024RegisterLinkResponse\022-\n\007address\030"
"\001 \001(\0132\034.milvus.proto.common.Address\022+\n\006s"
"tatus\030\002 \001(\0132\033.milvus.proto.common.Status"
"*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020\n\014BinaryV"
"ector\020d\022\017\n\013FloatVector\020e2\215\024\n\rMilvusServi"
"ce\022_\n\020CreateCollection\022,.milvus.proto.mi"
"lvus.CreateCollectionRequest\032\033.milvus.pr"
"oto.common.Status\"\000\022[\n\016DropCollection\022*."
"milvus.proto.milvus.DropCollectionReques"
"t\032\033.milvus.proto.common.Status\"\000\022_\n\rHasC"
"ollection\022).milvus.proto.milvus.HasColle"
"ctionRequest\032!.milvus.proto.milvus.BoolR"
"esponse\"\000\022[\n\016LoadCollection\022*.milvus.pro"
"to.milvus.LoadCollectionRequest\032\033.milvus"
".proto.common.Status\"\000\022a\n\021ReleaseCollect"
"ion\022-.milvus.proto.milvus.ReleaseCollect"
"ionRequest\032\033.milvus.proto.common.Status\""
"\000\022w\n\022DescribeCollection\022..milvus.proto.m"
"ilvus.DescribeCollectionRequest\032/.milvus"
".proto.milvus.DescribeCollectionResponse"
"\"\000\022\206\001\n\027GetCollectionStatistics\0223.milvus."
"proto.milvus.GetCollectionStatisticsRequ"
"est\0324.milvus.proto.milvus.GetCollectionS"
"tatisticsResponse\"\000\022n\n\017ShowCollections\022+"
".milvus.proto.milvus.ShowCollectionsRequ"
"est\032,.milvus.proto.milvus.ShowCollection"
"sResponse\"\000\022]\n\017CreatePartition\022+.milvus."
"proto.milvus.CreatePartitionRequest\032\033.mi"
"lvus.proto.common.Status\"\000\022Y\n\rDropPartit"
"ion\022).milvus.proto.milvus.DropPartitionR"
"equest\032\033.milvus.proto.common.Status\"\000\022]\n"
"\014HasPartition\022(.milvus.proto.milvus.HasP"
"artitionRequest\032!.milvus.proto.milvus.Bo"
"olResponse\"\000\022[\n\016LoadPartitions\022*.milvus."
"proto.milvus.LoadPartitionsRequest\032\033.mil"
"vus.proto.common.Status\"\000\022a\n\021ReleasePart"
"itions\022-.milvus.proto.milvus.ReleasePart"
"itionsRequest\032\033.milvus.proto.common.Stat"
"us\"\000\022\203\001\n\026GetPartitionStatistics\0222.milvus"
".proto.milvus.GetPartitionStatisticsRequ"
"est\0323.milvus.proto.milvus.GetPartitionSt"
"atisticsResponse\"\000\022k\n\016ShowPartitions\022*.m"
"ilvus.proto.milvus.ShowPartitionsRequest"
"\032+.milvus.proto.milvus.ShowPartitionsRes"
"ponse\"\000\022U\n\013CreateIndex\022\'.milvus.proto.mi"
"lvus.CreateIndexRequest\032\033.milvus.proto.c"
"ommon.Status\"\000\022h\n\rDescribeIndex\022).milvus"
".proto.milvus.DescribeIndexRequest\032*.mil"
"vus.proto.milvus.DescribeIndexResponse\"\000"
"\022h\n\rGetIndexState\022).milvus.proto.milvus."
"GetIndexStateRequest\032*.milvus.proto.milv"
"us.GetIndexStateResponse\"\000\022Q\n\tDropIndex\022"
"%.milvus.proto.milvus.DropIndexRequest\032\033"
".milvus.proto.common.Status\"\000\022S\n\006Insert\022"
"\".milvus.proto.milvus.InsertRequest\032#.mi"
"lvus.proto.milvus.InsertResponse\"\000\022R\n\006Se"
"arch\022\".milvus.proto.milvus.SearchRequest"
"\032\".milvus.proto.milvus.SearchResults\"\000\022I"
"\n\005Flush\022!.milvus.proto.milvus.FlushReque"
"st\032\033.milvus.proto.common.Status\"\000\022\211\001\n\030Ge"
"tPersistentSegmentInfo\0224.milvus.proto.mi"
"lvus.GetPersistentSegmentInfoRequest\0325.m"
"ilvus.proto.milvus.GetPersistentSegmentI"
"nfoResponse\"\000\022z\n\023GetQuerySegmentInfo\022/.m"
"ilvus.proto.milvus.GetQuerySegmentInfoRe"
"quest\0320.milvus.proto.milvus.GetQuerySegm"
"entInfoResponse\"\000\022e\n\014RegisterLink\022(.milv"
"us.proto.milvus.RegisterLinkRequest\032).mi"
"lvus.proto.milvus.RegisterLinkResponse\"\000"
"2u\n\014ProxyService\022e\n\014RegisterLink\022(.milvu"
"s.proto.milvus.RegisterLinkRequest\032).mil"
"vus.proto.milvus.RegisterLinkResponse\"\000B"
"5Z3github.com/milvus-io/milvus/internal/"
"proto/milvuspbb\006proto3"
"yValuePair\022\022\n\nfield_name\030\004 \001(\t\"\207\001\n\025Descr"
"ibeIndexResponse\022+\n\006status\030\001 \001(\0132\033.milvu"
"s.proto.common.Status\022A\n\022index_descripti"
"ons\030\002 \003(\0132%.milvus.proto.milvus.IndexDes"
"cription\"\224\001\n\024GetIndexStateRequest\022*\n\004bas"
"e\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\017\n"
"\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022"
"\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\""
"t\n\025GetIndexStateResponse\022+\n\006status\030\001 \001(\013"
"2\033.milvus.proto.common.Status\022.\n\005state\030\002"
" \001(\0162\037.milvus.proto.common.IndexState\"\220\001"
"\n\020DropIndexRequest\022*\n\004base\030\001 \001(\0132\034.milvu"
"s.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022"
"\027\n\017collection_name\030\003 \001(\t\022\022\n\nfield_name\030\004"
" \001(\t\022\022\n\nindex_name\030\005 \001(\t\"\275\001\n\rInsertReque"
"st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M"
"sgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_na"
"me\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\022+\n\010row_"
"data\030\005 \003(\0132\031.milvus.proto.common.Blob\022\021\n"
"\thash_keys\030\006 \003(\r\"e\n\016InsertResponse\022+\n\006st"
"atus\030\001 \001(\0132\033.milvus.proto.common.Status\022"
"\023\n\013rowID_begin\030\002 \001(\003\022\021\n\trowID_end\030\003 \001(\003\""
"c\n\020PlaceholderValue\022\013\n\003tag\030\001 \001(\t\0222\n\004type"
"\030\002 \001(\0162$.milvus.proto.milvus.Placeholder"
"Type\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGroup"
"\022;\n\014placeholders\030\001 \003(\0132%.milvus.proto.mi"
"lvus.PlaceholderValue\"\246\001\n\rSearchRequest\022"
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
"ase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030"
"\003 \001(\t\022\027\n\017partition_names\030\004 \003(\t\022\013\n\003dsl\030\005 "
"\001(\t\022\031\n\021placeholder_group\030\006 \001(\014\"5\n\004Hits\022\013"
"\n\003IDs\030\001 \003(\003\022\020\n\010row_data\030\002 \003(\014\022\016\n\006scores\030"
"\003 \003(\002\"J\n\rSearchResults\022+\n\006status\030\001 \001(\0132\033"
".milvus.proto.common.Status\022\014\n\004hits\030\002 \003("
"\014\"e\n\014FlushRequest\022*\n\004base\030\001 \001(\0132\034.milvus"
".proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\030"
"\n\020collection_names\030\003 \003(\t\"\351\001\n\025PersistentS"
"egmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collect"
"ionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\021\n\topen"
"_time\030\004 \001(\004\022\023\n\013sealed_time\030\005 \001(\004\022\024\n\014flus"
"hed_time\030\006 \001(\004\022\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_"
"size\030\010 \001(\003\0220\n\005state\030\t \001(\0162!.milvus.proto"
".common.SegmentState\"u\n\037GetPersistentSeg"
"mentInfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p"
"roto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016c"
"ollectionName\030\003 \001(\t\"\212\001\n GetPersistentSeg"
"mentInfoResponse\022+\n\006status\030\001 \001(\0132\033.milvu"
"s.proto.common.Status\0229\n\005infos\030\002 \003(\0132*.m"
"ilvus.proto.milvus.PersistentSegmentInfo"
"\"\231\001\n\020QuerySegmentInfo\022\021\n\tsegmentID\030\001 \001(\003"
"\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 "
"\001(\003\022\020\n\010mem_size\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022"
"\022\n\nindex_name\030\006 \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032"
"GetQuerySegmentInfoRequest\022*\n\004base\030\001 \001(\013"
"2\034.milvus.proto.common.MsgBase\022\016\n\006dbName"
"\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\200\001\n\033GetQu"
"erySegmentInfoResponse\022+\n\006status\030\001 \001(\0132\033"
".milvus.proto.common.Status\0224\n\005infos\030\002 \003"
"(\0132%.milvus.proto.milvus.QuerySegmentInf"
"o\"\025\n\023RegisterLinkRequest\"r\n\024RegisterLink"
"Response\022-\n\007address\030\001 \001(\0132\034.milvus.proto"
".common.Address\022+\n\006status\030\002 \001(\0132\033.milvus"
".proto.common.Status*>\n\017PlaceholderType\022"
"\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatVect"
"or\020e2\215\024\n\rMilvusService\022_\n\020CreateCollecti"
"on\022,.milvus.proto.milvus.CreateCollectio"
"nRequest\032\033.milvus.proto.common.Status\"\000\022"
"[\n\016DropCollection\022*.milvus.proto.milvus."
"DropCollectionRequest\032\033.milvus.proto.com"
"mon.Status\"\000\022_\n\rHasCollection\022).milvus.p"
"roto.milvus.HasCollectionRequest\032!.milvu"
"s.proto.milvus.BoolResponse\"\000\022[\n\016LoadCol"
"lection\022*.milvus.proto.milvus.LoadCollec"
"tionRequest\032\033.milvus.proto.common.Status"
"\"\000\022a\n\021ReleaseCollection\022-.milvus.proto.m"
"ilvus.ReleaseCollectionRequest\032\033.milvus."
"proto.common.Status\"\000\022w\n\022DescribeCollect"
"ion\022..milvus.proto.milvus.DescribeCollec"
"tionRequest\032/.milvus.proto.milvus.Descri"
"beCollectionResponse\"\000\022\206\001\n\027GetCollection"
"Statistics\0223.milvus.proto.milvus.GetColl"
"ectionStatisticsRequest\0324.milvus.proto.m"
"ilvus.GetCollectionStatisticsResponse\"\000\022"
"n\n\017ShowCollections\022+.milvus.proto.milvus"
".ShowCollectionsRequest\032,.milvus.proto.m"
"ilvus.ShowCollectionsResponse\"\000\022]\n\017Creat"
"ePartition\022+.milvus.proto.milvus.CreateP"
"artitionRequest\032\033.milvus.proto.common.St"
"atus\"\000\022Y\n\rDropPartition\022).milvus.proto.m"
"ilvus.DropPartitionRequest\032\033.milvus.prot"
"o.common.Status\"\000\022]\n\014HasPartition\022(.milv"
"us.proto.milvus.HasPartitionRequest\032!.mi"
"lvus.proto.milvus.BoolResponse\"\000\022[\n\016Load"
"Partitions\022*.milvus.proto.milvus.LoadPar"
"titionsRequest\032\033.milvus.proto.common.Sta"
"tus\"\000\022a\n\021ReleasePartitions\022-.milvus.prot"
"o.milvus.ReleasePartitionsRequest\032\033.milv"
"us.proto.common.Status\"\000\022\203\001\n\026GetPartitio"
"nStatistics\0222.milvus.proto.milvus.GetPar"
"titionStatisticsRequest\0323.milvus.proto.m"
"ilvus.GetPartitionStatisticsResponse\"\000\022k"
"\n\016ShowPartitions\022*.milvus.proto.milvus.S"
"howPartitionsRequest\032+.milvus.proto.milv"
"us.ShowPartitionsResponse\"\000\022U\n\013CreateInd"
"ex\022\'.milvus.proto.milvus.CreateIndexRequ"
"est\032\033.milvus.proto.common.Status\"\000\022h\n\rDe"
"scribeIndex\022).milvus.proto.milvus.Descri"
"beIndexRequest\032*.milvus.proto.milvus.Des"
"cribeIndexResponse\"\000\022h\n\rGetIndexState\022)."
"milvus.proto.milvus.GetIndexStateRequest"
"\032*.milvus.proto.milvus.GetIndexStateResp"
"onse\"\000\022Q\n\tDropIndex\022%.milvus.proto.milvu"
"s.DropIndexRequest\032\033.milvus.proto.common"
".Status\"\000\022S\n\006Insert\022\".milvus.proto.milvu"
"s.InsertRequest\032#.milvus.proto.milvus.In"
"sertResponse\"\000\022R\n\006Search\022\".milvus.proto."
"milvus.SearchRequest\032\".milvus.proto.milv"
"us.SearchResults\"\000\022I\n\005Flush\022!.milvus.pro"
"to.milvus.FlushRequest\032\033.milvus.proto.co"
"mmon.Status\"\000\022\211\001\n\030GetPersistentSegmentIn"
"fo\0224.milvus.proto.milvus.GetPersistentSe"
"gmentInfoRequest\0325.milvus.proto.milvus.G"
"etPersistentSegmentInfoResponse\"\000\022z\n\023Get"
"QuerySegmentInfo\022/.milvus.proto.milvus.G"
"etQuerySegmentInfoRequest\0320.milvus.proto"
".milvus.GetQuerySegmentInfoResponse\"\000\022e\n"
"\014RegisterLink\022(.milvus.proto.milvus.Regi"
"sterLinkRequest\032).milvus.proto.milvus.Re"
"gisterLinkResponse\"\0002u\n\014ProxyService\022e\n\014"
"RegisterLink\022(.milvus.proto.milvus.Regis"
"terLinkRequest\032).milvus.proto.milvus.Reg"
"isterLinkResponse\"\000B5Z3github.com/milvus"
"-io/milvus/internal/proto/milvuspbb\006prot"
"o3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = {
&::descriptor_table_common_2eproto,
@ -1767,7 +1769,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mil
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_milvus_2eproto_once;
static bool descriptor_table_milvus_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_milvus_2eproto = {
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 8902,
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 8922,
&descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 49, 2,
schemas, file_default_instances, TableStruct_milvus_2eproto::offsets,
file_level_metadata_milvus_2eproto, 49, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto,
@ -13173,6 +13175,10 @@ IndexDescription::IndexDescription(const IndexDescription& from)
if (!from.index_name().empty()) {
index_name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.index_name_);
}
field_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
if (!from.field_name().empty()) {
field_name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.field_name_);
}
indexid_ = from.indexid_;
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.IndexDescription)
}
@ -13180,6 +13186,7 @@ IndexDescription::IndexDescription(const IndexDescription& from)
void IndexDescription::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IndexDescription_milvus_2eproto.base);
index_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
field_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
indexid_ = PROTOBUF_LONGLONG(0);
}
@ -13190,6 +13197,7 @@ IndexDescription::~IndexDescription() {
void IndexDescription::SharedDtor() {
index_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
field_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void IndexDescription::SetCachedSize(int size) const {
@ -13209,6 +13217,7 @@ void IndexDescription::Clear() {
params_.Clear();
index_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
field_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
indexid_ = PROTOBUF_LONGLONG(0);
_internal_metadata_.Clear();
}
@ -13247,6 +13256,13 @@ const char* IndexDescription::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPA
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26);
} else goto handle_unusual;
continue;
// string field_name = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_field_name(), ptr, ctx, "milvus.proto.milvus.IndexDescription.field_name");
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -13316,6 +13332,21 @@ bool IndexDescription::MergePartialFromCodedStream(
break;
}
// string field_name = 4;
case 4: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
input, this->mutable_field_name()));
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->field_name().data(), static_cast<int>(this->field_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
"milvus.proto.milvus.IndexDescription.field_name"));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
@ -13367,6 +13398,16 @@ void IndexDescription::SerializeWithCachedSizes(
output);
}
// string field_name = 4;
if (this->field_name().size() > 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->field_name().data(), static_cast<int>(this->field_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
"milvus.proto.milvus.IndexDescription.field_name");
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
4, this->field_name(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -13404,6 +13445,17 @@ void IndexDescription::SerializeWithCachedSizes(
3, this->params(static_cast<int>(i)), target);
}
// string field_name = 4;
if (this->field_name().size() > 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->field_name().data(), static_cast<int>(this->field_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
"milvus.proto.milvus.IndexDescription.field_name");
target =
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
4, this->field_name(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -13443,6 +13495,13 @@ size_t IndexDescription::ByteSizeLong() const {
this->index_name());
}
// string field_name = 4;
if (this->field_name().size() > 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->field_name());
}
// int64 indexID = 2;
if (this->indexid() != 0) {
total_size += 1 +
@ -13482,6 +13541,10 @@ void IndexDescription::MergeFrom(const IndexDescription& from) {
index_name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.index_name_);
}
if (from.field_name().size() > 0) {
field_name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.field_name_);
}
if (from.indexid() != 0) {
set_indexid(from.indexid());
}
@ -13511,6 +13574,8 @@ void IndexDescription::InternalSwap(IndexDescription* other) {
CastToBase(&params_)->InternalSwap(CastToBase(&other->params_));
index_name_.Swap(&other->index_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
GetArenaNoVirtual());
field_name_.Swap(&other->field_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
GetArenaNoVirtual());
swap(indexid_, other->indexid_);
}

View File

@ -4936,6 +4936,7 @@ class IndexDescription :
enum : int {
kParamsFieldNumber = 3,
kIndexNameFieldNumber = 1,
kFieldNameFieldNumber = 4,
kIndexIDFieldNumber = 2,
};
// repeated .milvus.proto.common.KeyValuePair params = 3;
@ -4960,6 +4961,17 @@ class IndexDescription :
std::string* release_index_name();
void set_allocated_index_name(std::string* index_name);
// string field_name = 4;
void clear_field_name();
const std::string& field_name() const;
void set_field_name(const std::string& value);
void set_field_name(std::string&& value);
void set_field_name(const char* value);
void set_field_name(const char* value, size_t size);
std::string* mutable_field_name();
std::string* release_field_name();
void set_allocated_field_name(std::string* field_name);
// int64 indexID = 2;
void clear_indexid();
::PROTOBUF_NAMESPACE_ID::int64 indexid() const;
@ -4972,6 +4984,7 @@ class IndexDescription :
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair > params_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr index_name_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr field_name_;
::PROTOBUF_NAMESPACE_ID::int64 indexid_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto;
@ -12442,6 +12455,57 @@ IndexDescription::params() const {
return params_;
}
// string field_name = 4;
inline void IndexDescription::clear_field_name() {
field_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& IndexDescription::field_name() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.IndexDescription.field_name)
return field_name_.GetNoArena();
}
inline void IndexDescription::set_field_name(const std::string& value) {
field_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:milvus.proto.milvus.IndexDescription.field_name)
}
inline void IndexDescription::set_field_name(std::string&& value) {
field_name_.SetNoArena(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:milvus.proto.milvus.IndexDescription.field_name)
}
inline void IndexDescription::set_field_name(const char* value) {
GOOGLE_DCHECK(value != nullptr);
field_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:milvus.proto.milvus.IndexDescription.field_name)
}
inline void IndexDescription::set_field_name(const char* value, size_t size) {
field_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:milvus.proto.milvus.IndexDescription.field_name)
}
inline std::string* IndexDescription::mutable_field_name() {
// @@protoc_insertion_point(field_mutable:milvus.proto.milvus.IndexDescription.field_name)
return field_name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* IndexDescription::release_field_name() {
// @@protoc_insertion_point(field_release:milvus.proto.milvus.IndexDescription.field_name)
return field_name_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void IndexDescription::set_allocated_field_name(std::string* field_name) {
if (field_name != nullptr) {
} else {
}
field_name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), field_name);
// @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.IndexDescription.field_name)
}
// -------------------------------------------------------------------
// DescribeIndexResponse

View File

@ -626,7 +626,7 @@ func TestGrpcService(t *testing.T) {
FieldName: "vector",
IndexName: cms.Params.DefaultIndexName,
}
idx, err := core.MetaTable.GetIndexByName("testColl", cms.Params.DefaultIndexName)
_, idx, err := core.MetaTable.GetIndexByName("testColl", cms.Params.DefaultIndexName)
assert.Nil(t, err)
assert.Equal(t, len(idx), 1)
rsp, err := cli.DropIndex(ctx, req)

View File

@ -703,6 +703,7 @@ func TestMasterService(t *testing.T) {
assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success)
assert.Equal(t, len(rsp.IndexDescriptions), 1)
assert.Equal(t, rsp.IndexDescriptions[0].IndexName, Params.DefaultIndexName)
assert.Equal(t, rsp.IndexDescriptions[0].FieldName, "vector")
})
t.Run("describe index not exist", func(t *testing.T) {
@ -859,7 +860,7 @@ func TestMasterService(t *testing.T) {
FieldName: "vector",
IndexName: Params.DefaultIndexName,
}
idx, err := core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName)
_, idx, err := core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName)
assert.Nil(t, err)
assert.Equal(t, len(idx), 1)
@ -872,7 +873,7 @@ func TestMasterService(t *testing.T) {
assert.Equal(t, im.idxDropID[0], idx[0].IndexID)
im.mutex.Unlock()
idx, err = core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName)
_, idx, err = core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName)
assert.Nil(t, err)
assert.Equal(t, len(idx), 0)
})

View File

@ -924,30 +924,30 @@ func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, id
return rstID, fieldSchema, nil
}
func (mt *metaTable) GetIndexByName(collName, indexName string) ([]pb.IndexInfo, error) {
func (mt *metaTable) GetIndexByName(collName, indexName string) (pb.CollectionInfo, []pb.IndexInfo, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
collID, ok := mt.collName2ID[collName]
if !ok {
return nil, fmt.Errorf("collection %s not found", collName)
return pb.CollectionInfo{}, nil, fmt.Errorf("collection %s not found", collName)
}
collMeta, ok := mt.collID2Meta[collID]
if !ok {
return nil, fmt.Errorf("collection %s not found", collName)
return pb.CollectionInfo{}, nil, fmt.Errorf("collection %s not found", collName)
}
rstIndex := make([]pb.IndexInfo, 0, len(collMeta.FieldIndexes))
for _, idx := range collMeta.FieldIndexes {
idxInfo, ok := mt.indexID2Meta[idx.IndexID]
if !ok {
return nil, fmt.Errorf("index id = %d not found", idx.IndexID)
return pb.CollectionInfo{}, nil, fmt.Errorf("index id = %d not found", idx.IndexID)
}
if indexName == "" || idxInfo.IndexName == indexName {
rstIndex = append(rstIndex, idxInfo)
}
}
return rstIndex, nil
return collMeta, rstIndex, nil
}
func (mt *metaTable) GetIndexByID(indexID typeutil.UniqueID) (*pb.IndexInfo, error) {

View File

@ -341,7 +341,7 @@ func TestMetaTable(t *testing.T) {
})
t.Run("get index by name", func(t *testing.T) {
idx, err := mt.GetIndexByName("testColl", "field110")
_, idx, err := mt.GetIndexByName("testColl", "field110")
assert.Nil(t, err)
assert.Equal(t, len(idx), 1)
assert.Equal(t, idx[0].IndexID, int64(10000))
@ -357,7 +357,7 @@ func TestMetaTable(t *testing.T) {
}
assert.True(t, EqualKeyPairArray(idx[0].IndexParams, params))
idx, err = mt.GetIndexByName("testColl", "idx201")
_, idx, err = mt.GetIndexByName("testColl", "idx201")
assert.Nil(t, err)
assert.Zero(t, len(idx))
})
@ -388,11 +388,11 @@ func TestMetaTable(t *testing.T) {
assert.Nil(t, err)
assert.False(t, ok)
idxs, err := mt.GetIndexByName("testColl", "field110")
_, idxs, err := mt.GetIndexByName("testColl", "field110")
assert.Nil(t, err)
assert.Zero(t, len(idxs))
idxs, err = mt.GetIndexByName("testColl", "field110-1")
_, idxs, err = mt.GetIndexByName("testColl", "field110-1")
assert.Nil(t, err)
assert.Equal(t, len(idxs), 1)
assert.Equal(t, idxs[0].IndexID, int64(2001))
@ -961,7 +961,7 @@ func TestMetaTable(t *testing.T) {
assert.Nil(t, err)
mt.collName2ID["abc"] = 123
_, err = mt.GetIndexByName("abc", "hij")
_, _, err = mt.GetIndexByName("abc", "hij")
assert.NotNil(t, err)
assert.EqualError(t, err, "collection abc not found")
@ -978,7 +978,7 @@ func TestMetaTable(t *testing.T) {
err = mt.AddCollection(collInfo, partInfo, idxInfo)
assert.Nil(t, err)
mt.indexID2Meta = make(map[int64]pb.IndexInfo)
_, err = mt.GetIndexByName(collInfo.Schema.Name, idxInfo[0].IndexName)
_, _, err = mt.GetIndexByName(collInfo.Schema.Name, idxInfo[0].IndexName)
assert.NotNil(t, err)
assert.EqualError(t, err, fmt.Sprintf("index id = %d not found", idxInfo[0].IndexID))

View File

@ -781,15 +781,21 @@ func (t *DescribeIndexReqTask) Execute(ctx context.Context) error {
if t.Type() != commonpb.MsgType_DescribeIndex {
return fmt.Errorf("describe index, msg type = %s", commonpb.MsgType_name[int32(t.Type())])
}
idx, err := t.core.MetaTable.GetIndexByName(t.Req.CollectionName, t.Req.IndexName)
coll, idx, err := t.core.MetaTable.GetIndexByName(t.Req.CollectionName, t.Req.IndexName)
if err != nil {
return err
}
for _, i := range idx {
f, err := GetFieldSchemaByIndexID(&coll, typeutil.UniqueID(i.IndexID))
if err != nil {
log.Warn("get field schema by index id failed", zap.String("collection name", t.Req.CollectionName), zap.String("index name", t.Req.IndexName), zap.Error(err))
continue
}
desc := &milvuspb.IndexDescription{
IndexName: i.IndexName,
Params: i.IndexParams,
IndexID: i.IndexID,
FieldName: f.Name,
}
t.Rsp.IndexDescriptions = append(t.Rsp.IndexDescriptions, desc)
}
@ -821,7 +827,7 @@ func (t *DropIndexReqTask) Execute(ctx context.Context) error {
if t.Type() != commonpb.MsgType_DropIndex {
return fmt.Errorf("drop index, msg type = %s", commonpb.MsgType_name[int32(t.Type())])
}
info, err := t.core.MetaTable.GetIndexByName(t.Req.CollectionName, t.Req.IndexName)
_, info, err := t.core.MetaTable.GetIndexByName(t.Req.CollectionName, t.Req.IndexName)
if err != nil {
log.Warn("GetIndexByName failed,", zap.String("collection name", t.Req.CollectionName), zap.String("field name", t.Req.FieldName), zap.String("index name", t.Req.IndexName), zap.Error(err))
return err

View File

@ -49,3 +49,20 @@ func GetFieldSchemaByID(coll *etcdpb.CollectionInfo, fieldID typeutil.UniqueID)
}
return nil, fmt.Errorf("field id = %d not found", fieldID)
}
//GetFieldSchemaByIndexID return the field schema by it's index id
func GetFieldSchemaByIndexID(coll *etcdpb.CollectionInfo, idxID typeutil.UniqueID) (*schemapb.FieldSchema, error) {
var fieldID typeutil.UniqueID
exist := false
for _, f := range coll.FieldIndexes {
if f.IndexID == idxID {
fieldID = f.FiledID
exist = true
break
}
}
if !exist {
return nil, fmt.Errorf("index id = %d is not attach to any field", idxID)
}
return GetFieldSchemaByID(coll, fieldID)
}

View File

@ -68,3 +68,25 @@ func Test_GetFieldSchemaByID(t *testing.T) {
_, err = GetFieldSchemaByID(coll, 2)
assert.NotNil(t, err)
}
func Test_GetFieldSchemaByIndexID(t *testing.T) {
coll := &etcdpb.CollectionInfo{
Schema: &schemapb.CollectionSchema{
Fields: []*schemapb.FieldSchema{
{
FieldID: 1,
},
},
},
FieldIndexes: []*etcdpb.FieldIndexInfo{
{
FiledID: 1,
IndexID: 2,
},
},
}
_, err := GetFieldSchemaByIndexID(coll, 2)
assert.Nil(t, err)
_, err = GetFieldSchemaByIndexID(coll, 3)
assert.NotNil(t, err)
}

View File

@ -221,6 +221,7 @@ message IndexDescription {
string index_name = 1;
int64 indexID = 2;
repeated common.KeyValuePair params = 3;
string field_name = 4;
}
message DescribeIndexResponse {

View File

@ -1655,6 +1655,7 @@ type IndexDescription struct {
IndexName string `protobuf:"bytes,1,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`
IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"`
Params []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty"`
FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -1706,6 +1707,13 @@ func (m *IndexDescription) GetParams() []*commonpb.KeyValuePair {
return nil
}
func (m *IndexDescription) GetFieldName() string {
if m != nil {
return m.FieldName
}
return ""
}
type DescribeIndexResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
IndexDescriptions []*IndexDescription `protobuf:"bytes,2,rep,name=index_descriptions,json=indexDescriptions,proto3" json:"index_descriptions,omitempty"`
@ -2936,130 +2944,130 @@ func init() {
func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) }
var fileDescriptor_02345ba45cc0e303 = []byte{
// 1959 bytes of a gzipped FileDescriptorProto
// 1962 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6f, 0x1b, 0xc7,
0x11, 0xf7, 0x92, 0x14, 0x45, 0x0d, 0x8f, 0x12, 0xbd, 0xfa, 0x30, 0x7d, 0x8e, 0x63, 0xf9, 0x5a,
0x37, 0xb2, 0x9d, 0x58, 0x81, 0x14, 0xf7, 0x03, 0x45, 0x8b, 0x56, 0x51, 0x23, 0x0b, 0x4e, 0x02,
0xe5, 0xe8, 0x06, 0x4d, 0x03, 0x83, 0x58, 0xf2, 0xd6, 0xe4, 0xc1, 0xc7, 0x3b, 0xf6, 0xf6, 0x68,
0x99, 0x7e, 0x4d, 0x11, 0xa0, 0x1f, 0x71, 0x1e, 0xda, 0x97, 0xf6, 0xb1, 0x40, 0x9f, 0xdb, 0xa2,
0xe5, 0xe8, 0x06, 0x4d, 0x03, 0x83, 0x58, 0xf2, 0xd6, 0xe2, 0xc1, 0xc7, 0x3b, 0xf6, 0xf6, 0x68,
0x99, 0x7e, 0x4d, 0x51, 0xa0, 0x1f, 0x71, 0x1e, 0xda, 0x97, 0xf6, 0xb1, 0x40, 0x9e, 0xdb, 0xa2,
0x01, 0x0a, 0xf4, 0xb9, 0x0f, 0x05, 0xfa, 0x77, 0xf4, 0xa9, 0xe8, 0x9f, 0x50, 0xa0, 0xd8, 0xdd,
0xe3, 0xf1, 0xee, 0xb8, 0x47, 0x51, 0x66, 0x1c, 0x51, 0x6f, 0xb7, 0x73, 0xb3, 0x3b, 0xbf, 0x9d,
0x9d, 0x99, 0x9d, 0x9d, 0x01, 0xad, 0x6b, 0x3b, 0x4f, 0xfa, 0xec, 0x4e, 0xcf, 0xf7, 0x02, 0x0f,
0xaf, 0xc6, 0x47, 0x77, 0xe4, 0x40, 0xd7, 0x5a, 0x5e, 0xb7, 0xeb, 0xb9, 0x92, 0xa8, 0x6b, 0xac,
0xd5, 0xa1, 0x5d, 0x22, 0x47, 0xc6, 0x1f, 0x11, 0x5c, 0x7a, 0xdb, 0xa7, 0x24, 0xa0, 0x6f, 0x7b,
0x8e, 0x43, 0x5b, 0x81, 0xed, 0xb9, 0x26, 0xfd, 0x59, 0x9f, 0xb2, 0x00, 0xbf, 0x09, 0x85, 0x26,
0x61, 0xb4, 0x86, 0x36, 0xd1, 0x56, 0x79, 0xe7, 0x95, 0x3b, 0x89, 0xb5, 0xc3, 0x35, 0xdf, 0x63,
0xed, 0x3d, 0xc2, 0xa8, 0x29, 0x38, 0xf1, 0x25, 0x58, 0xb4, 0x9a, 0x0d, 0x97, 0x74, 0x69, 0x2d,
0xb7, 0x89, 0xb6, 0x96, 0xcc, 0xa2, 0xd5, 0x7c, 0x9f, 0x74, 0x29, 0x7e, 0x0d, 0x56, 0x5a, 0xd1,
0xfa, 0x92, 0x21, 0x2f, 0x18, 0x96, 0x47, 0x64, 0xc1, 0xb8, 0x01, 0x45, 0x89, 0xaf, 0x56, 0xd8,
0x44, 0x5b, 0x9a, 0x19, 0x8e, 0x8c, 0x5f, 0x21, 0x58, 0xdf, 0xf7, 0xbd, 0xde, 0x5c, 0xa0, 0x34,
0x7e, 0x89, 0x60, 0xed, 0x1e, 0x61, 0xf3, 0x01, 0xe6, 0x23, 0xd0, 0xf6, 0x3c, 0xcf, 0x31, 0x29,
0xeb, 0x79, 0x2e, 0xa3, 0x78, 0x17, 0x8a, 0x2c, 0x20, 0x41, 0x9f, 0x85, 0x28, 0xae, 0x28, 0x51,
0xd4, 0x05, 0x8b, 0x19, 0xb2, 0xe2, 0x35, 0x58, 0x78, 0x42, 0x9c, 0xbe, 0x04, 0x51, 0x32, 0xe5,
0xc0, 0xf8, 0x18, 0x96, 0xeb, 0x81, 0x6f, 0xbb, 0xed, 0x2f, 0x71, 0xf1, 0xa5, 0xe1, 0xe2, 0x7f,
0x45, 0x70, 0x79, 0x9f, 0xb2, 0x96, 0x6f, 0x37, 0xe7, 0xc4, 0xf8, 0x0c, 0xd0, 0x46, 0x94, 0xc3,
0x7d, 0x61, 0x82, 0x79, 0x33, 0x41, 0x33, 0xbe, 0x40, 0xa0, 0xab, 0x50, 0xcf, 0xa2, 0x9f, 0xef,
0x45, 0x46, 0x9f, 0x13, 0x93, 0x6e, 0x24, 0x27, 0x85, 0x0e, 0x3b, 0x92, 0x56, 0x17, 0x84, 0xa1,
0x6f, 0x8c, 0xc1, 0xce, 0x2b, 0x60, 0x73, 0xff, 0x79, 0xd7, 0x23, 0xd6, 0x7c, 0x98, 0xec, 0x73,
0x04, 0x35, 0x93, 0x3a, 0x94, 0xb0, 0xf9, 0x38, 0x79, 0xe3, 0xb7, 0x08, 0x5e, 0x3d, 0xa0, 0x41,
0x4c, 0xc5, 0x01, 0x09, 0x6c, 0x16, 0xd8, 0x2d, 0x76, 0x96, 0xb0, 0x3e, 0x47, 0x70, 0x2d, 0x13,
0xd6, 0x2c, 0x16, 0xf7, 0x2d, 0x58, 0xe0, 0x5f, 0xac, 0x96, 0xdb, 0xcc, 0x6f, 0x95, 0x77, 0xae,
0x2b, 0xe7, 0xdc, 0xa7, 0x83, 0x0f, 0xb9, 0xa7, 0x1e, 0x11, 0xdb, 0x37, 0x25, 0xbf, 0xd1, 0x82,
0x8d, 0x7a, 0xc7, 0x3b, 0x1e, 0x21, 0x7a, 0x09, 0xfa, 0x31, 0x06, 0x70, 0x69, 0x4c, 0xc8, 0x2c,
0xbb, 0xbd, 0x09, 0xd5, 0x94, 0xbe, 0xe5, 0xc6, 0x97, 0xcc, 0x95, 0xa4, 0xc2, 0x19, 0x0f, 0x4a,
0x1b, 0xf2, 0x3e, 0x3c, 0x22, 0x7e, 0x60, 0x9f, 0x75, 0x44, 0xba, 0x01, 0xcb, 0xbd, 0x21, 0x0e,
0xc9, 0x57, 0x10, 0x7c, 0x95, 0x88, 0x2a, 0x14, 0xf6, 0x17, 0x04, 0x6b, 0xfc, 0x76, 0x3c, 0x4f,
0x98, 0xff, 0x8c, 0x60, 0xf5, 0x1e, 0x61, 0xe7, 0x09, 0xf2, 0x17, 0x61, 0x10, 0x8d, 0x30, 0x9f,
0x65, 0x70, 0xe0, 0x8c, 0x49, 0xd0, 0xac, 0x56, 0x10, 0x46, 0xbd, 0x9c, 0x40, 0xcd, 0x8c, 0xbf,
0x8d, 0xa2, 0xed, 0x39, 0x43, 0xfe, 0x77, 0x04, 0x57, 0x0f, 0x68, 0x10, 0xa1, 0x9e, 0x8b, 0xa8,
0x3c, 0xad, 0xb5, 0x3c, 0x97, 0x77, 0x8a, 0x12, 0xfc, 0x99, 0xc4, 0xee, 0x3f, 0x21, 0x58, 0xe7,
0x71, 0x75, 0x3e, 0x8c, 0x60, 0x9a, 0x64, 0xeb, 0xf7, 0x48, 0x5e, 0x37, 0x71, 0xc4, 0xb3, 0xa8,
0x4e, 0x61, 0x78, 0x39, 0x95, 0xe1, 0x71, 0x70, 0x11, 0xe5, 0x70, 0x9f, 0xd5, 0xf2, 0x9b, 0x79,
0x0e, 0x2e, 0x4e, 0x33, 0x7e, 0x8d, 0x60, 0x63, 0x98, 0x09, 0xd6, 0x69, 0xbb, 0x4b, 0xdd, 0xe0,
0xc5, 0xf5, 0x99, 0xd6, 0x46, 0x6e, 0x5c, 0x1b, 0xf8, 0x15, 0x58, 0x62, 0x52, 0x4e, 0x94, 0xe4,
0x8d, 0x08, 0xe2, 0x25, 0x37, 0x06, 0x67, 0x16, 0x65, 0xd5, 0x60, 0xd1, 0x76, 0x2d, 0xfa, 0x34,
0x42, 0x33, 0x1c, 0xf2, 0x3f, 0xcd, 0xbe, 0xed, 0x58, 0x11, 0x8c, 0xe1, 0x10, 0x5f, 0x07, 0x8d,
0xba, 0xa4, 0xe9, 0xd0, 0x86, 0xe0, 0x15, 0x87, 0x5a, 0x32, 0xcb, 0x92, 0x76, 0xc8, 0x49, 0xc6,
0x67, 0x08, 0x56, 0xf9, 0x99, 0x86, 0x18, 0xd9, 0xcb, 0xd5, 0xd9, 0x26, 0x94, 0x63, 0x87, 0x16,
0xc2, 0x8d, 0x93, 0x8c, 0xc7, 0xb0, 0x96, 0x84, 0x33, 0x8b, 0xce, 0x5e, 0x05, 0x88, 0x4e, 0x44,
0xda, 0x56, 0xde, 0x8c, 0x51, 0x8c, 0xff, 0x22, 0xc0, 0x32, 0xbd, 0x10, 0xca, 0x38, 0x4b, 0xff,
0xbb, 0x0a, 0xf0, 0xc8, 0xa6, 0x8e, 0x15, 0x8f, 0x60, 0x4b, 0x82, 0x22, 0x7e, 0xef, 0x83, 0x46,
0x9f, 0x06, 0x3e, 0x69, 0xf4, 0x88, 0x4f, 0xba, 0xac, 0xb6, 0x30, 0x6d, 0xb0, 0x29, 0x8b, 0x69,
0x47, 0x62, 0x96, 0xf1, 0x4f, 0x9e, 0x98, 0x84, 0x46, 0x39, 0xef, 0x3b, 0xbe, 0x0a, 0x20, 0x8c,
0x56, 0xfe, 0x5e, 0x90, 0xbf, 0x05, 0x45, 0x84, 0xf3, 0x4f, 0x11, 0x54, 0xc5, 0x16, 0xe4, 0x7e,
0x7a, 0x7c, 0xd9, 0xd4, 0x1c, 0x94, 0x9a, 0x33, 0xc1, 0x85, 0xbe, 0x03, 0xc5, 0x50, 0xb1, 0xf9,
0x69, 0x15, 0x1b, 0x4e, 0x30, 0xfe, 0x80, 0x60, 0x3d, 0xa5, 0xd3, 0x59, 0x4c, 0xf6, 0x01, 0x60,
0xb9, 0x05, 0x6b, 0xb4, 0xaf, 0xe1, 0xdd, 0x92, 0x7a, 0x88, 0x86, 0x83, 0xb4, 0x16, 0xcc, 0x8b,
0x76, 0x8a, 0x22, 0x0f, 0xfe, 0x80, 0x06, 0x82, 0x95, 0x0b, 0xa4, 0xe7, 0xf7, 0xe0, 0x3f, 0x41,
0xb0, 0x9e, 0xda, 0xca, 0x2c, 0xfa, 0xbe, 0x2b, 0xaf, 0x6f, 0xb9, 0x99, 0xe5, 0x9d, 0x6b, 0xca,
0x39, 0x31, 0x61, 0x92, 0xdb, 0xf8, 0x07, 0x82, 0x2a, 0x4f, 0xf1, 0xcf, 0xb9, 0x17, 0xfd, 0x0f,
0x41, 0xe5, 0xd0, 0x65, 0xd4, 0x0f, 0xe6, 0x3f, 0x83, 0xc3, 0x6f, 0x41, 0xc9, 0xf7, 0x8e, 0x1b,
0x16, 0x09, 0x48, 0x18, 0xff, 0x2e, 0x2b, 0xe1, 0xed, 0x39, 0x5e, 0xd3, 0x5c, 0xf4, 0xbd, 0xe3,
0x7d, 0x12, 0x10, 0x7c, 0x05, 0x96, 0x3a, 0x84, 0x75, 0x1a, 0x8f, 0xe9, 0x80, 0xd5, 0x8a, 0x9b,
0xf9, 0xad, 0x8a, 0x59, 0xe2, 0x84, 0xfb, 0x74, 0xc0, 0xb8, 0x31, 0x2d, 0x0f, 0xf7, 0x3f, 0x8b,
0x15, 0x5d, 0x83, 0xb2, 0xef, 0x1d, 0x1f, 0xee, 0x37, 0x9a, 0xb4, 0x6d, 0xbb, 0x61, 0x74, 0x01,
0x41, 0xda, 0xe3, 0x14, 0x8e, 0x42, 0x32, 0x50, 0xd7, 0x0a, 0xaf, 0xbd, 0x92, 0x20, 0xfc, 0xc8,
0xb5, 0x8c, 0x27, 0x50, 0x3d, 0x72, 0x48, 0x8b, 0x76, 0x3c, 0xc7, 0xa2, 0xbe, 0x08, 0x31, 0xb8,
0x0a, 0xf9, 0x80, 0xb4, 0xc3, 0x18, 0xc6, 0x3f, 0xf1, 0xb7, 0xa1, 0x10, 0x0c, 0x7a, 0x43, 0x43,
0xfd, 0xba, 0x32, 0x16, 0xc4, 0x96, 0x79, 0x30, 0xe8, 0x51, 0x53, 0xcc, 0xc0, 0x1b, 0x50, 0x14,
0x35, 0x3e, 0x19, 0xdd, 0x34, 0x33, 0x1c, 0x19, 0x0f, 0x13, 0x72, 0x0f, 0x7c, 0xaf, 0xdf, 0xc3,
0x87, 0xa0, 0xf5, 0x46, 0x34, 0xae, 0x84, 0xec, 0xc8, 0x93, 0x06, 0x6d, 0x26, 0xa6, 0x1a, 0xff,
0x41, 0x50, 0xa9, 0x53, 0xe2, 0xb7, 0x3a, 0xe7, 0xe1, 0x75, 0xc3, 0x35, 0x6e, 0x31, 0x27, 0xf4,
0x11, 0xfe, 0x89, 0x6f, 0xc3, 0xc5, 0xd8, 0x86, 0x1a, 0x6d, 0xae, 0xa0, 0x5a, 0x51, 0x14, 0xc2,
0xab, 0xbd, 0x94, 0xe2, 0x8c, 0xfb, 0x50, 0xb8, 0x67, 0x07, 0x62, 0x19, 0x9e, 0x6c, 0x20, 0x91,
0x6c, 0xf0, 0x4f, 0x7c, 0x39, 0x66, 0xb7, 0x39, 0x71, 0x00, 0x91, 0x71, 0x8a, 0xfa, 0xba, 0xe7,
0x87, 0x27, 0x93, 0x33, 0xc3, 0x91, 0xf1, 0x93, 0x91, 0xe6, 0x58, 0xdf, 0x09, 0xd8, 0x8b, 0x59,
0x25, 0x86, 0x42, 0xc7, 0x0e, 0x5f, 0x26, 0x9a, 0x29, 0xbe, 0x8d, 0x9f, 0x23, 0xd0, 0xde, 0x71,
0xfa, 0xec, 0x65, 0x9c, 0x89, 0xaa, 0xb0, 0x93, 0x57, 0x17, 0x76, 0xfe, 0x95, 0x83, 0xf5, 0x23,
0xea, 0x33, 0x9b, 0x05, 0xd4, 0x0d, 0xc2, 0x6c, 0xef, 0xd0, 0x7d, 0xe4, 0x25, 0xd3, 0x6a, 0x94,
0x4a, 0xab, 0xbf, 0x9c, 0x24, 0x93, 0x7b, 0xa3, 0xd7, 0xa3, 0x6e, 0x23, 0xb0, 0xc3, 0x58, 0x53,
0x30, 0x4b, 0x9c, 0xf0, 0xc0, 0xee, 0x52, 0xee, 0xcb, 0x8c, 0x12, 0x87, 0x5a, 0xf2, 0xf7, 0x82,
0xf8, 0x0d, 0x92, 0x24, 0x18, 0xae, 0x83, 0xf6, 0x88, 0x6b, 0x70, 0xc8, 0x51, 0x14, 0x1c, 0xe5,
0x90, 0x26, 0x58, 0x2e, 0x43, 0xc9, 0xed, 0x77, 0x1b, 0xbe, 0x77, 0xcc, 0x6a, 0x8b, 0x32, 0xd5,
0x70, 0xfb, 0x5d, 0xd3, 0x3b, 0x16, 0xd6, 0xd0, 0xa5, 0xdd, 0x06, 0xb3, 0x9f, 0xd1, 0x5a, 0x49,
0xfe, 0xea, 0xd2, 0x6e, 0xdd, 0x7e, 0x46, 0x87, 0x4f, 0x49, 0x5a, 0x5b, 0x12, 0x2e, 0xae, 0x4e,
0x42, 0x42, 0x5d, 0x25, 0x6e, 0xa3, 0xdf, 0xc8, 0xc2, 0xa4, 0x52, 0xa1, 0x2f, 0x7e, 0xce, 0x1b,
0x10, 0x1e, 0x6c, 0xea, 0x98, 0xbf, 0x01, 0x29, 0x1f, 0xcb, 0x28, 0x97, 0xfe, 0x0e, 0xc1, 0x66,
0x36, 0xaa, 0x59, 0xc2, 0xed, 0x0f, 0x60, 0xc1, 0x76, 0x1f, 0x79, 0xc3, 0xbc, 0xe8, 0x96, 0x3a,
0x3a, 0x29, 0xe5, 0xca, 0x89, 0xc6, 0xbf, 0x11, 0x54, 0x3f, 0xe8, 0x53, 0x7f, 0xf0, 0x55, 0x9b,
0x5e, 0xfc, 0xf8, 0x0b, 0xc9, 0xe3, 0x8f, 0x1b, 0xcd, 0x42, 0xd2, 0x68, 0x92, 0xd7, 0x78, 0x71,
0x42, 0x62, 0xbb, 0x98, 0x48, 0x6c, 0x8d, 0xe7, 0x08, 0xf4, 0x03, 0x1a, 0xa4, 0xb7, 0x7a, 0x76,
0x46, 0xf1, 0x39, 0x82, 0x2b, 0x4a, 0x40, 0xb3, 0xd8, 0xc3, 0x77, 0x93, 0xf6, 0xa0, 0xbe, 0xad,
0xc6, 0x44, 0x86, 0xa6, 0xb0, 0x0e, 0xab, 0x26, 0x6d, 0x73, 0x4b, 0xf1, 0xdf, 0xb5, 0xdd, 0xc7,
0xa1, 0x6a, 0x78, 0x6a, 0xb0, 0x96, 0xa4, 0x87, 0x08, 0xbf, 0x09, 0x8b, 0xc4, 0xb2, 0x7c, 0xca,
0xd8, 0x44, 0xb5, 0xfd, 0x50, 0xf2, 0x98, 0x43, 0xe6, 0xd8, 0xce, 0x72, 0x53, 0xef, 0xec, 0xd6,
0xf7, 0x61, 0x25, 0x75, 0xa7, 0xe3, 0x12, 0x14, 0xde, 0xf7, 0x5c, 0x5a, 0xbd, 0x80, 0xab, 0xa0,
0xed, 0xd9, 0x2e, 0xf1, 0x07, 0x1f, 0xd2, 0x56, 0xe0, 0xf9, 0x55, 0x0b, 0xaf, 0x40, 0xf9, 0x1d,
0xc7, 0x23, 0x41, 0x48, 0xa0, 0x3b, 0x9f, 0xad, 0x41, 0xe5, 0x3d, 0x21, 0xa6, 0x4e, 0xfd, 0x27,
0x76, 0x8b, 0xe2, 0x06, 0x54, 0xd3, 0x1d, 0x66, 0xfc, 0xba, 0x52, 0x61, 0x19, 0x8d, 0x68, 0x7d,
0x12, 0x70, 0xe3, 0x02, 0xfe, 0x18, 0x96, 0x93, 0xad, 0x61, 0xac, 0xf6, 0x4f, 0x65, 0xff, 0xf8,
0xa4, 0xc5, 0x1b, 0x50, 0x49, 0x74, 0x7a, 0xf1, 0x4d, 0xe5, 0xda, 0xaa, 0x6e, 0xb0, 0x7e, 0x5d,
0xc9, 0x1a, 0x6f, 0xd6, 0x4a, 0xf4, 0xc9, 0xc6, 0x5c, 0x06, 0x7a, 0x65, 0xf7, 0xee, 0x24, 0xf4,
0x04, 0x2e, 0x8e, 0xf5, 0xd9, 0xf0, 0x1b, 0xca, 0xf5, 0xb3, 0xfa, 0x71, 0x27, 0x89, 0x38, 0x06,
0x3c, 0xde, 0x0f, 0xc5, 0x77, 0xd4, 0x27, 0x90, 0xd5, 0xee, 0xd5, 0xb7, 0xa7, 0xe6, 0x8f, 0x14,
0xf7, 0x29, 0x82, 0x4b, 0x19, 0xcd, 0x31, 0xbc, 0xab, 0x5c, 0x6e, 0x72, 0x87, 0x4f, 0x7f, 0xeb,
0x74, 0x93, 0x22, 0x20, 0x2e, 0xac, 0xa4, 0xda, 0x55, 0xf8, 0xb6, 0x72, 0x29, 0x75, 0xe7, 0x4c,
0x7f, 0x7d, 0x3a, 0xe6, 0x48, 0xde, 0x43, 0x58, 0x49, 0xb5, 0xa8, 0x32, 0xe4, 0xa9, 0x1b, 0x59,
0x27, 0x1d, 0xe8, 0x47, 0x50, 0x49, 0xf4, 0x92, 0x32, 0x2c, 0x5e, 0xd5, 0x6f, 0x3a, 0x69, 0xe9,
0x87, 0xa0, 0xc5, 0x5b, 0x3e, 0x78, 0x2b, 0xcb, 0x97, 0xc6, 0x16, 0x3e, 0x8d, 0x2b, 0x8d, 0xaa,
0xc5, 0x13, 0x5c, 0x69, 0xac, 0x08, 0x3e, 0xbd, 0x2b, 0xc5, 0xd6, 0x9f, 0xe8, 0x4a, 0xa7, 0x16,
0xf1, 0x09, 0x82, 0x0d, 0x75, 0xc7, 0x00, 0xef, 0x64, 0xd9, 0x66, 0x76, 0x6f, 0x44, 0xdf, 0x3d,
0xd5, 0x9c, 0x48, 0x8b, 0x8f, 0x61, 0x39, 0x59, 0x73, 0xcf, 0xd0, 0xa2, 0xb2, 0x95, 0xa0, 0xdf,
0x9e, 0x8a, 0x37, 0x12, 0xf6, 0x63, 0x28, 0xc7, 0xea, 0xa1, 0xf8, 0xb5, 0x09, 0x76, 0x1c, 0xaf,
0x7c, 0x9c, 0xa4, 0xc9, 0x0e, 0x54, 0x12, 0x25, 0xb2, 0x2c, 0x1b, 0x56, 0x94, 0x26, 0xf5, 0x5b,
0xd3, 0xb0, 0x46, 0x1b, 0xe8, 0x40, 0x25, 0x51, 0x1c, 0xca, 0x90, 0xa4, 0xaa, 0x85, 0x65, 0x48,
0x52, 0xd6, 0x9a, 0x8c, 0x0b, 0xf8, 0x03, 0x58, 0x8a, 0x0a, 0x40, 0xf8, 0x46, 0xa6, 0x4f, 0x9e,
0x46, 0x4d, 0x75, 0x28, 0xca, 0x62, 0x04, 0x36, 0x32, 0x2a, 0x7d, 0xb1, 0x4a, 0x8d, 0xfe, 0xb5,
0x89, 0x3c, 0x11, 0x4e, 0x13, 0x8a, 0xf2, 0x29, 0x99, 0xb1, 0x68, 0xe2, 0x85, 0xae, 0x4f, 0xe6,
0x11, 0x6f, 0x51, 0xe3, 0x02, 0x3e, 0x84, 0x05, 0xf1, 0x86, 0xc4, 0xea, 0x38, 0x10, 0x7f, 0x5f,
0x9e, 0xb4, 0xe7, 0x5f, 0x20, 0xa8, 0x65, 0x3d, 0x12, 0x70, 0xe6, 0x15, 0x30, 0xe9, 0xa5, 0xa3,
0xdf, 0x3d, 0xe5, 0xac, 0x48, 0x55, 0xcf, 0x60, 0x55, 0x91, 0x9a, 0xe2, 0xed, 0xac, 0xf5, 0x32,
0xb2, 0x6a, 0xfd, 0xcd, 0xe9, 0x27, 0x44, 0xb2, 0x29, 0x68, 0xf1, 0x6c, 0x33, 0x23, 0x16, 0x2b,
0x12, 0x55, 0xfd, 0xe6, 0x14, 0x9c, 0x43, 0x31, 0x3b, 0x7d, 0xd0, 0x8e, 0x7c, 0xef, 0xe9, 0x60,
0x98, 0x0d, 0x7e, 0x35, 0x62, 0xf7, 0xee, 0xfe, 0x74, 0xb7, 0x6d, 0x07, 0x9d, 0x7e, 0x93, 0x9f,
0xff, 0xb6, 0xe4, 0x7d, 0xc3, 0xf6, 0xc2, 0xaf, 0x6d, 0xdb, 0x0d, 0xa8, 0xef, 0x12, 0x67, 0x5b,
0xac, 0x15, 0x52, 0x7b, 0xcd, 0x66, 0x51, 0x8c, 0x77, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x24,
0xe8, 0x83, 0x71, 0x56, 0x29, 0x00, 0x00,
0xe3, 0xf1, 0xee, 0xb8, 0x47, 0x52, 0x66, 0x1c, 0x51, 0x6f, 0xb7, 0x73, 0xb3, 0x3b, 0xbf, 0x9d,
0x9d, 0x99, 0x9d, 0x9d, 0x01, 0xad, 0x63, 0x3b, 0x4f, 0x7a, 0xec, 0x4e, 0xd7, 0xf7, 0x02, 0x0f,
0xaf, 0xc6, 0x47, 0x77, 0xe4, 0x40, 0xd7, 0x5a, 0x5e, 0xa7, 0xe3, 0xb9, 0x92, 0xa8, 0x6b, 0xac,
0xd5, 0xa6, 0x1d, 0x22, 0x47, 0xc6, 0xe7, 0x08, 0x2e, 0xbd, 0xed, 0x53, 0x12, 0xd0, 0xb7, 0x3d,
0xc7, 0xa1, 0xad, 0xc0, 0xf6, 0x5c, 0x93, 0xfe, 0xac, 0x47, 0x59, 0x80, 0xdf, 0x84, 0x42, 0x93,
0x30, 0x5a, 0x43, 0x9b, 0x68, 0xab, 0xbc, 0xf3, 0xca, 0x9d, 0xc4, 0xda, 0xe1, 0x9a, 0xef, 0xb1,
0xe3, 0x3d, 0xc2, 0xa8, 0x29, 0x38, 0xf1, 0x25, 0x58, 0xb4, 0x9a, 0x0d, 0x97, 0x74, 0x68, 0x2d,
0xb7, 0x89, 0xb6, 0x96, 0xcc, 0xa2, 0xd5, 0x7c, 0x9f, 0x74, 0x28, 0x7e, 0x0d, 0x56, 0x5a, 0xd1,
0xfa, 0x92, 0x21, 0x2f, 0x18, 0x96, 0x87, 0x64, 0xc1, 0xb8, 0x01, 0x45, 0x89, 0xaf, 0x56, 0xd8,
0x44, 0x5b, 0x9a, 0x19, 0x8e, 0x8c, 0x5f, 0x23, 0x58, 0xdf, 0xf7, 0xbd, 0xee, 0x5c, 0xa0, 0x34,
0x7e, 0x85, 0x60, 0xed, 0x1e, 0x61, 0xf3, 0x01, 0xe6, 0x23, 0xd0, 0xf6, 0x3c, 0xcf, 0x31, 0x29,
0xeb, 0x7a, 0x2e, 0xa3, 0x78, 0x17, 0x8a, 0x2c, 0x20, 0x41, 0x8f, 0x85, 0x28, 0xae, 0x28, 0x51,
0xd4, 0x05, 0x8b, 0x19, 0xb2, 0xe2, 0x35, 0x58, 0x78, 0x42, 0x9c, 0x9e, 0x04, 0x51, 0x32, 0xe5,
0xc0, 0xf8, 0x18, 0x96, 0xeb, 0x81, 0x6f, 0xbb, 0xc7, 0x5f, 0xe2, 0xe2, 0x4b, 0x83, 0xc5, 0xff,
0x8a, 0xe0, 0xf2, 0x3e, 0x65, 0x2d, 0xdf, 0x6e, 0xce, 0x89, 0xf1, 0x19, 0xa0, 0x0d, 0x29, 0x87,
0xfb, 0xc2, 0x04, 0xf3, 0x66, 0x82, 0x66, 0x7c, 0x81, 0x40, 0x57, 0xa1, 0x9e, 0x45, 0x3f, 0xdf,
0x8b, 0x8c, 0x3e, 0x27, 0x26, 0xdd, 0x48, 0x4e, 0x0a, 0x1d, 0x76, 0x28, 0xad, 0x2e, 0x08, 0x03,
0xdf, 0x18, 0x81, 0x9d, 0x57, 0xc0, 0xe6, 0xfe, 0xf3, 0xae, 0x47, 0xac, 0xf9, 0x30, 0xd9, 0xe7,
0x08, 0x6a, 0x26, 0x75, 0x28, 0x61, 0xf3, 0x71, 0xf2, 0xc6, 0xef, 0x10, 0xbc, 0x7a, 0x40, 0x83,
0x98, 0x8a, 0x03, 0x12, 0xd8, 0x2c, 0xb0, 0x5b, 0xec, 0x2c, 0x61, 0x7d, 0x86, 0xe0, 0x5a, 0x26,
0xac, 0x59, 0x2c, 0xee, 0x5b, 0xb0, 0xc0, 0xbf, 0x58, 0x2d, 0xb7, 0x99, 0xdf, 0x2a, 0xef, 0x5c,
0x57, 0xce, 0xb9, 0x4f, 0xfb, 0x1f, 0x72, 0x4f, 0x3d, 0x22, 0xb6, 0x6f, 0x4a, 0x7e, 0xa3, 0x05,
0x1b, 0xf5, 0xb6, 0x77, 0x32, 0x44, 0xf4, 0x12, 0xf4, 0x63, 0xf4, 0xe1, 0xd2, 0x88, 0x90, 0x59,
0x76, 0x7b, 0x13, 0xaa, 0x29, 0x7d, 0xcb, 0x8d, 0x2f, 0x99, 0x2b, 0x49, 0x85, 0x33, 0x1e, 0x94,
0x36, 0xe4, 0x7d, 0x78, 0x44, 0xfc, 0xc0, 0x3e, 0xeb, 0x88, 0x74, 0x03, 0x96, 0xbb, 0x03, 0x1c,
0x92, 0xaf, 0x20, 0xf8, 0x2a, 0x11, 0x55, 0x28, 0xec, 0x2f, 0x08, 0xd6, 0xf8, 0xed, 0x78, 0x9e,
0x30, 0xff, 0x19, 0xc1, 0xea, 0x3d, 0xc2, 0xce, 0x13, 0xe4, 0x2f, 0xc2, 0x20, 0x1a, 0x61, 0x3e,
0xcb, 0xe0, 0xc0, 0x19, 0x93, 0xa0, 0x59, 0xad, 0x20, 0x8c, 0x7a, 0x39, 0x81, 0x9a, 0x19, 0x7f,
0x1b, 0x46, 0xdb, 0x73, 0x86, 0xfc, 0xef, 0x08, 0xae, 0x1e, 0xd0, 0x20, 0x42, 0x3d, 0x17, 0x51,
0x79, 0x5a, 0x6b, 0x79, 0x2e, 0xef, 0x14, 0x25, 0xf8, 0x33, 0x89, 0xdd, 0x7f, 0x42, 0xb0, 0xce,
0xe3, 0xea, 0x7c, 0x18, 0xc1, 0x34, 0xc9, 0xd6, 0x1f, 0x90, 0xbc, 0x6e, 0xe2, 0x88, 0x67, 0x51,
0x9d, 0xc2, 0xf0, 0x72, 0x2a, 0xc3, 0xe3, 0xe0, 0x22, 0xca, 0xe1, 0x3e, 0xab, 0xe5, 0x37, 0xf3,
0x1c, 0x5c, 0x9c, 0x66, 0xfc, 0x06, 0xc1, 0xc6, 0x20, 0x13, 0xac, 0xd3, 0xe3, 0x0e, 0x75, 0x83,
0x17, 0xd7, 0x67, 0x5a, 0x1b, 0xb9, 0x51, 0x6d, 0xe0, 0x57, 0x60, 0x89, 0x49, 0x39, 0x51, 0x92,
0x37, 0x24, 0x88, 0x97, 0xdc, 0x08, 0x9c, 0x59, 0x94, 0x55, 0x83, 0x45, 0xdb, 0xb5, 0xe8, 0xd3,
0x08, 0xcd, 0x60, 0xc8, 0xff, 0x34, 0x7b, 0xb6, 0x63, 0x45, 0x30, 0x06, 0x43, 0x7c, 0x1d, 0x34,
0xea, 0x92, 0xa6, 0x43, 0x1b, 0x82, 0x57, 0x1c, 0x6a, 0xc9, 0x2c, 0x4b, 0xda, 0x21, 0x27, 0x19,
0x9f, 0x22, 0x58, 0xe5, 0x67, 0x1a, 0x62, 0x64, 0x2f, 0x57, 0x67, 0x9b, 0x50, 0x8e, 0x1d, 0x5a,
0x08, 0x37, 0x4e, 0x32, 0x1e, 0xc3, 0x5a, 0x12, 0xce, 0x2c, 0x3a, 0x7b, 0x15, 0x20, 0x3a, 0x11,
0x69, 0x5b, 0x79, 0x33, 0x46, 0x31, 0xfe, 0x8b, 0x00, 0xcb, 0xf4, 0x42, 0x28, 0xe3, 0x2c, 0xfd,
0xef, 0x2a, 0xc0, 0x23, 0x9b, 0x3a, 0x56, 0x3c, 0x82, 0x2d, 0x09, 0x8a, 0xf8, 0xbd, 0x0f, 0x1a,
0x7d, 0x1a, 0xf8, 0xa4, 0xd1, 0x25, 0x3e, 0xe9, 0xb0, 0xda, 0xc2, 0xb4, 0xc1, 0xa6, 0x2c, 0xa6,
0x1d, 0x89, 0x59, 0xc6, 0x3f, 0x79, 0x62, 0x12, 0x1a, 0xe5, 0xbc, 0xef, 0xf8, 0x2a, 0x80, 0x30,
0x5a, 0xf9, 0x7b, 0x41, 0xfe, 0x16, 0x14, 0x11, 0xce, 0x3f, 0x47, 0x50, 0x15, 0x5b, 0x90, 0xfb,
0xe9, 0xf2, 0x65, 0x53, 0x73, 0x50, 0x6a, 0xce, 0x18, 0x17, 0xfa, 0x0e, 0x14, 0x43, 0xc5, 0xe6,
0xa7, 0x55, 0x6c, 0x38, 0x61, 0xc2, 0x36, 0x8c, 0x3f, 0x22, 0x58, 0x4f, 0xa9, 0x7c, 0x16, 0x8b,
0x7e, 0x00, 0x58, 0xee, 0xd0, 0x1a, 0x6e, 0x7b, 0x70, 0xf5, 0xa4, 0xde, 0xa9, 0xe1, 0x20, 0xad,
0x24, 0xf3, 0xa2, 0x9d, 0xa2, 0x48, 0xbb, 0x38, 0xa0, 0x81, 0x60, 0xe5, 0x02, 0xe9, 0xf9, 0xb5,
0x8b, 0x4f, 0x10, 0xac, 0xa7, 0xb6, 0x32, 0x8b, 0xbe, 0xef, 0xca, 0xdb, 0x5d, 0x6e, 0x66, 0x79,
0xe7, 0x9a, 0x72, 0x4e, 0x4c, 0x98, 0xe4, 0x36, 0xfe, 0x81, 0xa0, 0xca, 0x5f, 0x00, 0xe7, 0xdc,
0xc9, 0xfe, 0x87, 0xa0, 0x72, 0xe8, 0x32, 0xea, 0x07, 0xf3, 0x9f, 0xe0, 0xe1, 0xb7, 0xa0, 0xe4,
0x7b, 0x27, 0x0d, 0x8b, 0x04, 0x24, 0x0c, 0x8f, 0x97, 0x95, 0xf0, 0xf6, 0x1c, 0xaf, 0x69, 0x2e,
0xfa, 0xde, 0xc9, 0x3e, 0x09, 0x08, 0xbe, 0x02, 0x4b, 0x6d, 0xc2, 0xda, 0x8d, 0xc7, 0xb4, 0xcf,
0x6a, 0xc5, 0xcd, 0xfc, 0x56, 0xc5, 0x2c, 0x71, 0xc2, 0x7d, 0xda, 0x67, 0xdc, 0x98, 0x96, 0x07,
0xfb, 0x9f, 0xc5, 0x8a, 0xae, 0x41, 0xd9, 0xf7, 0x4e, 0x0e, 0xf7, 0x1b, 0x4d, 0x7a, 0x6c, 0xbb,
0x61, 0xf0, 0x01, 0x41, 0xda, 0xe3, 0x14, 0x8e, 0x42, 0x32, 0x50, 0xd7, 0x0a, 0x6f, 0xc5, 0x92,
0x20, 0xfc, 0xc8, 0xb5, 0x8c, 0x27, 0x50, 0x3d, 0x72, 0x48, 0x8b, 0xb6, 0x3d, 0xc7, 0xa2, 0xbe,
0x88, 0x40, 0xb8, 0x0a, 0xf9, 0x80, 0x1c, 0x87, 0x21, 0x8e, 0x7f, 0xe2, 0x6f, 0x43, 0x21, 0xe8,
0x77, 0x07, 0x86, 0xfa, 0x75, 0x65, 0x2c, 0x88, 0x2d, 0xf3, 0xa0, 0xdf, 0xa5, 0xa6, 0x98, 0x81,
0x37, 0xa0, 0x28, 0x4a, 0x80, 0x32, 0xf8, 0x69, 0x66, 0x38, 0x32, 0x1e, 0x26, 0xe4, 0x1e, 0xf8,
0x5e, 0xaf, 0x8b, 0x0f, 0x41, 0xeb, 0x0e, 0x69, 0x5c, 0x09, 0xd9, 0x91, 0x27, 0x0d, 0xda, 0x4c,
0x4c, 0x35, 0xfe, 0x83, 0xa0, 0x52, 0xa7, 0xc4, 0x6f, 0xb5, 0xcf, 0xc3, 0xe3, 0x87, 0x6b, 0xdc,
0x62, 0x4e, 0xe8, 0x23, 0xfc, 0x13, 0xdf, 0x86, 0x8b, 0xb1, 0x0d, 0x35, 0x8e, 0xb9, 0x82, 0x6a,
0x45, 0x51, 0x27, 0xaf, 0x76, 0x53, 0x8a, 0x33, 0xee, 0x43, 0xe1, 0x9e, 0x1d, 0x88, 0x65, 0x78,
0x2e, 0x82, 0x44, 0x2e, 0xc2, 0x3f, 0xf1, 0xe5, 0x98, 0xdd, 0xe6, 0xc4, 0x01, 0x44, 0xc6, 0x29,
0xca, 0xef, 0x9e, 0x1f, 0x9e, 0x4c, 0xce, 0x0c, 0x47, 0xc6, 0x4f, 0x86, 0x9a, 0x63, 0x3d, 0x27,
0x60, 0x2f, 0x66, 0x95, 0x18, 0x0a, 0x6d, 0x3b, 0x7c, 0xb8, 0x68, 0xa6, 0xf8, 0x36, 0x7e, 0x8e,
0x40, 0x7b, 0xc7, 0xe9, 0xb1, 0x97, 0x71, 0x26, 0xaa, 0xba, 0x4f, 0x5e, 0x5d, 0xf7, 0xf9, 0x57,
0x0e, 0xd6, 0x8f, 0xa8, 0xcf, 0x6c, 0x16, 0x50, 0x37, 0x08, 0x93, 0xc1, 0x43, 0xf7, 0x91, 0x97,
0xcc, 0xba, 0x51, 0x2a, 0xeb, 0xfe, 0x72, 0x72, 0x50, 0xee, 0x8d, 0x5e, 0x97, 0xba, 0x8d, 0xc0,
0x0e, 0x63, 0x4d, 0xc1, 0x2c, 0x71, 0xc2, 0x03, 0xbb, 0x43, 0xb9, 0x2f, 0x33, 0x4a, 0x1c, 0x6a,
0xc9, 0xdf, 0x0b, 0xe2, 0x37, 0x48, 0x92, 0x60, 0xb8, 0x0e, 0xda, 0x23, 0xae, 0xc1, 0x01, 0x47,
0x51, 0x70, 0x94, 0x43, 0x9a, 0x60, 0xb9, 0x0c, 0x25, 0xb7, 0xd7, 0x69, 0xf8, 0xde, 0x09, 0xab,
0x2d, 0xca, 0x4c, 0xc4, 0xed, 0x75, 0x4c, 0xef, 0x44, 0x58, 0x43, 0x87, 0x76, 0x1a, 0xcc, 0x7e,
0x46, 0x6b, 0x25, 0xf9, 0xab, 0x43, 0x3b, 0x75, 0xfb, 0x19, 0x1d, 0xbc, 0x34, 0x69, 0x6d, 0x49,
0xb8, 0xb8, 0x3a, 0x47, 0x09, 0x75, 0x95, 0xb8, 0x8d, 0x7e, 0x2b, 0xeb, 0x96, 0x4a, 0x85, 0xbe,
0xf8, 0x39, 0x6f, 0x40, 0x78, 0xb0, 0xa9, 0x63, 0xfe, 0x06, 0xa4, 0x7c, 0x2c, 0xa3, 0x9a, 0xfa,
0x7b, 0x04, 0x9b, 0xd9, 0xa8, 0x66, 0x09, 0xb7, 0x3f, 0x80, 0x05, 0xdb, 0x7d, 0xe4, 0x0d, 0xf2,
0xa2, 0x5b, 0xea, 0xe8, 0xa4, 0x94, 0x2b, 0x27, 0x1a, 0xff, 0x46, 0x50, 0xfd, 0xa0, 0x47, 0xfd,
0xfe, 0x57, 0x6d, 0x7a, 0xf1, 0xe3, 0x2f, 0x24, 0x8f, 0x3f, 0x6e, 0x34, 0x0b, 0x49, 0xa3, 0x49,
0x5e, 0xe3, 0xc5, 0x31, 0x79, 0xef, 0x62, 0x22, 0xef, 0x35, 0x9e, 0x23, 0xd0, 0x0f, 0x68, 0x90,
0xde, 0xea, 0xd9, 0x19, 0xc5, 0x67, 0x08, 0xae, 0x28, 0x01, 0xcd, 0x62, 0x0f, 0xdf, 0x4d, 0xda,
0x83, 0xfa, 0xb6, 0x1a, 0x11, 0x19, 0x9a, 0xc2, 0x3a, 0xac, 0x9a, 0xf4, 0x98, 0x5b, 0x8a, 0xff,
0xae, 0xed, 0x3e, 0x0e, 0x55, 0xc3, 0x53, 0x83, 0xb5, 0x24, 0x3d, 0x44, 0xf8, 0x4d, 0x58, 0x24,
0x96, 0xe5, 0x53, 0xc6, 0xc6, 0xaa, 0xed, 0x87, 0x92, 0xc7, 0x1c, 0x30, 0xc7, 0x76, 0x96, 0x9b,
0x7a, 0x67, 0xb7, 0xbe, 0x0f, 0x2b, 0xa9, 0x3b, 0x1d, 0x97, 0xa0, 0xf0, 0xbe, 0xe7, 0xd2, 0xea,
0x05, 0x5c, 0x05, 0x6d, 0xcf, 0x76, 0x89, 0xdf, 0xff, 0x90, 0xb6, 0x02, 0xcf, 0xaf, 0x5a, 0x78,
0x05, 0xca, 0xef, 0x38, 0x1e, 0x09, 0x42, 0x02, 0xdd, 0xf9, 0x74, 0x0d, 0x2a, 0xef, 0x09, 0x31,
0x75, 0xea, 0x3f, 0xb1, 0x5b, 0x14, 0x37, 0xa0, 0x9a, 0x6e, 0x40, 0xe3, 0xd7, 0x95, 0x0a, 0xcb,
0xe8, 0x53, 0xeb, 0xe3, 0x80, 0x1b, 0x17, 0xf0, 0xc7, 0xb0, 0x9c, 0xec, 0x1c, 0x63, 0xb5, 0x7f,
0x2a, 0xdb, 0xcb, 0x93, 0x16, 0x6f, 0x40, 0x25, 0xd1, 0x08, 0xc6, 0x37, 0x95, 0x6b, 0xab, 0x9a,
0xc5, 0xfa, 0x75, 0x25, 0x6b, 0xbc, 0x97, 0x2b, 0xd1, 0x27, 0xfb, 0x76, 0x19, 0xe8, 0x95, 0xcd,
0xbd, 0x49, 0xe8, 0x09, 0x5c, 0x1c, 0x69, 0xc3, 0xe1, 0x37, 0x94, 0xeb, 0x67, 0xb5, 0xeb, 0x26,
0x89, 0x38, 0x01, 0x3c, 0xda, 0x2e, 0xc5, 0x77, 0xd4, 0x27, 0x90, 0xd5, 0x0d, 0xd6, 0xb7, 0xa7,
0xe6, 0x8f, 0x14, 0xf7, 0x0b, 0x04, 0x97, 0x32, 0x7a, 0x67, 0x78, 0x57, 0xb9, 0xdc, 0xf8, 0x06,
0xa0, 0xfe, 0xd6, 0xe9, 0x26, 0x45, 0x40, 0x5c, 0x58, 0x49, 0x75, 0xb3, 0xf0, 0x6d, 0xe5, 0x52,
0xea, 0xc6, 0x9a, 0xfe, 0xfa, 0x74, 0xcc, 0x91, 0xbc, 0x87, 0xb0, 0x92, 0xea, 0x60, 0x65, 0xc8,
0x53, 0xf7, 0xb9, 0x26, 0x1d, 0xe8, 0x47, 0x50, 0x49, 0xb4, 0x9a, 0x32, 0x2c, 0x5e, 0xd5, 0x8e,
0x9a, 0xb4, 0xf4, 0x43, 0xd0, 0xe2, 0x1d, 0x21, 0xbc, 0x95, 0xe5, 0x4b, 0x23, 0x0b, 0x9f, 0xc6,
0x95, 0x86, 0xc5, 0xe4, 0x31, 0xae, 0x34, 0x52, 0x23, 0x9f, 0xde, 0x95, 0x62, 0xeb, 0x8f, 0x75,
0xa5, 0x53, 0x8b, 0xf8, 0x04, 0xc1, 0x86, 0xba, 0xa1, 0x80, 0x77, 0xb2, 0x6c, 0x33, 0xbb, 0x75,
0xa2, 0xef, 0x9e, 0x6a, 0x4e, 0xa4, 0xc5, 0xc7, 0xb0, 0x9c, 0x2c, 0xc9, 0x67, 0x68, 0x51, 0xd9,
0x69, 0xd0, 0x6f, 0x4f, 0xc5, 0x1b, 0x09, 0xfb, 0x31, 0x94, 0x63, 0xe5, 0x52, 0xfc, 0xda, 0x18,
0x3b, 0x8e, 0x57, 0x3e, 0x26, 0x69, 0xb2, 0x0d, 0x95, 0x44, 0x89, 0x2c, 0xcb, 0x86, 0x15, 0x95,
0x4b, 0xfd, 0xd6, 0x34, 0xac, 0xd1, 0x06, 0xda, 0x50, 0x49, 0x14, 0x87, 0x32, 0x24, 0xa9, 0x6a,
0x61, 0x19, 0x92, 0x94, 0xb5, 0x26, 0xe3, 0x02, 0xfe, 0x00, 0x96, 0xa2, 0x02, 0x10, 0xbe, 0x91,
0xe9, 0x93, 0xa7, 0x51, 0x53, 0x1d, 0x8a, 0xb2, 0x18, 0x81, 0x8d, 0x8c, 0x4a, 0x5f, 0xac, 0x52,
0xa3, 0x7f, 0x6d, 0x2c, 0x4f, 0x84, 0xd3, 0x84, 0xa2, 0x7c, 0x4a, 0x66, 0x2c, 0x9a, 0x78, 0xa1,
0xeb, 0xe3, 0x79, 0xc4, 0x5b, 0xd4, 0xb8, 0x80, 0x0f, 0x61, 0x41, 0xbc, 0x21, 0xb1, 0x3a, 0x0e,
0xc4, 0xdf, 0x97, 0x93, 0xf6, 0xfc, 0x4b, 0x04, 0xb5, 0xac, 0x47, 0x02, 0xce, 0xbc, 0x02, 0xc6,
0xbd, 0x74, 0xf4, 0xbb, 0xa7, 0x9c, 0x15, 0xa9, 0xea, 0x19, 0xac, 0x2a, 0x52, 0x53, 0xbc, 0x9d,
0xb5, 0x5e, 0x46, 0x56, 0xad, 0xbf, 0x39, 0xfd, 0x84, 0x48, 0x36, 0x05, 0x2d, 0x9e, 0x6d, 0x66,
0xc4, 0x62, 0x45, 0xa2, 0xaa, 0xdf, 0x9c, 0x82, 0x73, 0x20, 0x66, 0xa7, 0x07, 0xda, 0x91, 0xef,
0x3d, 0xed, 0x0f, 0xb2, 0xc1, 0xaf, 0x46, 0xec, 0xde, 0xdd, 0x9f, 0xee, 0x1e, 0xdb, 0x41, 0xbb,
0xd7, 0xe4, 0xe7, 0xbf, 0x2d, 0x79, 0xdf, 0xb0, 0xbd, 0xf0, 0x6b, 0xdb, 0x76, 0x03, 0xea, 0xbb,
0xc4, 0xd9, 0x16, 0x6b, 0x85, 0xd4, 0x6e, 0xb3, 0x59, 0x14, 0xe3, 0xdd, 0xff, 0x07, 0x00, 0x00,
0xff, 0xff, 0x97, 0x7b, 0xe8, 0xa8, 0x75, 0x29, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.